この記事について
本記事は、2023年6月に社内で実施した勉強会の資料を基に、社外向けに再編集したものです。
記載の情報は執筆当時のものであり、最新の仕様やベストプラクティスとは異なる場合があります。
実装にあたっては、必ず最新の公式ドキュメントをご確認ください。
目次
概要
本記事では、工数見積もりにおいて「予定通りに終わらない」という課題を、どのように回避できるかをテーマとしています。
見積もりの精度を高めることで、計画と実績の乖離を小さくすることを目指します。
精度を上げる方法
- 見積もり時には、対象となる情報源を丁寧に確認する
- どの程度まで確認すべきかの判断が難しい
- 詳細に確認を進めると、そのまま実装を始めたほうが早い場合もある
- 見積もりにかけられる時間にも限度がある
- タスクを細分化する
- 見積もりにかけられる時間にも限界がある…
・ボタン設置: x 分
・ボタンアクション: x 時間
・デザイン調整: x 時間
︙
- ダブルチェック
- 複数人で見積もり内容を相互に確認する
- どの粒度まで複数人で確認すべきか
- 見積もりにかけられる時間にも限界が……
- プランニングポーカー
- プロジェクトメンバー全員で見積もりを行う
- 見積もりのばらつきを減らす
- 見積もりにかけられ……
プランニングポーカーとは
- あるタスクに対して、各メンバーが個別に見積もりを考え(開示はしない)
- 全員が同時に見積もりの数値を提示する
- 各自、なぜその見積もりを出したのかを説明する
- 議論を経て、最終的な見積もりを確定する
プランニングポーカーはアジャイル開発手法の一つであり、本来は次のような流れになります。
- 過去の実績をもとに、1スプリントで処理できるストーリーポイント(SP)の目安を算出する
- プランニングポーカーで見積もったSPをもとに、次回スプリントの計画を立案する
- 消化可能なSPの見積もりは、継続的に見直し・改善を行う
このように、プランニングポーカーはアジャイル(特にスクラム開発)におけるベロシティ(チームが処理可能な作業量を示す指標)を測定するための手法として活用されます。
参考:Qiita – @e99h2121(Nobuko YAMADA) – オンラインでプランニングポーカーができる、Plapoが楽しかったので紹介する
https://qiita.com/e99h2121/items/2bc505415e1ccfd2ff95
プランニングポーカーをオンラインで実施できるツール例:
plapo
https://plapo.net
メリットとして、
- 見積もり意識をチームで共有できる。
- 懸念点などの共有ができる
が挙げられます。
実際にプロジェクトチームでプランニングポーカーを試してみた
- 見積もりには大きな差が見られた
- 例えば「13」「21」「34」「55」と、全員が異なる数値を提示
- 「13と21で迷った結果13を選択」「21と34で迷った結果34を選択」などといったケースもあった
→ちょうど良い中間値が存在しないため、見積もりが分かれやすく、その結果として議論が活発になりました。
これはフィボナッチ数列を用いる利点の一つといえます。
- 仕様の認識に食い違いがあった
- 「バリデーションチェックのみで十分」という考えのメンバーがいた一方で、「より高度な機能を実装する」という考え のメンバーもいた
- 他のメンバーがどのように考えているのかを把握できた
- 各メンバーの状況によっても見積もりに差が生じた
- 最近そのタスクに対応しており、仕様やソースコードの状態を把握しているメンバーは、少なめに見積もる傾向にあった
- 逆に、該当箇所に触れた経験がないメンバーは、多めに見積もる傾向にあった
メリット
- メンバーごとに多様な観点が存在することを共有できる
- 各メンバーがどの点に着目しているのか
- どの作業に対して苦手意識を持っているのか
- メンバー間の見積もりの差異をきっかけに、建設的な議論が生まれやすい
- 「分からないまま見積もった」 → どの部分がわからないと思ったのか
- 「簡単だと考えて少なく見積もった」 → なぜそのように考えたのか
- 「この方法ならより改善できるのでは」といった前向きな意見が出てきた
- 個人で見積もった場合に発生しやすい考慮漏れを防止できる
デメリット
- 実施に時間を要した
- 実施には約1時間を要し、4名参加だったため合計約4時間の工数となった
- 対象となったタスクの実工数は、結果的に合計約80時間程度だった
→この見積もりに要した工数を請求対象とできるかは、プロジェクト次第かと思います。
- すべてのタスク見積もりに適用するのは現実的ではない
- 一方で、正式にアジャイル開発のスプリントを運用している場合には、定期的に実施することが望ましいと考える
プランニングポーカーを行う上での前提の話
- 見積もりで考えた数値や内容は、そのまま正確に共有することが重要
- 「少なめに見積もろう」といった意図的な調整はNG
- 「少なめに見積もろう」といった意図的な調整はNG
- 見積もりの妥当性に対しての否定的なコメントは避ける
- 「その見積もりは間違っている」というコメントも避け、建設的な議論に焦点を当てる
- 「なぜ見積もりが異なったのか」「どのように差異を減らすか」を検討する場として活用する
文章だけでは理解しづらいため、実際に試してみることを推奨します。
本筋から外れるが興味深いツイート
参考:kosakai(@Suzubotal)