あなたがチームの一部である時、チームメートを擁護する。あなたはチームメートに対して忠誠心を抱く。よい時も悪い時もあなたはチームメートを守る。チームメートも同じことをしてくれるからだ。

—ヨギ・ベラ

アジャイルチームは最高だ。

—SAFeマントラ

アジャイルチームの概要

アジャイルチームは機能横断的なグループで、短い反復の時間枠(タイムボックス)で、定義(要求の推敲と優先順位付け、ソリューションの設計)、構築(ソリューションを実装するためのコードとテストケースの作成)とテスト(テストケースの実行、定義された要求を用いてソリューションを検証する)を実施するためのスキルと権限を持っている。このように、チームはソリューションレベルの価値を提供できるように、複数の開発者とテスト担当者、1人のスクラムマスター、1人のプロダクトオーナーが含まれ、また、他の特殊なリソース(DBA、UX)なども含まれる(あるいは共有する)。SAFeはXPのプラクティスを大いに取り入れ、コード品質のためのガイドも提供するため、非正式に、我々はSAFeにおけるアジャイルチームを「SAFeスクラムXP」チームと呼ぶ。

アジャイルチームはアジャイルリリース列車(ART)の不可欠の一部であり、複数のアジャイルチームが共同でARTの価値を納品することを責任持つ。すべてのチームが列車に乗る。その一方、チームを持っていない列車が存在しない。チームが使命、及び列車のアーキテクチャーガイダンスを分かった上で仕事をする。各チームは自分の担当分をそれぞれ行い、重要なリリース列車のイベントを参加する。チームと列車は切り離せない。全体は部分の総和に勝る。

詳細

個々のSAFeスクラムXPチーム(メンバー数は7+/-2人)は1人のプロダクトオーナー、1人のスクラムマスター、複数名の開発者とテスト担当者、及びその他のリソースからなる機能横断的なチームである。これらのリソースは、短い時間枠で顧客価値のインクリメントを定義し、構築とテストを完全に実施するために必要なものである。アジャイル列車において、チームは権限が委譲され、自己組織化、自己管理、プログラムと顧客のニーズや期待に満たす結果を提供する責任を持つチームである。企業は他のやり方ではなく、チームや列車に作業を任せることによって、長く存続でき、ソフトウェアを提供する能力を絶えず改善することに専念できるチーム及び複数のチームによって構成したチームの構築を支援する。

このように、アジャイルは従来のマネージャーから従業員への指導行為というアプローチと著しく異なっている。チームがソリューションを構築するため何をどのようにするかを決める。リーン-アジャイルリーダーは、高いパフォーマンスを発揮するチームの成長を促進するために必要なビジョン、リーダーシップ及び自律性をを提供する。個々のチームメンバーの作業項目を割り当てることはもはや必要ない。

SAFeのチームは列車に乗る

SAFeにおけるチームは孤立的な単位ではない。複数のチームが協力し合ってアジャイルリリース列車を駆動し、常にシステムレベルで動作する価値のあるインクリメントを構築する。チームバックログは大部分プログラムバックログから由来するため、プロダクトオーナーは拡張されたプロダクトオーナー/プロダクト管理者チームに参加する。リリース列車において、スクラムマスターも特別な役割を果たす。計画策定時に特定の責務を持ち、列車が順調に進めるように、常に自分のチームとプログラムをサポートする。ソリューションの構築をよりよく連携するため、列車に乗っている各チームの反復は時間枠がお互いに一致する。定期的に、チームはリリース計画策定検査と適応を参加し、列車レベルの組織的な改善に取り組む。一部のチームメンバーはスクラムオブスクラムズやシステムデモにも参加する。

アジャイルチームの構成と役割

縦割りに基づく機能のモデルでは、アーキテクチャー、プロダクト管理、開発とテストなど論理的に、また物理的に独立した複数の機能毎の部署によって、長いライフサイクルの終盤でやっとユーザーの価値を提供する。アジャイルはこのようなモデルから逆行できないように脱退しなければならない。アジャイルチームは、SAFeの規模範囲内では、これらのすべての機能を持ち、2週間ごとにエンドユーザーへ価値を提供する。

