ソフトウェア開発に登場する人物の役割と責任をまとめてみる

Team awe.sm
Jonathan Strauss – Team awe.sm

いろんな役割や責任が世の中にはある。それらは会社によってそれぞれ違ったりするけれど、だいたいどういった役割であって、どういった責任を持っているのかを整理してみようと思う。

チームや組織に登場する人たち

iOSエンジニアといった人たちは、わりかしわかりやすいので割愛して、 何をやっているのかわかりにくかったり、人によってやってることが違ったり、呼び方が違ったりする部分を中心に整理。経験則中心でまとめるけど、スクラム周りはスクラムガイドを読むのが一番いい。

  • プロダクトオーナー(省略形:PO、別名:プロダクトマネージャ)
    • 説明
      • 呼び方がオーナーだったりマネージャだったりするのでややこしいやつ。個人的にはどっちかにしてほしい
      • プロダクトバックログが責任の中心にある
    • 役割
      • プロダクトバックログアイテムを明確に表現する
      • ゴールとミッションを達成できるようにプロダクトバックログアイテムを並び替える
      • 開発チームが行う作業の価値を最適化する
      • プロダクトバックログを全員に見える化・透明化・明確化し、スクラムチームが次に行う作業を示す
      • 必要とされるレベルでプロダクトバックログアイテムを開発チームに理解してもらう
    • 責任
      • 開発チームから生み出されるプロダクトの価値の最大化
      • プロダクトバックログの管理
      • 役割を開発チームが行う場合もあるが、最終的な責任はPOとなる
  • プロデューサー(省略形:PRO、プランナーも近い存在)
    • 説明
      • サービスの企画立案、リリース、運用、改善を行う仕事(参考:サイバーさんの採用ページ
      • プロダクトオーナーとかぶってわかりにくい
    • 役割
      • サービスのプロデュース部分と、プロジェクトとしてのプロジェクトマネジメント部分の両刀遣い
    • 責任
      • サービスの成果責任
      • サービスのリリース責任(開発チームとも一緒に持つ)
  • スクラムマスター(省略形:SM)
    • 説明
      • 名称が先行して「で、結局何?」になりがちな悲しい存在。でも大切
    • 役割
      • スクラムの理論・プラクティス・ルール・価値基準を全員に理解してもらえるように支援する
      • プロダクトオーナーや開発チームの支援
      • 必要に応じて、スクラムイベントのファシリテーション
    • 責任
      • スクラムガイドで定義されたスクラムの促進と支援
  • アジャイルコーチ
    • 説明
      • 企業のチームに対してアジャイルの方法論を指導し、アジャイルチームの成長を統括して、組織にとっての成果をきちんと生み出せるように支援する(参考:日経BPより
    • 役割
    • 責任
      • アジャイル開発に必要な組織設計・適用・運営
      • アジャイル開発における人材育成
  • 開発チーム(スクラムの場合)
    • 説明
      • 最近はアジャイル開発やスクラムにおける開発チームが定番になってきているため、ここではメジャーなスクラムチームを選んだ
    • 役割
      • 自己組織化されていて機能横断的なチーム
      • インクリメントを作成するスキルをチームとしてすべて備えている
    • 責任
      • プロダクトのインクリメンタルなリリース
      • 開発における専門能力や専門分野の意思決定
  • プロジェクトマネージャ(省略形:PM)
    • 説明
      • プロジェクトの責任者と言うよりも、Web界隈だとプロダクトの責任も負うようになってきている気がする
    • 役割
    • 責任
      • プロジェクトの成功責任(リリース、リリース後の成果含む)
  • テックリード(省略形:TL、参考:ProEngineerさんのページ
    • 説明
      • わかりやすくいうと「エンジニアチームの窓口兼リーダー」
    • 役割
      • プロダクトローンチに伴う進捗管理
      • プロダクトの設計
      • チームの技術力、生産性の向上
      • 非エンジニア組織や各部署からの問い合わせ対応
      • コード、品質レビュー
      • エンジニアチーム内でのメンター、相談役
    • 責任
      • プロダクトリリース
      • プロダクト設計やコード品質
      • プロダクト運用
      • 非エンジニア組織や各部署へのチームロール説明責任
  • CTO(参考:ProEngineerさんのページ
    • 説明
      • 会社における技術的な役割に焦点をあてたもの
    • 役割
      • 技術戦略の意思決定
      • 企業経営の視点から技術内容を管理
      • 投資などの意思決定
    • 責任
      • 技術戦略の側面から、技術開発方針の設定と実施に責任を持つ
  • VPoE(省略形:VP)
    • 説明(参考:グノシーさんのページ
      • 開発組織におけるマネジメント責任者
    • 役割(参考:Qiitaより
      • サービスを発展させていくために必要な業務全般を行う
      • エンジニア組織のマネジメント全てを統括する
      • エンジニア組織のトップとして、マネジメントを担う
    • 責任(参考:Qiitaより
      • サービスのグロースを目的とし、エンジニア組織の成長(生産性と成長の最大化)に責任を持つ
  • エンジニアリングマネージャ(省略形:EM)
    • 説明
      • 最近はやってるけどいろいろやることがあるので人によって違う価値観がありそう。
    • 役割
      • エンジニアチームの生産性を最大化すること(参考:kobakei-sanのブログより
      • 事業、プロダクトに貢献しながら、チームのエンジニアの活躍にコミットすることで、メンバーの評価を上げる仕事(参考:Baseさんのブログより
    • 責任(参考:Baseさんのブログより
      • 事業の推進やプロダクトの開発責任
      • メンバーの評価責任
  • おまけ:ラインマネージャ
    • 説明
      • 管理職の代表的な役職。開発組織ではあんまりマッチしない気がする。
    • 役割(参考:カオナビさんのページより
      • 現場の管理職であり、意思決定権を持つ人。日本の役職では部長や課長になる
    • 責任
      • メンバーの評価
      • チーム全体の目標達成

ざっくり図に書いてみると上記のようなイメージ? たくさんありすぎるので、何をどう言う意味とするかはそれぞれの環境にあわせてカスタマイズしたほうがよさそう。ただし、誤解が生まれるので本来の意味を大きく超えない範囲で。