はじめに
以下のサイトをブックマークに入れて早数年。
2019夏、先輩が若手に贈る「お世話になった技術書60選」- 入門からガチまで –
このサイト内で紹介されている1冊が気になったので購入してみました。
こういう機会がないとインプットとアウトプットをしないので、
この機会に『アジャイルな見積もりと計画づくり』を読んで思ったことを書いていきます。
そもそもなぜこの本を選んだかというと、
- CSM資格の更新のために、アジャイル関係の活動をして記録する必要がある
- 見積もりに苦手意識があり、苦手意識を払しょくしたい
といった思惑があります。
実際に読んでみて、目から鱗だったり、意外な発見があった点について紹介します。
本書は、7部構成の23章に分かれており、コンテンツは以下のようになっています。
8章 ストーリーポイントと理想日
- ストーリーポイントによる見積もりは長持ちする
言われてみれば確かに。と思ったのが、ストーリーポイントの持続性です。
時間見積もり(期間見積もり)だと、メンバーの経験が積まれることで変化してしまいます。
それと比較してストーリーポイントでの見積もりは、相対的な見積もりなので、変化しづらいです。
13章 リリース計画づくりの基本
- リリース計画について
私がアジャイル開発に対して持っていた疑問として、「終わりが見えない開発を、プロダクトオーナーは許容してくれるのか」というものがありました。あるいは、「最終日が厳格に定められた案件では、アジャイル開発は利用できないのでは?」とも。
イテレーションを複数回回し、機能を足していく開発手法では、
ウォーターフォール開発のように最終日が決まっていないよう思えたのです。
本章では、最終日が決まっていた場合のリリース計画づくりについて紹介されていました。
例えば、6か月後にプロダクトをリリースしたい場合、1イテレーション2週間で13回イテレーションを回せます。
消化できるストーリーポイント数は260ポイントなので、プロダクトオーナーとチームは260ポイントの範囲内で、価値あるストーリーを選び、優先順位を決めます。
15章 イテレーションの長さを決める要因
-
不確実性が高いとイテレーションは短い方が良い
私は当初、不確実性が高いときは解決に長い時間をかかるので、イテレーションも長くなるという考えでした。
本書では、イテレーションを短くすることで、ステークホルダからのフィードバックの機会が増えるため、不確実性が高いものほどイテレーションは短くすべきと紹介されています。 -
筆者の理想的と考えているイテレーション期間は2週間
2週間のイテレーションは短いような気がしますが、筆者は2週間イテレーションがオススメであると述べています。
4週間イテレーションではどうしても序盤、中盤、終盤という区切りが生まれてしまい、スプリント的な動きをできなくなってしまいます。逆に1週間イテレーションでは何かトラブルが起きた段階で体制が崩れてしまう危険性があります。 -
2週間イテレーション × 6回 + 1週間イテレーション1回
とはいえ、2週間イテレーションをずっと続けるのも疲労がたまっていくものです。
その場合の対応策として、2週間イテレーションを6回回した後に、1週間イテレーションを1回回すという手法が紹介されていました。
ただし、合間の1週間イテレーションではのんびりするということではなく、メンバ個人の必要だと思ったタスクに注力する期間として使用します。
1週間の作業を自分で選べる機会は、メンバに活力を与えます。
17章 不確実性に備えるバッファの計画
- スケジュールバッファは水増しではない
スケジュールバッファとは、スケジュール全体に対して何割かの余裕を持たせることです。
個人マージンを除いたスケジュールにスケジュールバッファを設けることは、プロジェクトの安全を保つために必要なことです。
わかりやすかった例として、車の車間距離が挙げられていました。
『車間距離を車一台分にして走り続けることはできるが、そんなことはしない、余裕を持った車間距離がスケジュールバッファである』
20章 イテレーション計画のモニタリング
- 個人のベロシティは測るべきでない
個人のベロシティを測ってしまうと、メンバは保身に走ります。
チームのためではなく、個人のために行動するようになり、チームにとって悪影響です。
個人の計測項目は、チームへの貢献度等に留めるべきです。
22章 なぜアジャイルな計画づくりがうまくいくのか
本章では8個の理由を挙げています。
その中でもビビッと来たものを挙げます。
-
頻繁に計画を見直している
イテレーションごとに計画が見直されることで、完璧な計画を立てることよりも、現時点で有用な計画を立てることにリソースを集中できるようになります。 -
複数レベルの計画を立てている
アジャイルな計画づくりは、リリース計画、イテレーション計画、デイリー計画という3レベルの計画で構成されています。
複数視点の計画は、「(イテレーションという)木を見て(リリースという)森を見ず」という事態を回避してくれます。 -
不確実性を受け入れて、計画に取り込んでいる
アジャイルな計画は、イテレーションを進めるごとに、不確実性が徐々に解消されていくため、
一度計画したら計画変更が認められない従来の開発と比較して不確実性を受け入れやすいです。
まとめ
私はなんちゃってアジャイル開発の経験しかなく、アジャイル開発に対する疑問があったので、この機会に疑問を解消できたのは貴重でした。
例が非常に多く、本書の主張を受け取りやすい構造になっているので、気になった方は是非読んでみてください。