開発マネージャーとスクラムマスター

両者の間では死闘が繰り広げられています (というのは冗談で、実はごく平和に共存しています)

Dan Radigan Dan Radigan
トピック一覧

アジャイルチームは構造的にウォーターフォールチームとは異なります。ウォーターフォールチームは組織構造に従っており、多くの場合スケジュールは「トップダウン」で決まります。つまり、経営陣がペースとスケジュールを設定します。アジャイル開発では、チームが自己組織化します。プロダクトオーナーが示す優先順位とチームの処理能力に基づき、チームが自らスケジュールを立てます。

スクラムマスターと開発マネージャーは、経営上層部と個々の開発チームの組織的ギャップを埋めます。企業のゴールに向けて最適な品質のソフトウェアを実現するために、チームや個人を最適化します。また、スクラムマスターと開発マネージャーは、機能の複雑化 (フィーチャークリープ)、ウォーターフォールのアンチパターン、部門間での衝突、副次的プロジェクトによるチームの真のゴールからの逸脱といった外部からの妨害要因からもチームを守ります。

一般的にスクラムマスターも開発マネージャーも、複数のアジャイルチームを担当します。大規模アジャイルポートフォリオでそれぞれのチームをどのように動かすかを見てみましょう。

開発マネージャーとは?

開発マネージャーはアジャイル組織の重要な参加者として大きな役割を担います。コードアーキテクチャからエンドユーザー品質に至るまで、製品の品質に関して責任を負います。コードレビューを行ってプログラムの短期的および長期的ゴールを達成できるコードを構築します。チームとの距離が近いため、プログラムに使用するテクノロジーの選択への影響力を持っています。開発マネージャーはプロセスや製品と身近に接していることから、チーム内部および組織全体にコンテキストを伝えることができます。

優れた開発マネージャーはチームづくりの達人でもあります。チームづくりは採用から始まります。開発マネージャーは次の理由から、採用プロセスを促進するべき立場にあります。

  • 採用は時間がかかり、チームの活動に支障をきたす
  • 候補者探しは優れた製品の開発から逸脱している
  • 新規採用者をチームに迎える際の負担を軽減できる

つまり、開発マネージャーが募集と採用を引き受けることで、チームがプロダクトに専念できるのです。

また、開発マネージャーはパートナーやメンターの役割も担います。1 対 1 の面談、フィードバック、コーチングといった管理の基本を熟知しているからです。優れた開発マネージャーは、メンターとしてエンジニアを指導し、アイデアやコード、テスト、文化といった成果をあげます。ときには、アーキテクチャ設計やブランチ戦略まで、さまざまな意思決定を巡ってチームに混乱が生じることもあります。優秀な開発マネージャーは適切なタイミングを見計らって介入するか、チームに任せて解決方法を学ばせます。

アジャイル型チームとウォーターフォール型チームの大きな違いの 1 つが、開発マネージャーが一緒になって見積もりプロセスを行う点です。ウォーターフォール型チームでは、次のような会話がよく聞かれます。

  • 「この機能のデリバリーにはどれくらいかかりますか」 – マネージャー
  • 「6 週間です。フィーチャーを実現するには、A、B、C を行う必要があります」 – エンジニア
  • 「なるほど。わかりました。でも、4 週間ですべてを完了する方法を見つける必要があります」 – マネージャー

しかし、アジャイル開発のマネージャーは優秀な人材を登用して彼らを信頼する術を知っています。アジャイルプロセスの基礎となるのは、仕事を最も近くで見ている人間がスコープの設定とデリバリーに最も適しているという考え方です。チームがスケジュールを設定し、開発マネージャーは指示を出すだけではなく、見積もり作業のプロセスに実際に参加して、仮説について尋ねたり調査したりする中で自身で考えた値を追加します。

アジャイル組織では、「4 週間で完了する方法を見つけてください」というような言葉を聞くことはありません (もしこのような意味のことを言うにしても、匂わせる程度です)。

スクラムマスターとは?

スクラムマスターはアジャイルチームのプロジェクトリーダーであり、パフォーマンスの最適化、プロダクトオーナーとチームの間に立ってスプリントの一貫した成功を目指します。スクラムマスターはチーム間の調整も行い、コアチームが製品開発に専念できるようにします。

スクラムマスターのゴールは、全員が共通の認識を持って効率的に活動することです。そのため、スクラムマスターはアジャイルプログラムに必要なほとんどの入出力を調整します。スクラムマスターはアジャイルセレモニーを実施します。スプリントのキックオフ、日々のスタンドアップ、スプリントレビュー、スプリントのふりかえりのほか、チームや開発マネージャーとともに、バックログでのエピックや個々のユーザーストーリーといった上位項目の見積もりも行います。スクラムマスターはチームメンバーのような技術的知識を持っていないこともあります。知識のギャップが見られる場合は、開発マネージャーがスクラムマスターとチームの間に立って重要なコンテキストを提供します。チームがアジャイルに慣れてきたら、スクラムマスターは見積もりからデリバリーベロシティに重点を移します。

また、大規模組織ではスクラムマスターがアジャイルコーチとしての役割も担います。ストーリーポイントの見積もり、スプリント計画、継続的デリバリーという製品ライフサイクル全体を通して、アジャイルプラクティスを導入して使いこなせるように支援します。コーチングもスクラムマスターの重要な役割です。スクラムマスターはアジャイルエキスパートとして、プロジェクトや企業になぜアジャイルが適しているのかを理解しており、アジャイルの導入に苦労している企業を支援できます。

アジャイルポートフォリオにおいては、スクラムマスターと開発マネージャーが協力して取り組む

ほとんどのウォーターフォールチームはマネージャー中心です。優先順位の設定、進捗管理、パフォーマンス評価をマネージャーに任せます。一方、アジャイルチームは自己組織化し、ロードマップとデリバリーを自己管理します。大規模組織でこれを実現するために、スクラムマスターと開発マネージャーは協力して組織全体にアジャイルの文化を作り上げ、チームと最高責任者レベルの経営陣との橋渡し役を務めます。両者とも複数のアジャイルチームにわたって活動するため、アジャイルポートフォリオの重要メンバーです。

スクラムマスターはチームのアジャイル導入と実装に、開発マネージャーは適切な人材の採用、既存のチームメンバーの指導、各チームの優れた開発文化の構築に取り組みます。両者が協力して、優秀なアジャイルチームを育成します。

次の記事
Git