
2025.03.19
ドバイ不動産投資の最前線 専門家が語る、3つの投資モデルと市場の展望
組織全体で開発生産性に取り組むために専門チームを作った話(全1記事)
リンクをコピー
記事をブックマーク
pospome氏:では、「組織全体で開発の生産性に取り組むためにチームを作ったよ」という話をしようと思います。pospomeです、よろしくお願いします。
今回の発表では、DMMプラットフォームという組織において、開発生産性の可視化や改善に取り組んでいるわけですが、それをやるためにわざわざ専門のチームを作ったよという話をしようと思います。
けっこうサクッと話すので、なにか聞きたいことがある人は、懇親会や質問などで聞いてもらえればいいかなと思います。
まず、僕が所属するDMMプラットフォームという組織について話します。このDMMプラットフォームという組織は、DMMの中では1つの部署になります。どういった部署かというと、DMMの会員のマイページや決済のWeb APIなど、DMMの各種サービスで共通利用されるような機能や画面を開発・運用している組織です。
1つの部署ではあるのですが、エンジニア数は120名以上で、2016年くらいからマイクロサービスに取り組んでいます。こういった規模感の組織の開発生産性を可視化したり向上したりしようとしているという話になります。
開発生産性の話をする前に、まず大きな組織と開発効率の関係について話そうかなと思っています。みなさん知っているとおり、大きな組織ほど開発効率は下がるんですよ。エンジニア数が10倍になっても開発スピードは10倍にはなりません。例えば8倍とかそのぐらいに抑えられるわけですね。
なぜかというと、原因としては2つあります。まず1つ目は、コミュニケーションコストの増加です。大きな組織になるほど、なにか決定をする時に特定のステークホルダーと話さないといけなかったり、「このタスクを進めるためにここのチームに連絡しないといけない」といったかたちになって、コミュニケーションのパスがどうしても増えてしまうんですよ。
そのコストを低くする工夫はできるかもしれないのですが、やはりどうしても必要最低限のコストはかかってしまうので、開発効率が下がっていくというかたちになります。
そして2つ目が、横断的関心事に関する開発工数の増加。今回はこちらをメインで取り上げようかなと思うので、少し説明していきます。
まず「横断的関心事って何?」という話なのですが、僕はこの単語をプログラミングの文脈で知りました。横断的関心事の実装というのですが、これは、例えばプログラミングでいうログやトランザクションといった、アプリケーションのいろいろなところで必要となる実装、機能のことをいいます。
組織の開発体制といったところにもこのワードは適用できるかなと思っていて、今回の文脈では、組織全体に共通して必要となる作業のことを、横断的関心事と表現しています。(スライドを示して)スライドの図では、CI/CDパイプラインの例を挙げています。
DMMプラットフォームは120名の開発組織なので、中に開発チームがいっぱいあります。そういった開発チームが普通に開発を進めると、各チームがCI/CDパイプラインを作ることになります。なので、各チームが結局なんとなく同じようなことをやっていて、組織全体で見た時の開発効率はちょっと悪いんですよ。横断的関心事を各チームでシンプルにそのまま扱ってしまうと、開発効率が悪くなってしまいます。
ではどのようにアプローチするのが良いのかというと、このスライドの図にあるように、専任のチーム、スライド上ではプラットフォームチームという名前になっているのですが、こういった1つのチームをまず作ります。
そしてそのチームが、各チームが利用するCI/CDパイプラインを1つドンと用意します。そして各開発チームはそれを共通で利用します。(スライドを示して)スライド上だとCI/CDパイプラインがそれぞれ1つずつあって、それらを2つの開発チームが使っています。これが例えば20チームとかになると、この開発効率の削減、改善の効果というのは、ものすごい効果になっていきます。
最近ではこういったものはプラットフォームエンジニアリングみたいな文脈で説明されたりするのですが、開発生産性も特定のチームだけ取り組まなければいけないものとかではなく、基本、どの開発チームも横断的に取り組むようなものなので、横断的関心事に属します。
DMMプラットフォームのような120名のエンジニアリング組織だと、さすがに「各チームでいい感じにやってくれよ」と言うことはちょっと難しい。効率が悪くなるので、専任のチームを作って取り組むというアプローチに倒しました。
ということで、僕はDeveloper Productivity Groupというグループを作りました。今回は、専門のチームを作るメリットについて3つ簡単に話そうと思います。
まず1つ目です。各チームが同じようなことをする工数を削減できる。これは先ほど説明した「各チームで同じようなことをするの無駄だよね」みたいな話とそのまま同じです。
例えば開発生産性を可視化するという時に、「まずFour Keysを可視化してみようかな」みたいなことはけっこうあるあるだと思うんですよ。でも、Four Keysを可視化するのも意外と大変なんですよね。
例えば、デプロイの頻度はCI/CDパイプラインから取らないといけない。変更のリードタイムは「GitHub」かな? 変更の障害率や復元時間みたいなものは「監視ツールから取ってこよう」みたいな感じで、可視化するにもけっこう面倒なんですよ。
さらに、Four Keysを実際に可視化したことのある人だとわかると思うのですが、各メトリクスに外れ値などがあったりして、平均を取ってもうまくいかなかったり、最頻値みたいなのが欲しいとかで、これを可視化するのにもけっこう大変だったりするんですよね。
具体例としてFour Keysを出しましたが、開発生産性は別にFour Keysだけ可視化すればいいというものじゃないので、各チームが同じようなことをする工数というのは、開発生産性に真面目に取り組めば取り組むほど、コストが大きいものになってきてしまいます。
こういった問題があるので、Four Keysに限らず、Developer Productivity Groupが、なにかしらの共通の仕組みをドンと作って、各チームのメトリクスを見られるダッシュボードを作るみたいなことをすると、工数を削減できるというアプローチになります。
そして2つ目。各チームのノウハウをシェアすることができる。やはり大きな会社だと、いろいろなエンジニアがいて、それぞれ得意分野があったりするので、それらの知見をいかに組織全体に浸透させるかといったことがけっこうポイントになってきたりします。
「各チームで開発生産性をいい感じにやってね」と普通に言うと、やはり120名もエンジニアがいると、エンジニアのレベル感はピンキリなんですよ。
みなさん学生時代に定期試験とかやったことあると思うのですが、学年1位の人の学力と学年120位の人の学力ではけっこう差があった記憶がありません? エンジニアリングもそれと同じで、うまくできる人とできない人がいて、結果的にうまくできるチームとうまくできないチームに分かれちゃうんですよ。
なので、普通にやると、特定のチームだけうまくできているけど、ほかはうまくできていませんといったかたちになってしまいます。
組織全体で見た時は、全チームがうまくやれるようにする必要が当然あるので、専任のチームが組織全体の最適化をちゃんと進めていくというアプローチが必要になります。
そして、組織全体の最適化を進めていくという、こういったマインドを持っているからこそ、「各チームの状態をまず相対的に比較しよう」とか、「課題を可視化して解決しよう」というような発想が生まれてくるんですよね。
こうなると、「ここのチームはこれがうまくいっているけど、ここのチームはこれがうまくいっていないから、それぞれのチームにヒアリングして、なんでできていないのかというのを情報共有しよう」とか、こういったノウハウの共有が可能になります。
(スライドを示して)例として、開発生産性アンケートと書いてあるのですが、実際のものはこちらになります。各チームに「あなたたちのチームは、どのぐらいうまくやっていますか?」ということをヒアリングした結果になりますね。表の説明はしませんが、数字の低いところがあったり、高いところがあったりと、各チームで得意な分野と苦手な分野がけっこうばらついていたりするんですよね。
こういったヒアリング結果を基に、各チームに直接話を聞きにいって、開発生産性の良いところを共有したり、問題点を改善したりしていくというアプローチをすることができます。
こういった表を作って組織全体をいい感じにしようということは、専任のチームがいないと、おそらくこの発想にならないんですよ。各チームでやった場合は、「それぞれのチームがうまくいっていればOK」というかたちになっているので、全体的に各チームの相対評価をしてノウハウを共有するという、大きな組織だからこその強みを活かすという発想にならないわけですね。
そして3つ目。各チームが開発生産性に取り組む工数は限られている。これも当たり前の話ですが、例えばDMMプラットフォーム内には決済チームというチームがあります。この決済チームは何をするかというと、より使いやすい決済や失敗しない決済といった、決済領域にとにかくフルコミットするべきなんですよね。
なので、開発生産性の向上にフルコミットできないんですよ。というか、むしろフルコミットすべきではないんです。なぜかというと、決済領域を改善できるのは決済チームしかいないので、この決済領域にいかにフルコミットさせるか、そのほかの横断的関心事に対する工数をいかに削減するか、削減してあげるかがポイントになってきます。
そして開発生産性の可視化が終わった後は、スコアが悪いところとか、問題になっているところを改善していくと思うのですが、課題によっては、「改善するにはけっこう大きく工数を割かないといけないな」みたいなものがあります。
先ほど説明したFour Keysの可視化とかも入ってくるのですが、例えば「負荷試験にやたら工数がかかっているな」と。ゼロからツールを選定して、ゼロからなにかをやってみたいに、すごく時間がかかって(しまって)いるという時に、それっぽい負荷試験基盤を作りたいなという発想になるかもしれないのですが、各チームで負荷試験基盤のような仰々しいものを作っている工数はないんですよね。
そして、負荷試験自体も実は横断的関心事です。負荷試験をしないチームはないですよね。
なので、「こういった負荷試験基盤を作れば開発生産性が改善できるんじゃないのか」と。そして、その領域にフルコミットできるのは、専任チームならではの話になってきます。
(スライドを示して)3つ目に書いてある、コードの品質の可視化とか改善とかもそうです。コードの品質の可視化に関して、DMMプラットフォームの場合は、「SonarCloud」というSaaSを使っています。
こういったSaaSの選定や、そのツールを使う費用をどのチームが、どの部署が負担するのかといった細かいことも含めて、専任のチームがあれば自ずと「そのチームがやるべきだよね」というかたちになって、物事の決定も早くなっていきます。
ということでまとめです。各チームの手が回りきらない部分を担当するチームが、大きな組織になれば必要になるよという話です。
2つ目がけっこう重要ですね。みなさんたぶん薄々感づいていると思うのですが、ある程度の組織規模じゃないとコスパが悪いです。DMMプラットフォームは100人を超えるエンジニアがいて、多くのチームがあるからこそ、専任のチームを作るという方向に投資することができるんですね。
でも例えばですが、エンジニアの数が30名に満たないとか、20名に満たない、そういった規模だと専任のチームを作るというよりは、例えば会社の中に3つのチームがあったら、3つのチームで情報共有しながらなんとなく開発生産性に取り組んでいくみたいな、そういったファーストステップを踏むのが良いんじゃないのかなと思っています。
ということで以上になります。ありがとうございました。
関連タグ:
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.17
不確実な時代だからこそ「知らないこと」を武器にする ハーバード主席卒業生の逆説的なメッセージ
2025.03.17
いくら読書をしても「成長しない人」が見落としていること 10分でできる「正しい学び方」
2025.03.17
ソフトバンクとOpenAIにとって「歴史的な日」になった 孫正義氏が語る、AI革命の全ぼう
2025.03.19
部下の「タスクの先延ばし」が少ない上司の特徴とは? 研究が示す、先延ばし行動を減らすリーダーの条件
2025.03.18
フェデラー氏が語る「努力しない成功は神話」という真実 ダートマス卒業生に贈る勝利の秘訣
2025.03.18
全知全能の最先端AI「Cristal」が企業の大脳となる ソフトバンク孫正義氏が語る、現代における「超知性」の可能性
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
2025.03.18
部下に「そうかなぁ?」と思われない1on1の問いかけ エンゲージメントを高めるマネジメントに欠かせない「聴く」技術
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.17
不確実な時代だからこそ「知らないこと」を武器にする ハーバード主席卒業生の逆説的なメッセージ
2025.03.17
いくら読書をしても「成長しない人」が見落としていること 10分でできる「正しい学び方」
2025.03.17
ソフトバンクとOpenAIにとって「歴史的な日」になった 孫正義氏が語る、AI革命の全ぼう
2025.03.19
部下の「タスクの先延ばし」が少ない上司の特徴とは? 研究が示す、先延ばし行動を減らすリーダーの条件
2025.03.18
フェデラー氏が語る「努力しない成功は神話」という真実 ダートマス卒業生に贈る勝利の秘訣
2025.03.18
全知全能の最先端AI「Cristal」が企業の大脳となる ソフトバンク孫正義氏が語る、現代における「超知性」の可能性
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
2025.03.18
部下に「そうかなぁ?」と思われない1on1の問いかけ エンゲージメントを高めるマネジメントに欠かせない「聴く」技術
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
【手放すTALK LIVE#046】 出版記念イベント 『大きなシステムと小さなファンタジー』 一つ一つのいのちが大切にされる社会へ
2025.02.03 - 2025.02.03
「聴く」から始まる組織変革 〜篠田真貴子さんと考える対話型マネジメント〜
2025.02.14 - 2025.02.14
「目の前の利益を優先する」心理とは:ビジネスに活かせる意思決定の科学
2025.02.12 - 2025.02.12
新刊『組織をダメにするのは誰か?職場の問題解決入門』出版記念セミナー
2025.02.04 - 2025.02.04
会社の体質、これまでどおりで大丈夫? 職場に新たな風を吹き込むための「ネガティブ・ケイパビリティ」入門
2025.02.10 - 2025.02.10