開発チームの構造
最終更新
最終更新
技術とプロダクトと組織は相互に関係しています。ここでは、どのような人の集まり=組織が、技術を使ってプロダクトを生み出しているのかの概要を説明します。
こちらの図は2023年時点での組織の構造をおおまかに描写したものです。
まず、組織にはたくさんの Squad と呼ばれる2-5人程度のチームがあります。Squad は、共通のミッションを達成するための、自律した最小のチーム単位です。Squad には、そのミッションを達成するために必要な、さまざまな技術領域・職能の人が集まっています。ミッションは OKR: Objective and Key Result によってわかりやすくチャレンジングなものとして定義します。
特にプロダクト開発に関して Squad を活動の基本的な単位とするのは、プロダクトのミッション(目的)に対して共感して動ける文化を重視しているためです。職能を先に置いてしまうとこういった要素が薄くなりがちです。
もう一つ重要な単位に Chapter と呼ばれるものがあります。これは、Squad を横断して存在する、共通の専門領域に関心がある人たちの集まりです。専門領域に対して適切な戦略を考えたり、共通の課題に取り組んでいます。
例えば、システムを開発していて、自分の Squad では通信に JSON を使っているけれども、隣の Squad では XML を使っている、といった事があると Squad に入った時にうまく能力を発揮できませんし、開発した機能間の連携もできません。そのような機会があまりなければ良いですが、Wantedly は人と会社が有機的に価値を生み出す単一のビジネス・プラットフォームであるため、機能間の異動や連携は恒常的にあります。そのため、Chapter という仕組みが存在します。
Squad と Chapter の違いが一点あります。Squad については、素早く動きユーザーに価値を届けることを重視するために原則としてひとつに所属している状態が望ましいです。一方で Chapter についてはあくまで技術的なトピックの切り口であるため、そういった状態を理想としているわけではありません。必要であれば新しい領域にチャレンジするのも良いでしょう。
なお、技術領域と言ってもどこまでも細かく切ることは想定しておらず(e.g. "Ruby Chapter" という単位では Chapter にしない)、さまざまなことを考慮して一定の粒度で決めています。大まかには、1) 身につけるのに一定以上の時間が必要なコアスキルのセットを共有している、2) 同様のスキルセットを持つエンジニアが世の中や社内に一定数いる、といった条件は満たしている必要があるでしょう。
以上が、もっとも基本的な組織の構成要素です。他にも、補完的なものとして Guild というものもあります。
最後に、より具体的な Squad と Chapter を含む全体について説明します。2022年7月現在、 プロダクトに紐づく Squad は Dev Trive の傘下で動いています。また、ソフトウェア基盤の構築・改善、意思決定のための情報収集分析、組織開発などプロダクト開発をより推進するための 基盤 Squad が合計5つ存在します。例えば Kubernetes のようなシステム基盤は Infra Squad によって導入・運用をしています。プロダクト開発 Squad と基盤 Squad があることで、生産と生産性を両立することを目指しています。