システム開発でXP(eXtreme Programming)を実践する過程では,どうやって顧客から要求を引き出すか,作業時間の見積もりと実績のズレをいかに修正するかなど,ぶつかりやすい壁がいくつもある。Part4では筆者の経験を踏まえて,XPを効果的に実践するための勘どころを解説する。

 情報システムの開発に携わる者にとって,完成したシステムをリリースする瞬間の喜びは格別だ。当然,XPでもリリースは特別なイベントであり,非常に誇らしい気分になる。苦労が報われるひとときだ。

 こうした「リリースの喜び」を味わうためにも,XPを実践する難しさを知り,それを乗り切るポイントを理解する必要がある。そこでPart4ではXPの「実践編」として,簡単な事例を基にXPをシステム開発に適用する上でつまずきやすいポイントや,それを回避するための勘どころなどを解説する。

開発の流れとチームの役割

 図1は,XPにおける開発の流れと,ユーザー,プログラマ,マネジャーの役割を示したものである。作業フェーズは大きく分けると「計画」,「実行」,「終結」の3つだ。

図1●XPの一般的な作業フェーズと,メンバーの役割<br>各種の計画立案や開発環境の整備といった作業を行う「計画フェーズ」が非常に重要になる
図1●XPの一般的な作業フェーズと,メンバーの役割
各種の計画立案や開発環境の整備といった作業を行う「計画フェーズ」が非常に重要になる
[画像のクリックで拡大表示]

 まず計画フェーズでは,開発すべきシステムの要件を固め,リリース時期を大まかに決める。次の実行フェーズでは,イテレーション(動作するソフトウエアを開発する期間の単位)を繰り返して開発を進めるための計画を策定。それに基づいてイテレーションを重ね,システムを具体化していく。最後の終結フェーズで,開発したシステムをリリースする。開発規模が大きい場合は,計画,実行,終結のサイクル全体を繰り返すこともある。

 以下では,計画フェーズから,実行フェーズでのイテレーション実施までを重点的に説明する。他の開発プロセスと同様,XPでも立ち上がりがとても重要だからだ。

 計画フェーズや,実行フェーズの初期段階は,とにかく忙しい。開発環境や作業スペースの整備から始まり,ユーザーの要件である「ストーリー」のリストアップ,不慣れなメンバーに対する作業内容の説明など,やるべきことが山ほどあるからだ。このため,いろいろな問題が初期段階で一気に現れる。この部分をうまく乗り越えれば,徐々に作業ペースが安定して,落ち着いてくるだろう。

ユーザー主導で要件を記述

 全体の流れを概観したところで,各フェーズでの具体的な作業内容を見ていこう。取り上げる事例は「ホテルのマーケティング担当者が,会員制サービスの商品開発に必要な意見を集めて分析するためのシステム」の開発である。

 計画フェーズでは,プロジェクト全体の作業計画である「リリース計画」を策定する。具体的には,「ストーリーのリストアップ」,「作業量の大まかな見積もりと承認」,「優先順位の決定」という3種類の作業を実施する。これらの最終的な結果をまとめたものがリリース計画だ(図2)。

図2●「計画フェーズ」での作業内容
図2●「計画フェーズ」での作業内容
実施する作業は「ストーリーのリストアップ」,「大まかな作業量見積もり」,「優先順位の決定」の3つ。ユーザーは「何を,なぜ作りたいのか」といった観点から,プログラマは「どうやって,いつまでに作るのか」といった観点から,各作業を実施する。最終的な作業結果を「リリース計画」としてまとめる

 リリース計画を策定するミーティングには,ユーザー,プログラマ,マネジャーの全員が参加する。まず,システムで実現すべき要件,すなわちストーリーをリストアップすることから始める。これはリリース計画を策定する作業の中で,最も重要で難しい作業だ。