開発者の生産性向上の始め方・育て方

10.8K Views

June 14, 22

スライド概要

『開発生産性を高めるヒントを最前線で働くエンジニアによる取り組みから考える会 〜Findy LT Night〜』の発表資料です。
https://findy.connpass.com/event/248602/

サイボウズで生産性向上チームを立ち上げてから 7 年間の知見をまとめました。

profile-image

Productivity Engineer at cybozu. GitHub Actions User Group Tokyo Organizer. GitHub Stars. 『GitHub Actions 実践入門』を BOOTH で販売中です。 http://miyajan.booth.pm/items/1865906

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

開発者の⽣産性向上の始め⽅・育て⽅ 〜⽣産性向上チームの 7 年間から得た知⾒〜 Findy LT Night / 2022-06-14 サイボウズ株式会社 開発本部 ⽣産性向上チーム 宮⽥ 淳平(@miyajan) 1

2.

⾃⼰紹介 ▌宮⽥ 淳平(@miyajan) ▌サイボウズ株式会社 n 2009年 ⼊社 n 2015年 ⽣産性向上チームを⽴ち上げ ▌『GitHub Actions 実践⼊⾨』執筆など 2

3.

今⽇話すこと ▌サイボウズで⽣産性向上チーム⽴ち上げから現在までの 7 年間の話 n 特定の製品開発チームに属さず⽀援するチームの話 ▌技術的な話はしません 3

4.

チーム⽴ち上げ前 4

5.

kintone チーム内での改善活動(2014〜2015年ぐらい) ▌デプロイパイプラインの改善活動を多くやっていた n 『継続的デリバリー』本の輪講をした影響 ▌E2E ⾃動テストの課題意識が強かった n 『ハイパフォーマンスSeleniumテスト』 ▌よい⽅向へ進んでいる実感はあった 5

6.

⼀⽅で問題意識も ▌製品開発の⽚⼿間だと⼤きな改善に取り組みづらい n 複数チームにまたがる改善活動を推進したい n 野良運⽤されている Jenkins みたいな問題をなくしたい ▌チーム内の⽣産性向上ノウハウを他チームに展開しづらい 6

7.

イシューレイジング ▌当時の開発本部でアイデアや問題意識を挙げる場が作られた ▌⽣産性向上チームの設⽴を提案 ▌当時読んだ Google の事例を参考にした n How Google Tests Software – Part One 7

8.

⽣産性向上チーム設⽴ ▌上⻑に割とすぐに許可された ▌ただし、⼀⼈チーム(︖)でスタート 8

9.

⽣産性向上チーム初期 (2015〜2018) 9

10.

ミッション 多様で価値あるサービスを迅速に提供するため、 部署やプロダクトを横断して、 ⽣産的でオープンな開発基盤を整備する 10

11.

組織横断の専⾨チーム ・・・ Garoon 開発 kintone 開発 Office 開発 ・・・ ⽣産性向上チーム 11

12.

(⼩ネタ)チーム名問題 ▌最初は Engineering Productivity という名前にした ▌が、まったく定着しなかった ▌⽣産性向上チームに改名したら定着した 12

13.

初期の改善活動 ▌開発チームの E2E テスト⾼速化&安定化 n Selenium Antipatterns ▌Jenkins 運⽤⾒直し n Jenkins 再⼊⾨ ▌社内で⼿軽に HTTPS を使える仕組みづくり n 社内で⼿軽にHTTPSを使いたい︕kintone × nginxで圧倒的⽣産性 向上︕ ▌cybozu.com のリリースフローの改善 ▌etc. 13

14.

他チームとの関わり⽅ ▌ヒアリング n 認知を⾼める&社内の問題意識を集める ▌⾃由に使える開発基盤の提供 ▌改善活動のお⼿伝い ▌社内イベント(⽣産性向上しナイト → Productivity.fm) n ⽣産性向上チームや他のチームの改善活動を共有 n 組織を横断した意⾒交換の場作り、改善の⽂化づくりも⽬的 14

15.

初期のよかったこと ▌改善活動に時間を使いやすくなった n チームをまたいだ⼤きな改善も進められる n 開発基盤もオーナーシップを持って運⽤できる ▌開発チームが改善活動をするハードルを下げられた 15

16.

新たな問題意識 ▌⼀⼈チームはさすがに厳しい n 属⼈化のリスク n スケールしない ▌開発基盤の運⽤コストは積み重なると⼤きい 16

17.

⽣産性向上チーム成⻑期 (2018〜2022) 17

18.

メンバーが増え始めた🎉 ▌2019 n 中途 1 名 n 兼務 2 名(のちに 1 名離脱) ▌2020 n 新卒 1 名 ▌2021 n 中途 1 名 18

19.

他チームとの関わり⽅の変化 ▌他チームからの相談の増加 ▌改善活動は⽀援先のチームと進めていく n ⽣産性向上チームだけで進めて新たなサイロになるリスクを防ぐ n 開発チームが⾃⼒で改善活動を継続できるように進める 19

20.

開発環境の変化(クラウドサービスの活⽤) ▌AWS n AWS + Azure ADによるSingle Sign-Onと複数AWSアカウント切り替 えのしくみ作り ▌CircleCI n サイボウズの開発を⽀える GitHub × CircleCI ▌GitHub Enterprise Cloud n Actions や Packages など多数の新機能が追加 n オートスケールする GitHub Actions セルフホストランナーを構築した話 ▌etc. 20

21.

この時期のよかったこと ▌属⼈化の排除・多様な視点からの改善 ▌組織全体に改善活動をスケールさせるための動き⽅がわかってきた ▌クラウドサービス活⽤による開発基盤運⽤の省コスト化 21

22.

⽣産性向上チームの現在 22

23.

役割 組織を横断した 開発基盤の整備 開発チームに⼊って 改善活動の⽀援 みんなハッピー😆 ⽣産性向上技術の キャッチアップ・共有 23

24.

開発基盤で意識していること ▌利⽤は強制しない ▌⾃分たちで運⽤するものは必要最低限に抑える n クラウドサービス + SSO を可能な限り活⽤する 24

25.

⽀援活動で意識していること ▌最終的に⽣産性向上チームなしで改善活動が継続することが理想 n ⽀援序盤はモブで密に⽀援する n 開発チームだけで回るようになってきたら定期的に進捗確認や相談を 聞いたりするぐらいにして、徐々にフェードアウト 25

26.

ノウハウのキャッチアップ・共有で意識していること ▌業務時間内でインプット・アウトプットのための時間を確保する ▌社外に発信できるものは発信する n Productivity Weekly n Cybozu Productivity News 26

27.

まとめ 27

28.

開発⽣産性を⾼めるヒント ▌改善活動を推進したい⼈が動きやすいようにする ▌できるところから始め、徐々に組織全体にスケールさせていく n 各チームで改善活動が継続できる状態を⽬指す ▌⽣産性を⾼めるはずの活動⾃体が⾟くなりすぎないようにする ▌インプット・アウトプットはいろいろな形で地道に継続する n 社内だけでなく、社外にも 28

29.

⽣産性向上チームのことをもっと知りたい⼈向け ▌『サイボウズの開発者の⽣産性を上げる「⽣産性向上チーム」とは︕︖』 n https://note.com/cybozu_dev/n/n1c1b44bf72f6 ▌カジュアルに話してみたい⼈は Meety へどうぞ︕ n https://meety.net/matches/EsrUIngZNeUX 29