4段階のタイムボックス
XPやスクラムなどのアジャイル開発方法論が登場して10年以上が過ぎましたが、各方法論は決して排他的ではなく、次第に改善され、またミックスされていきました。ディーバもアジャイル開発を試行錯誤していく中で、徐々にプロジェクトの進め方が収斂してきています。
ここでは現在進めている4段階のサイクルを紹介します。「リリース」「マイルストーン」「スプリント」「デイリースクラム」のタイムボックスから成るサイクルです(図2)。
それでは、以降で各作業について紹介していきましょう。
デイリースクラム
まず、デイリースクラムから開始します。個々が前の日に行なったことと、その日に行なうことを発表します。一般的に15分以内とされますが、仕様の認識違いや不具合、原因の話し合いなど議論が始まってしまう傾向があります。議論のネタがあぶり出されるのは重要なので、ある程度は許しつつ、長くなりそうなときはネタごとに別途ミーティングの場を設けましょう。
スプリント
スプリントは、アジャイル開発のプロジェクトサイクルにおける最も重要で基本的な単位です。期間は2週間とし、初日に計画(プランニング)ミーティングを行ない、最終日に振り返り(レトロスペクション)ミーティングを行ないます。
計画ミーティングでは、プロダクトバックログから優先順位に従って選択したいくつかのストーリーをタスクにブレークダウンし、複数のメンバーで見積もりを行ないます。ストーリーの内容は全メンバーで共有するので、時には計画ミーティングに半日近くかかることもあります。
振り返りミーティングでは、各メンバーが成果を発表します。発表と言っても、プロジェクタなどにEclipseなどのIDEを映しながら何をどのように実装したかを説明するだけです。
その他、ディーバでは計画ミーティングと振り返りミーティングの間に「中間ミーティング」を実施しています。デモを交えながら、主に1週間の作業を振り返り、合わせて残り1週間の作業について微調整します。中間ミーティングは、振り返りミーティングが長くなりすぎるのを防ぎ、特にチームメンバーが多いときに共有度を高めるのに有効です。
上記各ミーティングは質疑応答などを含めると2、3時間はかかるので、2週間が80時間だとすると、そのうちの6~8時間はこれらのミーティングに時間を費やすことになりますが、時間に見合うだけの知識の共有や学習効果があります。
マイルストーン
マイルストーンは、この程度の機能が実装されていなければいけないといった開発者側(内部)で設定する大きな目標です。次に紹介する「外部」リリースに対する「内部」リリースとして位置付けることができます。
実際の外部へのリリースがスプリントの期間(2週間)に比べてはるかに長くなる場合、間にマイルストーンを設定することで中だるみを防ぎ適切な開発リズムを維持できます。
リリース
リリースは、製品/開発の方向性を決定し、一連の要求定義を行ない、性能テストや移行までを含む一連のプロジェクトの最も大きなライフサイクルです。ウォーターフォールにおける計画を立てる単位とほぼ等しい期間の単位であり、リリースの中で一度しか発生しないタスク、イベントなどを漏らさずに含めることが重要です。
このリリース単位の計画では、アジャイル開発特有のプラクティスは多くありません。開発の機能に関する情報は含みますが、詳細な工程に関する情報は含まないことが原則です。開発の詳細計画に関しては、マイルストーン計画、およびスプリント計画の中で対応します。