【アジャイル開発】XP(エクストリーム・プログラミング)の反復開発プロセス!「XPの流れ」
アジャイル開発の代表的手法である「XP(eXtreme Programming)」において、顧客と開発チームが協調して短いサイクルで開発を進める基本フロー(計画ゲーム ➔ イテレーション計画 ➔ イテレーション)のまとめカードです。
1. XPの開発プロセス(3つのステップ)
・顧客:実装したい要求(ユースケース)を「ストーリーカード」に書き出す。
・開発者:各ストーリーの「優先順位付け」と「コスト(見積もり・工数)評価」を行う。
(2) イテレーション計画(Iteration Planning)
・選定されたストーリーを「具体的な開発作業(タスク)」に細分化・分割する。
・分割したタスクを担当メンバー(人)に割り当てる。
(3) イテレーション(Iteration:イテレーションの実行)
・開発サイクルの中で「テストケースの作成(TDD)」と「コードの作成(ペアプログラミング等)」を行う。
・完成したストーリー全体を検証・テストし、実際に動くソフトウェアとしてリリース(成果物の確認)する。
2. 各フェーズの役割とポイント
| ステップ | 主な作業内容 | XPのプラクティスとの関連 |
|---|---|---|
| (1) 計画ゲーム | 顧客が「何を作るか(要求)」を決め、開発者が「コスト・工数」を見積もるコラボレーション。 | オンサイト顧客(顧客の常駐・協調)、ユーザーストーリーの作成 |
| (2) イテレーション計画 | 1〜2週間程度の短い反復単位で消化するタスクに分解し、各自に割り当てる。 | 小さなリリース(Small Releases)、作業のタスク化・可視化 |
| (3) イテレーション | 実際に設計・開発・テスト・検証・納品を行う開発サイクル。 | テスト駆動開発(TDD)、ペアプログラミング、継続的インテグレーション(CI) |
3. まとめ
XPでは、「計画ゲーム」で顧客と一緒にストーリー(要求)とコストを明確化し、「イテレーション計画」でタスクに分解、「イテレーション」でテストと実装を繰り返して迅速にリリースするというサイクルを回します。開発途中の要求変更にも柔軟に対応できるのが最大の特徴です!