コンテンツにスキップ

開発組織の編成@開発体制

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. チームの種類

チームの関係性

ストリームアラインドチームがプロダクトを開発し、その他のチーム (イネーブルメントチーム、プラットフォームチーム、複雑サブシステムチーム) はこれを後押しする。

organization_team-topology


Strong ownership

▼ Strong ownershipとは

1つの開発チームが1つのマイクロサービスに責任を持つ。他のチームがそのマイクロサービスの開発に関わりたい場合、マイクロサービスの担当チームに依頼するか、プルリクエストで承認を得る必要がある。

▼ ストリームアラインドチーム (プロダクトチーム)

ストリームアラインドチームは、特定のドメインのプロダクトを継続的に開発し、そのドメインのユーザーに価値を提供する。

ストリームアラインドチームには、プロダクトを開発するためのメンバーが属している。

  • プロダクトオーナー
  • デザイナー
  • フロントエンドエンジニア
  • バックエンドエンジニア
  • QAエンジニア
  • Embedded SRE

organization_team-topology_stream-aligned-team

▼ プラットフォームチーム

プラットフォームチームは組織内サービスを開発し、主にストリームアラインドチームのプロダクト開発を後押しする。

プラットフォームチームには、プラットフォームを開発するためのメンバーが属している。

  • プロダクトオーナー
  • デザイナー
  • フロントエンドエンジニア
  • バックエンドエンジニア
  • QAエンジニア
  • Platform SRE

▼ 複雑サブシステムチーム

ストリームアラインドチームが責任を持つサブシステムに特別な専門知識 (例:ビジネスロジック、AIモデリングロジック、アルゴリズムに関する知識) が必要な場合に、複雑サブシステムチームはこれを支援し、ストリームアラインドチームのプロダクト開発を後押しする。

複雑サブシステムチームには、特定の領域に専門性をもつメンバーが属している。

  • 特定の領域に専門性をもつバックエンドエンジニア
  • AIエンジニア


Collective ownership

▼ Collective ownershipとは

任意のチームが任意のマイクロサービスに責任を持つ。

▼ イネーブルメントチーム

イネーブルメントチームは、ストリームアラインドチームに技術的な知見を提供し、ストリームアラインドチームのプロダクト開発を後押しする。

イネーブルメントチームには、特定の領域に専門性をもつメンバーが属している。

  • デザイナー
  • フロントエンドエンジニア
  • バックエンドエンジニア
  • QAエンジニア
  • Enabling SRE