本文へ移動

ホーム / PdM / 第3部 開発の進め方

第3部 開発の進め方・第6章

見積もりと計画

★★☆ 重要6トピック・面接 3問

エンジニアと一緒に計画を立て、守り、変えていくための知識を押さえる。技術的負債とリリースは次の章で扱う。

6.1見積もりと不確実性

用語★★☆ 重要
ひとことで

見積もりは約束ではなく予測。分からないことが多いほど幅が広い。小さく切って早く確かめる。

見積もりは約束ではなく予測です。分からないことが多いほど外れる幅は広がります。「何日ですか?」と1つの数字を聞くより、「早くて何日、遅くて何日?何が分かれば幅が縮む?」と聞くほうが、計画に使える情報になります。

分かることが増えるほど、見積もりの幅は縮む縦の幅=見積もりの外れうる範囲(イメージ)実際構想要件が決まる設計が決まる作り始め完成遅い側に外れる早い側に外れるスパイク・小さく切る幅を早く縮める
不確実性のコーン:最初は幅が広く、調べて作るほど狭まる
見積もりが外れる典型起きること
既存のコードが想像より複雑触ってみて初めて、直す範囲が広いと分かる
外部サービスとの連携相手の仕様・審査・テスト環境の準備で待たされる
仕様の後出し作り始めてから要件が増える、エッジケースが見つかる
実装以外の作業を数えていないテスト・レビュー・データ移行・リリース作業・アプリ審査
割り込み障害対応や他チームの依頼で時間が取られる
人を増やせば早くなると考える説明や調整の手間が増え、すぐには速くならない

スパイク(調査タスク)

面接ではこう答える

見積もりは約束ではなく予測で、分からないことが多いほど外れる幅は大きくなります。既存のコードの複雑さ、外部との連携、テストやデータ移行のような実装以外の作業が、外れの典型です。私は「何日ですか」と1つの数字を聞くのではなく、「早くて何日、遅くて何日か、何が分かれば幅が縮むか」を聞き、外れそうなら早めに共有してもらえる関係を作るようにしています。

ひとことで

作業の大きさを、ほかの作業と比べた相対的な大きさで表す見積もり。1スプリントで終わった合計がベロシティ。

ストーリーポイントは、作業の大きさを「日数」ではなくほかの作業と比べた相対的な大きさで表す見積もりです。1・2・3・5・8・13 のように間の空いた数を使い、大きいものほど不確かさも大きいことを表します。1回のスプリント(1〜2週間の区切り)で終わったポイントの合計をベロシティといいます。

過去の実績の幅から「いつ頃終わるか」を幅で見通すスプリントごとに終わったポイント(例)118224320426522621残り 120 ポイントなら1回 18〜26 で5〜7 スプリントスプリント
ベロシティから見通しを立てる
使い方注意
そのチームの過去の実績から、残りの作業がいつ頃終わるかを幅で見通すほかのチームと比べない(ポイントの大きさはチームごとに違う)
スコープを削るかどうかの判断材料にする目標にしない。目標にするとポイントが水増しされる
大きすぎる項目(13 以上など)を分けるきっかけにする休み・障害対応・割り込みで変わることを見込む

面接ではこう答える

ストーリーポイントは、作業の大きさを日数ではなく、ほかの作業と比べた相対的な大きさで見積もる方法です。1スプリントで終わったポイントの合計をベロシティと呼び、その実績の幅から残りの作業がいつ頃終わりそうかを見通します。PdM としては、チーム同士で比べたり、ベロシティを目標にしたりしないように気をつけ、スコープを削るかの判断材料として使っています。

ひとことで

不確かさが大きいときに、期間を区切って調べるだけのタスク。成果物は「分かったこと」と見積もりの更新。

期間を区切って調べ、成果物は「分かったこと」分からないこと外部 API は使える?既存データの汚れは?スパイク例:2日だけ調べる試しのコードは捨ててよい分かったこと・見積もりの更新進める/やり方を変える/やめる「調べてみないと分からない」を、期限つきの小さなタスクにする
スパイクの流れ

分からないことが大きいときは、期間を区切って調べるだけのタスク(スパイク)を先に入れます。成果物はコードではなく「分かったこと」と「見積もりの更新」で、試しに書いたコードは捨ててかまいません。

