目次
アジャイルに関する技術書は色々読んだけど、この本が一番オススメ。少しづつまとめてます。
第1部 問題とゴール
「計画することがすべてだ、立てた計画はどうでも良い」陸軍元帥モルトケ
計画の目的
期日やスケジュールを決定するためだけのものではない。計画づくりとは価値の探求で「何をつくるべきか?」を探ること。
なぜ見積もりと計画づくりが必要なのか?
計画づくりをする理由は下記の5点
1.リスクを軽減する
チームで議論すると潜在的な問題点が発覚し、早い段階でリスクに気付けるため
2.不確実性を減らす
魅力的だと思ったフィーチャが、開発するコストに見合わないものだと気づくため
3.意思決定を支援する
開発者の人数や購入するツールなどのコストを見積もるため
4.信頼を確立する
「どうせ予定通りに進まないので、見積日はつくりません」ではクライアントの信用を得られない。見積日を提示して信頼を得るため。
5.情報を伝達する
計画書をクライアントに見せて、提示した見積日に根拠を示すため。
なぜ計画づくりに失敗するのか
下記は納期遅れの要因
- 余った時間は自分にとって有意義な時間に使ってしまうため、作業は早く終わらない。工数を日数で見積もっている。
- 初回の作業で得られた知識を活かせば、同じような作業なら効率を改善して、計画よりも早く完了できる。という思いこみ。ある作業が予定よりも長くかかったら、それと類似の他の作業も予定より長くかかる。
- 作業の遅れを非効率なマルチタスクで挽回しようとしている。
- 優先順位を機能ではなく作業で計画したため、間に合わせるために顧客が本当に必要だった機能が削られている。
- 計画に不確実性を考慮していない。最初に立てた計画通りに進めてしまっている。
- 見積日を約束日(コミットメント)にしている。エンジニアが提示した見積日に完成することはない。
アジャイル手法
契約上の交渉よりも協調に価値を置く。下記はよく言われているアジャイルの原則
- プロセスやツールよりも人と人との交流を
- 包括的なドキュメントよりも、動作するソフトウェアを
- 契約上の交渉よりも、顧客との協調を
- 計画に従うよりも、変化に適応すること
プロジェクトへのアジャイルなアプローチ
アジャイルチームの基本的な仕事の進め方は次の5つ
- チームとして働く
プロジェクトマネージャ・・・プロジェクトよりもリーダーシップを重視。同時に他の役割を担っていることもある。
2. 短いイテレーション
2~4週間の短いイテレーションで分析・設計・コーディング・テストなどを繰り返す。
3. イテレーションごとに成果を上げる
いつでもリリース可能な状態を維持すること。
4. ユーザーストーリー
ストーリーとは「<ユーザーの種類>として、<機能や性能>が欲しい、それは<ビジネス価値>のため」のこと
5. 検査と適応
計画は変わる。新しいイテレーションを開始するときは、直前のイテレーションで得た知識を元にして調整する。
アジャイルな計画づくり
最初に計画を立てた時点で必要な知識がすべて揃っていることなどあり得ない。チームが採用している技術、リスクに関する新しい情報(プロダクトナレッジ)を得たら計画に組み入れる。
1章に関してはこんな感じ、気が向いたら2章も要約する。