開発の工数見積もりのやり方|実装以外の作業を含めた分解例

仕事・チーム開発

開発の工数見積もりのやり方|実装以外の作業を含めた分解例

「この項目を追加するのに、どれくらいかかりますか」。画面を見て「半日くらい」と答えたものの、調査、テスト、レビュー後の修正が残り、思った日に終わらない。見積もりで困るのは、時間を当てること以前に、見積もる作業が見えていない場面です。

まず、調査・実装・テスト・レビュー対応・引き渡しへ分けます。そのうえで、自分が手を動かす時間と、回答や確認を待つ時間を区別し、前提と不明点を添えて相談します。

ここでは、問い合わせ管理に必須・1〜100文字の件名を追加する架空の改修を使います。作業時間の数字も説明のための仮置きであり、実測値や業界標準ではありません。自分の経験や対象のコードを確認して置き換えてください。

先に「どこまでで終わりか」を揃える

「件名を追加する」の終わりが、コードを書き終えることなのか、テストとレビューを終えて引き渡すことなのかで、作業は変わります。最初に依頼者へ、成果物と担当範囲を確認します。

この例では、「登録と一覧表示を変更し、必要な確認とレビュー対応を終えて、共有の検証環境で確認してもらえる状態まで」を担当すると仮定します。本番反映は別担当です。実際の職場でも必ずこの分け方になるわけではありません。

また、既存データの件名をどう扱うか、下書きにも必須条件を適用するかなど、仕様に未決事項があるなら記録します。条件が変わる可能性を隠して、完成日だけを一つに決めないようにします。

実装以外も、成果が見える作業へ分ける

見積もりを調査と仕様、実装、テスト、レビュー対応、引き渡しに分ける。待ち時間は作業時間と区別する。
各作業の時間と、回答・レビューを待つ時間は分けて考える。

「開発一式」を、終わったかどうか説明できる単位にしてみます。

作業終えたときに分かること見積もる前に確認すること
調査・仕様確認対象の処理と保存条件が分かる登録経路、既存データ、未決仕様
実装入力・保存・一覧表示の変更がある既存の構造と変更箇所
テスト条件と結果の記録がある確認観点、環境、データ
レビュー対応指摘の修正と再確認が終わる依頼先、必要な確認、依頼時点
引き渡し次の担当者が確認を始められる配置方法、資料、引渡先

最初から細かい操作をすべて洗い出す必要はありません。「一覧に件名を表示する」のように、変更結果が見える単位から始めます。それでも見通しが立たない行は、さらに分けるか、先に調査する対象です。

たとえば「データ対応」が曖昧なら、「件名のない既存データを調べる」と「必要なら既存データへの対応を作る」を分けます。調べた結果、対応が不要になるかもしれない作業を、確定した実装と同じ扱いにしないためです。

既知の作業には幅を、不明点には確認方法を置く

次は、既存処理をある程度確認した後の仮の見積もりです。数字を参考相場として使うための表ではありません。

内訳仮の作業時間前提・更新条件
追加調査と仕様の整理1〜2時間登録経路が把握できる範囲
入力・保存・一覧の実装3〜5時間既存の部品と検証方法を使える
テストと結果の整理2〜3時間利用する環境とデータが用意済み
レビュー修正と再確認1〜2時間変更方針の大きな見直しがない
引き渡しの準備1時間本番反映は担当範囲に含まない
合計8〜13時間既存データへの追加対応は別途確認

合計は、仮置きした各作業の最短と最長を足したものです。統計から求めた確率や、一定の確率で収まる範囲ではありません。前提が崩れた場合は、この範囲を超えることもあります。

「既存データの移行が必要か分からない」なら、その不明点を一律に多めの時間へ埋め込むより、調査して見積もりを更新する条件を書きます。逆に、繰り返し行った作業の記録があれば、その記録と今回の違いを根拠にできます。

経験の少ない作業で時間を出せない場合は、「まず対象処理と既存データを確認し、その結果を見て実装分を見積もりたい」と相談できます。数字を即答できることより、何が分かれば見通せるかを伝えることが大切です。

作業時間を足しても、完成日にはならない

仮に作業が8時間分あっても、今日から明日までで終わるとは限りません。別の担当作業、会議、仕様の回答待ち、レビューを受けられる時点、環境の利用枠があるためです。

自分が作業できる枠に内訳を置き、外からの確認が必要なところへ待ちを入れて考えます。レビュー待ちの間に進められる別作業があるかもしれませんが、指摘の内容に依存する作業は先へ進めないこともあります。

区別相談する相手
自分の作業時間実装やテストに使う時間担当者・リーダー
確認待ち仕様の回答、レビューの着手待ち判断者・レビュアー
作業可能な枠会議や別作業を除いた時間優先順位を調整する人
完了までの期間上記を踏まえて引き渡せる時点依頼者・リーダー

待ち時間を工数へ混ぜずに示すと、「実装を手伝えば早まるのか」「仕様を先に決める方が効果があるのか」を話しやすくなります。チームで工数の定義が決まっている場合は、その定義に合わせつつ、待ちが含まれているか明記してください。

見積もりは、前提ごと相談する

見積もりを伝えるときは、合計と同じくらい前提が重要です。先の架空例なら、次のようにまとめられます。

件名追加は、調査・実装・テスト・レビュー修正・引き渡し準備で、作業時間を仮に8〜13時間と見ています。 既存の登録処理を使い、本番反映は別担当という前提です。件名のない過去データへの対応が必要かは未確認なので、追加調査の結果で更新します。 完成日は、仕様の回答時点とレビュー枠を確認して決めたいです。既存データの扱いが分かった時点で、改めて内訳を共有します。

大きな不明点が残る場合、この数字をそのまま外部への納期確約にしないよう、暫定の見通しか、合意した計画なのかも揃えます。「余裕を見ておきました」の一言では、何を含めているのか伝わりません。

ほかの仕事と重なるなら、引き受ける条件を相談する例が役立ちます。割り込みによる順序の変更は、作業の優先度を扱う記事で整理できます。

調査で分かったら、その時点で見積もりを更新する

作業中に登録経路がもう一つ見つかったり、確認環境が使えなかったりしたら、残作業と前提を更新します。最初の数字を守るために、必要なテストや引き渡しを見えない作業にしないようにします。

終わった後は、内訳と実際の作業を比べ、「見落とした作業」「想定と違った条件」を残します。人の速さを評価する表にするより、次回何を先に調べればよいかに注目すると、見積もりの材料として使えます。

まずは手元の小さな改修を一つ選び、コード以外に何が終われば渡せるかを書き出してみてください。見積もりは、その作業と不明点を、相手と一緒に見えるようにするところから始まります。

-仕事・チーム開発
-