スパイクが向いている問い例
外部サービスが本当に使えるか必要なデータが API で取れるか、制限は
既存のデータの状態移行するデータのうち何割が形式どおりか
性能が足りるか100万件で検索が何秒か
新しい技術が使えるかAI のモデルで期待する精度が出そうか

PdM は「何が分かれば判断できるか」と期間の上限を一緒に決めます。期限が来たら、分かったところまでで判断します。

面接ではこう答える

スパイクは、外部 API が使えるかや既存データの状態のように、調べないと見積もれないことがあるときに、期間を区切って調べるだけのタスクです。成果物はコードではなく分かったことと見積もりの更新で、試しのコードは捨ててかまいません。PdM としては、何が分かれば判断できるかと期間の上限を一緒に決め、結果を見て進める・やり方を変える・やめるを判断します。

ひとことで

大きな機能を、層ごとではなく機能ごとに縦に切り、毎回使えて確かめられる単位で出すこと。

縦に切ると、各回で「使える物」ができる横に切る(層ごと)画面APIDB全部の層ができるまで使えない縦に切る(機能ごと)画面APIDB検索だけ絞り込み並べ替え1本ずつ出して確かめられる
横に切るか、縦に切るか

大きな機能は、1〜2週間で出せて価値が確かめられる単位に分けます。コツは、画面・API・DB の層ごとに横に切るのではなく、機能ごとに縦に切ることです。縦に切ると、毎回ユーザーが使えるものができ、外れても早く気づけます。

切り方例(商品検索)
操作で切るまずキーワード検索だけ、次に絞り込み、次に並べ替え
対象で切るまず社内だけ、次に一部の顧客、次に全員
手作業で代わる最初は管理画面で手で登録し、自動化は効果が見えてから
質で切るまず動くことを優先し、速さは次の版で(ただし目標値は決めておく)

MVP(実用最小限の製品)は「一番小さい完成品」ではなく、仮説を確かめるのに必要な最小のものです。何を確かめたいかを先に決めると、削れるものが見えます。

面接ではこう答える

大きな機能は、画面・API・DB の層ごとに横に分けるのではなく、機能ごとに縦に切って、毎回ユーザーが使えるものを出すようにしています。例えば検索なら、キーワード検索だけを先に出し、次に絞り込み、次に並べ替えを足します。こうすると外れても早く気づけて、見積もりの外れも小さくなります。MVP も、何の仮説を確かめるかを先に決めて、そのための最小のものにします。

ひとことで

期限・範囲・人と費用のつまみのうち、動かせるもので調整する。期限が固定なら範囲を削り、品質は削らない。

3つのつまみのうち、動かせるものを決める。品質は削らない期限範囲(スコープ)人・費用品質削ると後で高くつく期限が動かせないなら範囲で調整
期限・範囲・人の三角形

計画が間に合わないときに動かせるつまみは、期限・範囲・人と費用の3つです。法律の施行日やイベントのように期限が動かせないなら、範囲で調整するのが基本です。品質(テストを省くなど)を削ると、障害と手戻りで結局遅くなります。

つまみ効き方注意
範囲を削るすぐ効く「必須」と「できれば」を最初から分けておく
期限を延ばす確実に効く外への約束がある場合は早めに相談
人を足すすぐには効かない説明や調整の手間が増え、途中から入るとかえって遅くなることがある
品質を削る短期だけテストを省くと障害と手戻りで遅くなる。やるなら負債として記録

面接ではこう答える

計画が間に合わないときは、期限・範囲・人と費用の3つのつまみで調整します。期限が動かせない場合は範囲を削るのが基本で、そのために最初から必須とできればを分けておきます。人を足してもすぐには速くならず、途中から入ると説明の手間でかえって遅くなることもあります。テストを省くような品質の削り方は、障害と手戻りで高くつくので避けています。

ひとことで

取り組む順番の見通し。先ほど不確かなので、日付ではなく順番と確度(Now・Next・Later)で示す。

先のものほど確度が低い。日付ではなく順番と幅で示すNow(今)作っている確度:高いNext(次)次に作る候補確度:中くらいLater(その先)課題・方向だけ確度:低い外に見せるときは、Later に日付を書かない
Now・Next・Later のロードマップ

ロードマップは「何を・どの順で」取り組むかの見通しです。先の予定ほど不確かなので、すべてに日付を入れると、外れたときに約束を破ったことになります。Now・Next・Later のように順番と確度で示す形がよく使われます。