スクラムは現在導入されたアジャイルプラクティスでは今までで一番認知度の高いものである。SAFeはスクラムに基づくもので、スクラムにおいて明確に定義された役割がプロトタイプ型のSAFeアジャイルチームにおいて果たす構造と振る舞いについて説明する。

  • プロダクトオーナー:1名。要求バックログの定義と優先順位付け、チームの要求推敲への支援、ベースラインに完了したストーリーの受け入れが、その責務である
  • スクラムマスター:1名。チームの相互作用の促進、スクラムのルールの適用、ミーティングの開催、チームの継続的な改善の促進が、その責務である
  • アジャイルチームメンバー:数名。主に開発者とテスト担当者によって構成するが、他の必要な役割(例えば:開発リーダー、システムアーキテクト、技術文書作成者など)も含む

このようなチームは以下の図で示される。

Figure 1. Typical Agile Team structure

図1. 典型的なアジャイルチームの構成

SAFeのチームは基本的なスクラムプラクティスをカンバンと一緒に統合、「スクラムバン」としても利用できる。「スクラムバン」を利用するチームは、一般的に、作業の可視化やWIPの制限、累積フローと処理能力に対する理解により強い関心がある。モデルに関わらず、アジャイルチームの責務は従来の機能モデルにあるチームと根本的に異なる。列車のコンテキストでは:

  • チームは大きなソリューションの一部である。
  • チームは自己管理の責務がある。
  • チームが作業の規模と複雑性を見積もる。
  • チームが自分の関心領域内で技術ソリューションを決定する。
  • チームが時間枠内で完了できる作業を確約する。
  • チームが価値と品質に責任を持つ。
  • チームは改善の方法を発見することを絶えず努める。

XPから取り入れた拡張された品質プラクティスによる品質維持

スクラムはチームに基本的な組織とプロジェクト管理プラクティスを提供したが、チームがどのようにコードの作成に取り掛かるかに関しては触れてない。SAFeは、アジャイルアーキテクチャー継続的なインテグレーションテストファースト開発などのプラクティスを通じ、コード品質を維持するために、規律的なアプローチへのガイダンスを提供する。

協調、コミュニケーション、確約

チームは定期的なコミュニケーションと協調、迅速かつ有効な意思決定を行うことにより、これら責務を果たすことができる。時間ごと、日次、週次のコミュニケーション(図2)を促進するため、可能な限り、チームが同じ場所に配置するのがよい。アジャイルチームは一定なリズムと同期によって作業を導き、バラツキをコントロールする。

図2. アジャイルチーム:協調的な環境

標準的なチームミーティングには日次スタンドアップ、反復計画策定、各反復終盤のソリューションデモ振り返りがある。各チームメンバーは完全にチームに専念し、責任がある労働時間内に集中的に働く。各チームメンバーは基本的に時間を尊守し、大切にする。従って、すべては固定時間で実施する。チームメンバーは継続的ほかのチームと積極的な連携を取り、依存関係を管理し、障害を取り除く。

チーム内の関係は基本的に信頼に基づく。信頼は共通のスプリントゴール、チームPI目標、定期的なフィードバックループによって促進する。ソフトウェアの各有形の納品物は、信頼を促進し、不確実性とリスクを低減し、確信を構築する。共有されたプログラム使命、チームのビジネスに価値を提供するための確約よって、アジャイルチームはモチベーションを維持する。


さらに知りたい場合

[1] Leffingwell, Dean. Scaling Software Agility: Best Practices for Large Enterprises. Addison-Wesley, 2007. (邦訳:アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス、翔泳社、2010)

[2] Lencioni, Patrick. The Five Dysfunctions of a Team: A Leadership Fable. Jossey-Bass, 2002. (邦訳:あなたのチームは、機能してますか?、翔泳社、2003)

[3] Cohn, Mike. Succeeding with Agile: Software Development Using Scrum. Addison-Wesley, 2009.

[4] http://agilemanifesto.org/

 

Last update: 15 July, 2015

This information on this page is © 2010-2014 Leffingwell, LLC. and is protected by US and International copyright laws. Neither images nor text can be copied from this site without the express written permission of the copyright holder. For permissions, please contact permissions@ScaledAgile.com.