XPとスクラム、RUPにおける計画
次に、アジャイル開発の代表的な手法において、それぞれ計画についてどのように述べているかを見てみましょう。表1にXP、スクラム、RUPの3つの手法で述べている計画について示します。
手法 | 計画 |
XP |
|
スクラム |
|
RUP |
|
XPやスクラムは軽量級の方法論です。一方、RUPは重量級の方法論です。XPでは1週間のイテレーションと四半期のリリースを基本的なサイクルとし、リリース計画書で四半期ごとに計画します。スクラムでは1週間~30日程度のスプリントを基本とし、プロダクトバックログ、リリースバックログ、スプリントバックログの3つが具体的な計画/管理ツールになります。RUPではイテレーションを重視しつつ、ウォーターフォール的に順次開発工程を進めていきます。
これらの方法論には、共通することがいくつかあります。
- 計画を簡易的に行なう
- その代わり定期的に見直す
- 簡易な計画/管理ツールを利用する
- チームとしてスケジュールを組む
元々はスクラムにおける用語で、製品の機能一覧、残作業の一覧、見積工数の合計、「ストーリー」と呼ばれる簡易な機能の記述をリスト化したものであり、アジャイル開発における作業管理の中心ドキュメントです。
スクラムでは、ストーリーバックログは3段階に分かれています。粒度が大きい順に「プロダクトバックログ」「リリースバックログ」「スプリントバックログ」と呼び、整合性を持たせます。最初にすべてを計画するのではなく、各リリース、スプリントを詳細化していきながら計画を立てていきます。
XPのプラクティスの1つに、「Sit Together」があります。これは、すべてのステークホルダーが同一の場所で作業することを指しますが、実現しにくいケースがあります。特にプロジェクトの規模が大きくなるとフロアが異なったり、時にはオフショア開発チームが参入していることもあります。
そのような中で、アジャイル開発をこなしていくことは決してやさしくはないのですが、不可能ではありません。努力した分の結果はついてくるでしょう。
中国上海とのオフショア開発において、筆者が所属するディーバはアジャイル手法の適用を試みました。ホスティングサービスを利用して同時に双方から同じコードにアクセスできるようにしたり、四六時中Skypeチャットで会話したりと、技術面でできる限り工夫しました。
しかし、最も重要なことは信頼関係です。プロジェクトの初期段階で、中国側のプロジェクトマネージャと1ヶ月ほどともに過ごしました。その結果、顔が見えず、文章の会話のみでプロジェクトを続けていく中でもいっしょに開発を進めることができました。
Martin Fowler氏の論文“Using an Agile Software Process with Offshore Development”(2003-2006/日本語訳あり)の中でも、信頼関係の重要性を説いています。