この記事は GMOアドマーケティング Advent Calendar 2020 1日目の記事です。
はじめに
こんにちは、
GMOアドマーケティング 開発本部 本部長のクリスです。
今回はエンジニア組織のリファクタリングについてお話しします。
組織作りは手段であって、目的、会社の規模、事業内容、またトップの考え方などによって
変わります。
現在の開発体制
弊社はアドテク事業としてSSPのGMOSSP、アドネットワークのAkaNe、DSPのReeMo、レコメンドエンジンのTAXEL、メディア事業としてめるもなど、幅広いプロダクトを自社開発で提供しています。
体制としてはプロダクトごとにエンジニアがアサインされ、チームにてそのプロダクトの開発を行う、いわゆるプロダクトチーム制となります。また、ほとんどのチームはスクラムを用いて開発をしています。
図で表すとこんな感じ
よく見られる開発体制で良いところはたくさんあります。たとえば、
- 事前にエンジニアがアサインされているため、プロダクトの開発計画は立てやすい
- チームもプロダクトも同じマネージャーがみるので、マネジメントしやすい
- エンジニアは基本的に一つのプロダクトに専念するので、落ち着いて開発できる
一方で、問題点もあります。たとえば、
- プロダクト横断での案件調整がしづらい
アドテク事業の特徴とも言えますが、プロダクト間の連携がとても多く、
一つの機能を導入するには複数プロダクトを横断して開発を行うケースが多い。
縦割りの開発体制では横連携の調整に時間がかかるし、摩擦が多い - チームの規模が大きくなるとマネージャーがボトルネックになる
組織の承認ルートを明確にするため、1チームにつき一人のマネージャーがみるので、
注力プロダクトになるとメンバーが増え、マネージャーの負担が激増、メンバーのケアもしにくくなる - エンジニアの成長への阻害となる
ずっと同じチームにいると、だんだん技術が固定化され、新しい技術に触れる機会が少なくなる
これから目指す開発体制
こういった問題点を解決すべく、開発本部のマネージャー陣で議論を重ねた結果、
プロダクトごとではなく、プロダクト横断でのスクラム開発を試してみることにしました。
また、プロダクトの規模に応じてチームマネジメントとプロダクト開発は別々のマネージャーをアサインすることを可能としました。
図で表すとこんな感じ
そうすることで、期待できる効果は以下のように考えています。
- スプリントごとに、プロダクト横断で優先順位の高い案件からエンジニアをアサインして開発を行うことができる
- プロダクトの規模に応じてチームマネジメントとプロダクト開発は別々のマネージャーで担当することが可能、またプロダクト管理は複数人のマネージャーで行うことも可能で、メンバーのケアもしやすくなる
- エンジニアが複数のプロダクトを開発する機会を得ることで、技術が固定されにくく、新しい技術に触れる機会が増える
絵に描いた餅にならないため、現在は環境整備をすすめています。
- タスク管理ツールの統一
プロダクト横断でのスクラム開発を可能にし、どんなプロダクトにアサインされても同じツールを使ってるので、キャッチアップしやすくなる - スクラムの運用ルール(一部)の統一
スプリント期間を2週間、また開始日を揃えることで、プロダクト横断での案件調整とエンジニアのアサインがしやすくなる - ペアプロの推進
はじめてのプロダクトにアサインされたとき、仕様などの理解が浅いので、ペアプロを活用してすこしでもキャッチアップをしやすくする、また継続していければノウハウの共有、属人化の解消効果も期待できる
などなど
最後に
見えている部分、見えていない部分、課題はたくさんありますが、
エンジニアも会社もWin-Winになれるようなエンジニア組織を目指して現場の意見をヒアリングしながらすすめていきたいと思います。
もしかしたら、まったく別の形になる可能性もあるかもしれません。
機会があればまたこのブログを通じて皆さんと共有できればと思います。
おまけ
エンジニアの組織作りで悩んでいるマネージャーの方も多いと思いますが、自分が参考として読んだ本のなかで、以下の三冊は特によかったと思います。
詳細の紹介は省きますが、よかったら読んでみてください。
明日は、S.Rさんによる「PythonでBigQueryの料金を監視する」です。
引き続き、GMOアドマーケティング Advent Calendar 2020 をお楽しみください!
■エンジニア採用ページ ~福利厚生や各種制度のご案内はこちら~
https://www.gmo-ap.jp/engineer/
■noteページ ~ブログや採用、イベント情報を公開中!~
https://note.gmo-ap.jp/
GMOアドマーケティング 開発本部 本部長