アジャイルQ&A:ポイント見積のミスを修正する方法は?
こんにちは、@stayfoolish.com です。
アジャイルを目指している現場を支援させていただいたり、講習やトレーニングを実施する中でよく聞かれる質問をピックアップして、僕なりの考えをご紹介させていただこうかなと思います。
まず第一弾となる今回の質問は下記のとおりです。
ユーザーストーリーをストーリーポイントで見積もったけど、見積もり精度に乖離があった時の修正方法があれば教えてください。
アジャイルな見積もりに対するアプローチとしては…
- ユーザーストーリーの大きさは見積もります
- 一方で、進む速度は実際に開発してみて計測します
- ユーザーストーリーの大きさを見積もる時はストーリーポイントを使用して相対的に見積もる手法を取り入れているところが多いです
的なお話を紹介させていただくと、かなりの高確率でこのご質問をいただきます。
それでは、このご質問について、アジャイルなアプローチでどのように取り組んでいくのかについてみていきましょう。
スポンサーリンク
従来的なアプローチとアジャイルなアプローチの違い
従来的な見積もりのアプローチ
従来的な見積もりのアプローチとして一般的なのは、要求の「大きさ」と「進む速度」の両方を見積もります。
その結果として、○○機能は「10人日です」とか、△△機能は「1人月です」とかってなりますよね。
この時の「見積もる」というプロセスを分解してみると下記のような感じになるかと思います。
- 〇〇機能は、難易度は低い方だな、僕がやるとしたら10日ぐらい掛かりそうだな
- △△機能は、難易度は高いな、Aさんがやるとしたら1ヶ月くらいかな
つまり、難易度などを参考に「大きさ」を見積もった後で、それを開発する「速度」を見積もっています。
アジャイルな見積もりのアプローチ
一方でアジャイルなアプローチでは、明確に「大きさ」と「速度」を分けて取扱ます。具体的には…
見積もりの時
下記のような感じで、他の機能と相対的に比較して大きさだけを見積もります。
- ○○機能は、□□機能(3ポイント)と比較すると少し大きいと思うから「5ポイント」だな
- △△機能は、○○機能の倍ぐらいの大きさだと思うから「10ポイント」だな
速度を計測する時
対象の期間で完了した機能のポイントの合計をそのチームが進む速度として算出します。まぁ、算出と言っても完了した機能のポイントを足すだけです。
この対象の期間で完了した機能のポイントの合計のことをベロシティと呼びます。
ベロシティが見積もりミスを自動的に補正する
さて、ここまでのことを念頭に置きながら、最初の質問をもう一度見てみましょう。
ユーザーストーリーをストーリーポイントで見積もったけど、見積もり精度に乖離があった時の修正方法があれば教えてください。
見積もりしてみたら…
先にご紹介したような「アジャイルな見積もりのアプローチ」を取ることで、ポイント見積もりのミスは、ベロシティによって自動的に補正されていくのです。具体例でみていきましょう。
例えば、とある開発チームがプロジェクトの全体規模を200ポイントと見積もったとします。
また同じく1イテレーション/スプリントあたり20ポイントの作業をこなせると予想したとします。
つまり、プロジェクトの期間は「10イテレーション/スプリント」必要。という予測になったということになりますね。
ベロシティを測定してみたら…
でも実際にプロジェクトが始まってみると、1イテレーション/スプリントあたりのベロシティは10ポイントだったとします。
この場合は、機能の大きさを再度見積もりし直さなくても、プロジェクトの期間が「20イテレーション/スプリント」になることが分かりますよね。
これが「ベロシティが見積もりのミスを自動的に補正してくれる」という意味です。
いかがでしたでしょうか?
機能やユーザーストーリーを見積もる時に、その「大きさ」と「速度」を分けて取り扱って、速度は計測していくということは細かいことに見えるかもしれませんが、こんなに大きなメリットがあるのです。
アジャイルな見積もりのアプローチについて、そのメリット・効果が少しでも伝われば幸いです。
ちなみに、このあたりのことをもっと詳しく知りたいぞ!っという方には下記の書籍をおすすめします。
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ posted with ヨメレバ Mike Cohn,マイク コーン 毎日コミュニケーションズ 2009-01-29 AmazonKindle
はい、今日はこんな感じ。
それでは、まったねーーー。