アジャイル チームは構造的にウォーターフォール チームとは異なります。ウォーターフォール チームは組織構造に従っており、多くの場合スケジュールは「トップ ダウン」で決まります。つまり、経営陣がペースとスケジュールを設定します。アジャイル開発では、チームが自分たちで組織化します。プロダクト所有者が示す優先順位とチームの処理能力に基づき、チームが自らスケジュールを立てます。
Scrum masters and development managers bridge the organizational gap between senior management and individual development teams. They work to optimize teams and individuals to deliver the best quality software that furthers company goals. The scrum master and the development manager also protect teams from outside distractions like feature creep, waterfall anti-patterns, cross-functional thrash, and side projects that distract from the team's true goals.
一般的にスクラムマスターも開発マネージャーも、複数のアジャイルチームを担当します。大規模アジャイルポートフォリオでそれぞれのチームをどのように動かすかを見てみましょう。
開発マネージャーとは?
開発マネージャーはアジャイル組織の重要な参加者として大きな役割を担います。コードアーキテクチャからエンドユーザー品質に到るまで、製品の品質に関して責任を負います。コードレビューを行ってプログラムの短期的および長期的ゴールを達成できるコードを構築します。チームとの距離が近いため、プログラムに使用するテクノロジーの選択への影響力を持っています。開発マネージャーはプロセスや製品と身近に接していることから、チーム内部および組織全体にコンテキストを伝えることができます。
優れた開発マネージャーはチームの構築に長けています。チームの構築は採用から始まります。開発マネージャーは次の理由から、採用プロセスを促進する立場にあります。
- 採用は時間がかかり、チームの活動に支障をきたす
- 候補者探しは優れた製品の開発から逸脱している
- 新規採用者をチームに迎える際の負担を軽減できる
つまり、開発マネージャーが募集と採用を引き受けることで、チームがプロダクトに専念できるのです。
また、開発マネージャーはパートナーやメンターの役割も担います。1 対 1 の面談、フィードバック、コーチングといった管理の基本を熟知しているからです。そして優れた開発マネージャーは、メンターとしてエンジニアを指導し、アイデアやコード、テスト、文化といった成果を挙げます。ときには、アーキテクチャ設計やブランチ戦略まで、さまざまな意思決定を巡ってチームに混乱が生じることもあります。そのような場合、優秀な開発マネージャーは適切なタイミングを見計らって介入するか、チームに任せて解決方法を学ばせるのです。
アジャイル チームとウォーターフォール チームの大きな違いの 1 つは、開発マネージャーが見積もりプロセスのパートナーであることです。ウォーターフォール チームでは、このような会話がまったくないわけではありません。
- 「このフィーチャーのデリバリーにはどれくらいかかりますか?」- マネージャー
- 「6 週間です。フィーチャーを実現するために、A、B、C を行う必要があります」- エンジニア
- 「なるほど。わかりました。ただ、4 週間ですべてを完了する方法を見つける必要があります。」- マネージャー
しかし、アジャイル開発マネージャーは優秀な人材を雇い、その人材を信頼することを知っています。アジャイル プロセスの基本原則は、仕事を最も近くで見ている人間がスコープの設定とデリバリーに最も適しているということです。チームはスケジュールを設定します。開発マネージャーは、見積り演習で行われた前提条件の照会と検証に独自の価値を追加します。それを指示するのではなく、プロセスでパートナーを組みます。
アジャイル組織では、「4 週間で完了する方法を見つけてください」というような言葉を聞くことはありません(もしこのような意味のことを言うにしても、匂わせる程度です)。
スクラムマスターとは?
スクラムマスターはアジャイルチームのプロジェクトリーダーであり、パフォーマンスの最適化、プロダクトオーナーとチームの間に立ってスプリントの一貫した成功を目指します。スクラムマスターはチーム間の調整も行い、コアチームが製品開発に専念できるようにします。
スクラム マスターの目的は、全員が共通の認識を持って効率的に活動できるようにすることです。そのため、スクラム マスターはアジャイル プログラムに必要なほとんどのインプットとアウトプットを調整します。スクラム マスターはアジャイル セレモニーを実施します。スプリントのキックオフ、デイリー スタンドアップ、スプリント レビュー、スプリントのふりかえりのほか、チームや開発マネージャーとともに、バックログでのエピックや個々のユーザー ストーリーなどの上位項目の見積もりも行います。スクラム マスターはチーム メンバーのような技術的知識を持っていないこともあります。知識のギャップが見られる場合は、開発マネージャーがスクラム マスターとチームの間に立って重要なコンテキストを提供します。チームがアジャイルに慣れてきたら、スクラム マスターは見積もりからデリバリーのベロシティに重点を移します。
また、大規模組織ではスクラム マスターがアジャイル コーチとしての役割も担います。ストーリー ポイントの見積もり、スプリント計画、継続的なデリバリーという製品ライフサイクル全体を通して、アジャイル プラクティスを導入して使いこなせるように支援します。コーチングもスクラム マスターの重要な役割です。スクラム マスターはアジャイル エキスパートとして、プロジェクトや企業になぜアジャイルが適しているのかを理解しており、アジャイルの導入に苦労している企業を支援できます。
アジャイルポートフォリオにおいては、スクラムマスターと開発マネージャーが協力して取り組む
ほとんどのウォーターフォールチームはマネージャー中心です。優先順位の設定、進捗管理、パフォーマンス評価をマネージャーに任せます。一方、アジャイルチームは自己組織化し、ロードマップとデリバリーを自主管理します。大規模組織でこれを実現するために、スクラムマスターと開発マネージャーは協力して組織全体にアジャイルの文化を作り上げ、チームと最高責任者レベルの経営陣との橋渡し役を務めます。両者とも複数のアジャイルチームにわたって活動するため、アジャイルポートフォリオの重要メンバーです。
スクラム マスターはチームのアジャイル導入と実装に、開発マネージャーは適切な人材の採用、既存のチームメンバーの指導、各チームの優れた開発文化の構築に取り組みます。両者が協力して、優秀なアジャイル チームを育成します。