コンテンツにスキップ

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

はじめに

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


01. チームの種類

チームの関係性

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

organization_team-topology


Strong ownership

▼ Strong ownershipとは

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

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

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

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

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

organization_team-topology_stream-aligned-team

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

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

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

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

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

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

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

  • バックエンドエンジニア
  • AIエンジニア


Collective ownership

▼ Collective ownershipとは

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

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

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

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

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