Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
組織全体で開発生産性に取り組むために 専門チームを作った話
Search
pospome
December 13, 2023
Programming
2
1.5k
組織全体で開発生産性に取り組むために 専門チームを作った話
DMM meetup #39 ~開発生産性を熱く語る会~
https://dmm.connpass.com/event/301567/
pospome
December 13, 2023
Tweet
Share
More Decks by pospome
See All by pospome
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.3k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
29
11k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
3.4k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
430
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
2.2k
(再アップロード)Microservices & APIs
pospome
0
73
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
70
マイクロサービス環境におけるToilを削減するTerraformの活用 in DMMプラットフォーム
pospome
3
1.3k
組織のコード品質を向上させる “レビューシステム”の取り組み
pospome
14
7.6k
Other Decks in Programming
See All in Programming
業務ツールとして使うPostman
msys75
0
110
2 週間で Twitter Bot を作ってみた
contour_gara
0
790
Ruby GitHub Packages
bkuhlmann
0
650
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
910
禅の心を手に入れよ
eltociear
1
420
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
760
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
480
Git Lint
bkuhlmann
4
760
Folding Cheat Sheet #4
philipschwarz
PRO
0
100
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
1.1k
Fragment Composition of GraphQL
quramy
13
1.5k
Featured
See All Featured
Scaling GitHub
holman
457
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Code Review Best Practice
trishagee
56
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Gamification - CAS2011
davidbonilla
77
4.6k
Six Lessons from altMBA
skipperchong
22
3k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6k
Transcript
組織全体で開発生産性に取り組むために 専門チームを作った話 pospome
登壇者 名前:pospome(ぽすぽめ) 所属:DMMプラットフォーム Twitter:@pospome
今回の発表内容について DMMプラットフォーム x 開発生産性 x 専用のチームを作った話
DMMプラットフォームについて 扱う領域:DMM会員、決済、DMMポイント、不正対策など エンジニア数:120名以上 開発チーム数:16チーム マイクロサービス数:約40サービス ピーク時のリクエスト:19,000RPS
大きな組織と開発効率の関係 • 大きな組織ほど開発効率が下がる。 エンジニア数が10倍になっても開発スピードは10倍にならない。 • 主な原因 ◦ コミュニケーションコストの増加 ◦ 横断的関心事に対する開発工数の増加
今回はこっちを取り上げる。
横断的関心事とは? • 組織全体に共通して必要となる作業のこと 例:CI/CD、負荷試験 • 横断的関心事を各チームで扱うと 開発効率が悪くなる
横断的関心事とは? • 専任のチームを作って共通化する 例:プラットフォームエンジニアリング • 開発生産性も横断的関心事に属する 専任のチームを作って取り組む。
Developer Productivity Group を作った
専門チームを作るメリット 1. 各チームが同じようなことをする工数を削減できる。 2. 各チームのノウハウをシェアすることができる。 3. 各チームが開発生産性に取り組む工数は限られている。
1. 各チームが同じようなことをする工数を削減できる • Four Keysの可視化 ◦ デプロイの頻度 … CI/CDパイプライン ◦
変更のリードタイム … GitHub ◦ 変更障害率 … 監視ツール ◦ サービス復元時間 … 監視ツール
1.各チームが同じようなことをする工数を削減できる • 組織全体で利用できる共通の仕組みを開発 Four Keysに限らず、Developer Productivity Groupが共通の仕組みを作 るだけで済む。
2.各チームのノウハウをシェアすることができる • “特定のチームだけ上手くやる” という状態を避けたい。 あくまで組織全体が上手くやれるようにする必要がある。 専任のチームが組織全体の最適化を進めていく。 • 各チームの状態を相対的に比較し、課題を可視化 & 解決する。
大きな組織ならではのノウハウ共有が可能になる。 例:開発生産性アンケート
例:開発生産性アンケート
3.各チームが開発生産性に取り組む工数は限られている • 各チームは開発生産性にフルコミットできるわけではない。 例:決済チームは決済領域にフルコミットすべき
3.各チームが開発生産性に取り組む工数は限られている • 課題を解決する取り組みに大きく工数を割けない。 ◦ Four Keysの可視化 ◦ 負荷試験基盤の開発 ◦ コード品質の可視化
& 改善
まとめ • 各チームの手が回り切らない部分を担当するチームが必要になる。 • ある程度の組織規模じゃないとコスパが悪い。
おわり