組織全体で開発生産性に取り組むために 専門チームを作った話
by
pospome
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
組織全体で開発生産性に取り組むために 専門チームを作った話 pospome
Slide 2
Slide 2 text
登壇者 名前:pospome(ぽすぽめ) 所属:DMMプラットフォーム Twitter:@pospome
Slide 3
Slide 3 text
今回の発表内容について DMMプラットフォーム x 開発生産性 x 専用のチームを作った話
Slide 4
Slide 4 text
DMMプラットフォームについて 扱う領域:DMM会員、決済、DMMポイント、不正対策など エンジニア数:120名以上 開発チーム数:16チーム マイクロサービス数:約40サービス ピーク時のリクエスト:19,000RPS
Slide 5
Slide 5 text
大きな組織と開発効率の関係 ● 大きな組織ほど開発効率が下がる。 エンジニア数が10倍になっても開発スピードは10倍にならない。 ● 主な原因 ○ コミュニケーションコストの増加 ○ 横断的関心事に対する開発工数の増加 今回はこっちを取り上げる。
Slide 6
Slide 6 text
横断的関心事とは? ● 組織全体に共通して必要となる作業のこと 例:CI/CD、負荷試験 ● 横断的関心事を各チームで扱うと 開発効率が悪くなる
Slide 7
Slide 7 text
横断的関心事とは? ● 専任のチームを作って共通化する 例:プラットフォームエンジニアリング ● 開発生産性も横断的関心事に属する 専任のチームを作って取り組む。
Slide 8
Slide 8 text
Developer Productivity Group を作った
Slide 9
Slide 9 text
専門チームを作るメリット 1. 各チームが同じようなことをする工数を削減できる。 2. 各チームのノウハウをシェアすることができる。 3. 各チームが開発生産性に取り組む工数は限られている。
Slide 10
Slide 10 text
1. 各チームが同じようなことをする工数を削減できる ● Four Keysの可視化 ○ デプロイの頻度 … CI/CDパイプライン ○ 変更のリードタイム … GitHub ○ 変更障害率 … 監視ツール ○ サービス復元時間 … 監視ツール
Slide 11
Slide 11 text
1.各チームが同じようなことをする工数を削減できる ● 組織全体で利用できる共通の仕組みを開発 Four Keysに限らず、Developer Productivity Groupが共通の仕組みを作 るだけで済む。
Slide 12
Slide 12 text
2.各チームのノウハウをシェアすることができる ● “特定のチームだけ上手くやる” という状態を避けたい。 あくまで組織全体が上手くやれるようにする必要がある。 専任のチームが組織全体の最適化を進めていく。 ● 各チームの状態を相対的に比較し、課題を可視化 & 解決する。 大きな組織ならではのノウハウ共有が可能になる。 例:開発生産性アンケート
Slide 13
Slide 13 text
例:開発生産性アンケート
Slide 14
Slide 14 text
3.各チームが開発生産性に取り組む工数は限られている ● 各チームは開発生産性にフルコミットできるわけではない。 例:決済チームは決済領域にフルコミットすべき
Slide 15
Slide 15 text
3.各チームが開発生産性に取り組む工数は限られている ● 課題を解決する取り組みに大きく工数を割けない。 ○ Four Keysの可視化 ○ 負荷試験基盤の開発 ○ コード品質の可視化 & 改善
Slide 16
Slide 16 text
まとめ ● 各チームの手が回り切らない部分を担当するチームが必要になる。 ● ある程度の組織規模じゃないとコスパが悪い。
Slide 17
Slide 17 text
おわり