アジャイル開発とスクラム
アジャイル開発には、スクラム、XP、RUP、DSDMなどの数々の開発手法がある。スクラムは、創案者Jeff SutherlandとDr.Ken Schwaberによって、1993年米国イーゼル社に初めて導入され、1995年に公表された(1)。現在、スクラムの採用率は、アジャイル開発全体の76%で、最も採用されているアジャイル開発手法である(2)。
スクラムは、一橋大学名誉教授の野中郁次郎、竹内弘高が1986年のハーバード・ビジネス・レビューに載せた論文「新製品開発ゲーム」(3)に強く影響を受けている。スクラムという名称はこの論文から引用された。この論文では、ホンダ、富士ゼロックス、キャノンなどの調査結果を参考にして、新製品開発において高いパフォーマンスを上げるチームは、少人数の組織横断的なメンバーのチームでプロジェクトを組み、ラグビーのスクラムのような自己組織的チームであると述べている。自己組織的あるいは自己管理的なチームは、ソフトウェア開発においても、組織における阻害要因が取り除かれれば、当然より良いソフトウェアを提供できるという信念に基づいている(4)。
スクラム・プロセスは、プロダクト・バックログと呼ばれる開発したい案件のリストから、優先順位の高い順に1回の反復(スプリントと呼ぶ)で開発可能なものを抜き出し、少しずつプロダクト・バックログを減らしながら開発していくものである。第1図に示すように、1つのスプリント期間は2週間から4週間で、「動くソフトウェア」の増加分を作り出す。1つのスプリント期間は固定化され、その期間に開発された「動くソフトウェア」の増加分のデモを行い、プロダクト・オーナー(顧客)が確認を行う。そのスプリント期間に生じた変更要求などは次のスプリントに反映する。予め決められたスプリント回数を反復して、「動くソフトウェア」をリリースする。
次にスクラムに特徴的な4つのミーティングについて説明する。
スプリント開始時のスプリント計画ミーティングで、開発チームは、プロダクト・オーナー(顧客)と一緒に、ビジネスの価値で優先順位付けされた要求事項リストであるプロダクト・バックログから、このスプリント中に実行する要求事項を優先順位の高いものから選択し、要求事項を実現する作業計画(スプリント・バックログ)を作る。開発チームはこの作業計画の実現をコミットする。
開発チームは、開発に入り、毎日決まった時間に集まって、手短に(15分間)前日の作業結果とその日の作業計画さらに作業上の障害を確認し合うデイリー・スタンドアップ・ミーティングを実施して作業に移る。設計、コーディング、テストを行い、「動くソフトウェア」を漸進的に作り出す。
スプリント終了時のスプリント・レビュー・ミーティングでは、このスプリントで開発された「動くソフトウェア」の増加分のレビューとデモを行い、顧客を含むステークホルダーと一緒に、確認する。またスプリント期間中に発生した要求事項の変更要求は、次のスプリントに必要な情報としてプロダクト・バックログにフィードバックをし、次のスプリントで対応する。またスプリント・レトロスペクティブ・ミーティングを実施し、実行したスクラム・プロセスの有効性を振り返り、次のスプリントのプロセス改善に役立てる。このサイクルを予め決めた回数を反復して、最終的に顧客の要求事項のあった「動くソフトウェア」をリリースする。ソフトウェアを漸進的に確認しながら開発していくので、顧客の要求事項にあった「動くソフトウェア」を決められた期間で、開発することができ、顧客満足度を向上させることができる。
スクラム・チームは、プロダクト・オーナー(顧客)、スクラム・マスター、開発チームから構成され、次のような役割を持っている。
プロダクト・オーナー(顧客) |
・ |
プロダクトの要求事項の定義 |
・ |
要求事項のリリース計画 |
・ |
要求事項の優先順位付け |
・ |
スプリント毎の要求事項や優先順位を調整。 |
・ |
作業結果の受入の可否。 |
スクラム・マスター |
・ |
開発チームのスプリント実行を支援 |
・ |
開発チームを自己組織的チームに育成 |
・ |
開発チームの能力向上、品質向上、生産性向上を支援 |
・ |
開発チームと他部門との調整 |
・ |
開発チームの進捗の阻害要因を除去 |
開発チーム |
・ |
自己組織的チーム |
・ |
プロダクト・オーナー(顧客)に納品をコミット |
・ |
プロダクトの要求事項を納品 |
・ |
組織横断的チーム(多機能チーム) |
スクラム・マスターは、ウォーターフォール型開発におけるプロジェクト・マネジャーにあたるが、チーム・メンバーに対して指示・管理は行わない。開発チームが、自らの行動の意思決定を行い、行動できるよう、進捗の阻害要因を取り除くなどの支援をする。開発チームが、高いモチベーションを持った自己組織的チームになるよう、育成する役割をもっている。そのために、スクラム・マスターは、開発チームの要求事項にまず応えて導いていくリーダーシップ、すなわちサーバント・リーダーシップとファシリテーションのスキルが強く要求される(5)。
以上
参考資料
(1) |
Scrum Papers:Nuts,Bolts,and Origins of an Agile Process, Jeff Sutherland & Dr Ken Schwaber,2007 |
(2) |
5th Annual State of Agile Development Survey ,VERSIONONE,Nov 7,2010 |
(3) |
The New New Product Development of Game,Hirotaka Takeuchi & Ikujiro Nonaka,Harvard Business Review,1986) |
(4) |
A CIO's Playbook for Adopting the Scrum Method of Achieving Software Agility,Dr Ken Schwaber,Rally WhitePaper,2005 |
(5) |
Collaboration Explained,Jean Tabaka,Addison Wesley,2006 |
|