2013/04/24

[アジャイル]アジャイルな計画作り:現実と向き合う

アジャイルサムライ(要約) その8

1.固定化された計画の問題

こんな経験はないだろうか。プロジェクトの最初の数週間は何もかもうまくいっていたが、ある日突然以下のような事が起きる
  • 主力開発者が他のプロジェクトに引き抜かれてしまう
  • 思っていたほど開発速度が上がってこない
  • プロジェクト期間の半ばで顧客が自分たちの本当に欲しかったものに気づいた
  • ビジネス上の要請から時間がなくなる
こうした現実に立ち向かうためには、次の4つの基準を満たせるような計画の立て方を身につけねばならない。
  • 顧客にとって価値ある成果を届けられる計画
  • 分かりやすくありのままを伝える、誠実な計画
  • 約束した事を守り続けられる計画
  • 必要に応じて変更できる計画

2.アジャイルな計画作り

アジャイルな計画作りとは、チームの開発速度(ユーザーストーリーをリリース可能なソフトウェアに変換するのに掛かる時間(ベロシティ))を計測して、その速度をもとにプロジェクトの完了時期を見通せるようにすること。
プロジェクト完了期日についての大まかな見通しを立てたければ、プロジェクト全体で必要な作業量をチームのベロシティで割ればいい。すると全てを完了させるのに必要なイテレーション数が分かる。
これが私たちのプロジェクト計画となる。

イテレーション数 = 作業量の合計 / チームの予想ベロシティ

ただし最初のプロジェクト計画は、まだチームのベロシティが不明なため厳格なコミットメントではない。最初の計画を厳格なコミットメントとして扱うと、プロジェクトは始まる前から死んだも同然だ。
やるべきことが多すぎる事態に直面した時、やる事を減らして計画の方を変える。スコープを調整して対処する。

3.スコープを柔軟に

顧客に最初にお願いしておくべき事がある。新しいストーリーを追加する時には必ずどれかひとつ既存のストーリーを削ってもらう。このルールを実践できると、開発チームは顧客に要求変更の機会を提供しつつ、しかもスコープをプロジェクトで作業できる範囲内に留めておける。
アジャイル開発の原則として、要求の変更はたとえ開発の後期であっても歓迎する。変化を味方につけることによって、お客様の競争力を引き上げる。

4.初回の計画作り

1:マスターストーリーリスト(ユーザーストーリー一覧)を作る
リストには顧客がソフトウェアで実現したいものを載せていく。載せた項目は、顧客が優先順位をつけて、開発チームが見積もる。その結果が計画の土台となる。
良いマスターストーリーリストは1ヶ月から6ヶ月の期間でこなせる仕事の範囲に収まっている。(6ヵ月後の状況なんて分からないため)
アジャイルチームではマスターストーリーリストからストーリーのサブセット(カテゴリ)を選定してまとめておく事が多い。このサブセットをリリースと呼ぶ。
リリースの単位をMMF(Minimal Marketable Feature)と呼ぶ事もある。(最小であり、市場価値があること)

2:プロジェクト規模を見極める
前回説明した三角測量やプランニングポーカーを行い、プロジェクトの規模を把握する

3:優先順位をつける
ストーリーに優先順位をつけるのは顧客の仕事。ビジネスの観点から優先順位づけしてもらう。ただし開発チームからもアーキテクチャ上のリスクを低減できるストーリーがあれば顧客に提案する。

4:チームのベロシティを見積もる
過去に自分たちの成し遂げた成果を踏まえチームの速度を推測する。

チームのベロシティ = 完了したストーリー数(ストーリーポイントの合計) / イテレーション数

これはイテレーション毎に計測し3回~4回もこなせば安定したベロシティが分かってくる。 また完了の定義について、アジャイル開発の原則としてコーディングはもちろん分析、テスト、設計が全て終わっているということ。

5:期日を仮決めする
プロジェクトの完了期日に対する期待をマネジメントする作戦は2つある。期日固定フィーチャセット固定だ。 期日固定は特定の日付で必ずリリースする。途中で優先順位の高いストーリーが見つかったら優先順位の劣るストーリーをスコープから外す。 フィーチャセット固定はその逆で、中核をなすストーリーを全て完成させるまで作業を続け、期日を調整する。

・INDEX
アジャイルサムライ(要約)その1「ざっくり分かるアジャイル開発」
アジャイルサムライ(要約)その2「アジャイルチームのあり方」
アジャイルサムライ(要約)その3「プロジェクトの方向づけ(開始時に実施すること①)」
アジャイルサムライ(要約)その4「全体像をとらえる(開始時に実施すること②)」
アジャイルサムライ(要約)その5「具現化させる(開始時に実施すること③)」
アジャイルサムライ(要約)その6「ユーザーストーリーを集める」
アジャイルサムライ(要約)その7「見積り:当てずっぽうの奥義」
アジャイルサムライ(要約)その8「アジャイルな計画作り:現実と向き合う」
アジャイルサムライ(要約)その9「イテレーションの運営:実現させる」
アジャイルサムライ(要約)その10「アジャイルな意思疎通の作戦」
アジャイルサムライ(要約)その11「現場の状況を目に見えるようにする」

0 件のコメント:

コメントを投稿