見せる相手出し方
開発チームNow と Next を詳しく。課題と成功の指標もセットで
経営目標(指標)ごとに、何に投資しているか
営業・顧客方向と順番。日付は確定したものだけ、「予定」と明記

ロードマップは機能の一覧ではなく、解く課題と目標の並びにしておくと、途中でやり方を変えても筋が通ります。

面接ではこう答える

ロードマップは、何をどの順で取り組むかの見通しです。先の予定ほど不確かなので、すべてに日付を入れると外れたときに約束違反になってしまいます。私は Now・Next・Later のように順番と確度で示し、機能の一覧ではなく解く課題と目標の並びにしています。営業や顧客には確定した日付だけを予定と明記して伝えます。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 見積もりは約束ではなく予測。幅で聞き、何が分かれば幅が縮むかを聞く
  • 分からないことはスパイクで調べ、価値が確かめられる単位に縦に切る
  • 期限が動かせないときは範囲で調整する。人を足してもすぐには速くならない
  • 見積もりと不確実性:見積もりは約束ではなく予測。分からないことが多いほど幅が広い。小さく切って早く確かめる。
  • ストーリーポイントとベロシティ:作業の大きさを、ほかの作業と比べた相対的な大きさで表す見積もり。1スプリントで終わった合計がベロシティ。
  • スパイク(調査タスク):不確かさが大きいときに、期間を区切って調べるだけのタスク。成果物は「分かったこと」と見積もりの更新。
  • 小さく切る(縦に切る・MVP):大きな機能を、層ごとではなく機能ごとに縦に切り、毎回使えて確かめられる単位で出すこと。
  • 期限が動かせないときの調整:期限・範囲・人と費用のつまみのうち、動かせるもので調整する。期限が固定なら範囲を削り、品質は削らない。
  • ロードマップと不確実性:取り組む順番の見通し。先ほど不確かなので、日付ではなく順番と確度(Now・Next・Later)で示す。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1見積もりが大きく外れたとき、どう対応しますか?

模範回答

まず責めずに原因を聞きます。既存コードが想像より複雑だった、仕様が途中で増えた、外部連携で待たされた、などのどれかで、残りの見積もりがどれくらい確かかも確認します。

次にスコープを調整します。期限が動かせないなら、最初の版で外せる要件を一緒に選び、残りは次のリリースに回します。期限を動かせるなら、新しい見通しを幅つきで出してもらいます。そのうえで関係者には、外れた理由・新しい計画・選んだ選択肢を早めに説明します。最後に、次の見積もりに活かすため、スパイクを先に入れる・小さく切るなど進め方を振り返ります。

深掘りされたら

  • 外れを早く知るために、普段から何をしていますか?

見られているポイント原因の理解・スコープの調整・関係者への説明

Q2法律の施行日に合わせた機能が、このままでは間に合いません。どう判断しますか?

模範回答

期限が動かせないので、範囲で調整します。まず法律の対応に本当に必須の要件と、できればの要件を分け、必須だけで間に合うかをエンジニアと見積もり直します。例えば、管理画面は最初は手作業で代わりにし、自動化は施行日の後に回す、のように切ります。

人を足すのは、すぐには速くならないので慎重に考えます。テストを削るのは避け、それでも間に合わない場合は、法務と相談して暫定の運用で対応できないかを早めに確かめます。

深掘りされたら

  • 必須かどうかは誰とどう決めますか?
  • 後回しにした分はいつやりますか?

見られているポイント期限・範囲・人・品質のつまみの使い分け

Q3ストーリーポイントやベロシティを、PdM としてどう使いますか?

模範回答

チームの過去の実績から、残りの作業がいつ頃終わるかを幅で見通すのに使います。例えば、ベロシティが 18〜26 で残りが 120 ポイントなら、5〜7 スプリントと考え、リリース日の判断や範囲を削るかの材料にします。

一方で、ほかのチームと比べたり、目標にしたりはしません。目標にするとポイントが水増しされて見通しに使えなくなるからです。休みや障害対応で変わることも見込んで、幅で伝えるようにしています。

深掘りされたら

  • ベロシティが急に下がったら、何を確かめますか?

見られているポイント見積もりの道具を見通しに使い、評価に使わない