新しい業務システムの見積依頼を受けたものの、どれくらいの工数を書けばよいか分からず、上司に提出する数字に自信が持てないという状況ではないでしょうか。
機能一覧はなんとなく分かっていても、何人×何日と書くべきか、どこまでを含めるのかが分からないと、見積書の作成は大きなストレスになります。
さらに、提出後に「こんなに工数がかかるの?」「これでは赤字になるのでは?」と指摘されると、どこが間違っていたのかも整理しづらいものです。
この記事では、システム開発における「見積工数」の基本的な意味と考え方、実務で使われる代表的な算出方法、ズレを小さくするための判断基準と注意点を整理します。
・システム開発における見積工数の基本的な意味と考え方
・見積と工数の違いと、含めるべき作業範囲の整理方法
・代表的な工数見積り手法と、状況に応じた使い分けの考え方
・見積工数がずれやすい原因と、ズレを小さくするための実務的な工夫
システム開発の見積工数とは何かを整理する
この章では、まず「見積」と「工数」という言葉の違いを整理しながら、システム開発における見積工数の考え方を押さえます。
実務では、同じ「工数」という言葉でも人によって指している範囲が違うことが多く、ここを合わせないまま話を進めると、後で「聞いていた話と違う」というすれ違いが起きやすくなります。
基本的な用語の意味と、見積工数を考えるうえでの前提を確認しておきましょう。
システム開発の見積工数の結論(要点3つ)
最初に、システム開発の見積工数に関する要点を三つに絞って整理します。
1つ目は、見積工数とは「ある前提条件のもとで想定される、開発に必要な作業量の目安」であるという点です。
「工数」という言葉だけ聞くと、確定した作業量のように感じられますが、実際は「この要件と体制なら、このくらいかかりそうだ」という仮説に近いものです。
2つ目は、見積工数には「どこまでの作業を含めるか」という範囲の定義が不可欠であることです。
要件定義、設計、実装、テスト、リリース、保守対応など、どこまでを工数として見込むのかを明確にしておかないと、後から追加作業が発生しやすくなります。
3つ目は、見積工数は「過去の実績」と「今回の条件」を組み合わせて判断するのが一般的であるという点です。
似た案件の実績をたたき台にしつつ、難易度や品質要求の違いを加味して調整するやり方が、実務では多く使われています。
ソフトウェア開発の指針でも、工程ごとの工数を過去実績と照らして管理する考え方が示されています(出典:経済産業省公式サイト)。
見積と工数、それぞれの意味と前提
ここで、見積と工数の違いを整理します。
一般的に、工数は「1人日」「1人月」などで表現される、作業量そのものを指す言葉です。
例えば「20人日」という表現であれば、1人が20日かける作業量でも、2人が10日で終える作業量でも、理論上は同じ工数と見なせます。
一方で、見積は工数に加えて、単価や経費、リスクなどを加味した「金額や期間の提案全体」を指すことが多いです。
「見積工数」と言うときは、見積の中に含まれる工数の考え方を指していることになります。
ここで誤解されやすいのは、「工数=実際にかかる時間そのもの」と決めつけてしまうことです。
実務では、工数の数字にはバッファやリスク対応分が含まれている場合もあれば、逆に見積段階で十分な検討ができず、実作業の方が大きく膨らむ場合もあります。
そのため、工数の数字を見かけたら、「どういう前提で出された数字なのか」を必ず確認することが重要です。
工数見積りでよくある誤解と注意点
工数見積りに関するよくある誤解として、次のようなものがあります。
1つ目は、「画面数×何人日」でざっくり見れば十分だと考えてしまうことです。
小さな改修であれば成り立つこともありますが、画面が同じでも内部の処理や外部連携の有無によって、工数は大きく変わります。
2つ目は、「開発工数=プログラミング作業だけ」と見てしまうことです。
実際には、要件整理の打ち合わせ、設計レビュー、テスト計画、障害対応、ドキュメント作成など、目に見えにくい作業に多くの工数がかかります。
たとえば、ユーザーとの打ち合わせが多い案件では、会議準備と議事録作成だけでも、実装作業に匹敵する時間が必要になることがあります。
3つ目は、「最初の見積工数は変えてはいけない」と考えてしまうことです。
前提条件が変わった場合や、重大な仕様変更が入った場合には、前提を整理し直したうえで、見積工数を更新することが望ましいです。
実務の現場では、要件変更を記録せず「当初の工数のまま」進めてしまい、結果的にプロジェクトメンバーが疲弊してしまうケースが少なくありません。
見積工数のパターン別(概算・詳細・追加)
見積工数には、目的に応じていくつかのパターンがあります。
代表的なのは、概算見積と詳細見積です。
概算見積は、RFPへの回答や予算取りの段階で、ざっくりとした規模感を示すためのものです。
この段階では、機能の詳細が固まっていないことが多いため、過去案件の実績や経験値に基づく「レンジ」で工数を見積もることが一般的です。
詳細見積は、要件定義や基本設計がある程度固まった段階で、工程ごと・機能ごとに工数を細かく分解して見積もるものです。
たとえば、「要件定義」「詳細設計」「実装」「単体テスト」「結合テスト」など、工程単位に工数を分けて積み上げていきます。
ソフトウェア開発のガイドラインでも、工程ごとの工数を分けて管理することが推奨されています(出典:独立行政法人情報処理推進機構公式サイト)。
また、プロジェクトの途中で新しい機能が追加される場合は、追加見積として別途工数を積み上げることがあります。
このとき、「最初の見積に含まれていたかどうか」を整理せずに追加見積を出してしまうと、発注側との信頼関係に影響しやすいため注意が必要です。
実務では、
「まず概算見積で予算の枠を決め、要件が固まった段階で詳細見積に差し替える」
という進め方がよく見られます。
システム開発の見積工数を正しく使いこなす
この章では、見積工数をどのように算出し、どう使っていくかという実務寄りの視点を取り上げます。
単に数字を出すだけでなく、「なぜその工数なのか」を説明できることが、プロジェクトに関わるメンバーの納得感と、後々のトラブル回避につながります。
ここでは、見積工数を決める判断基準、代表的な算出手法、ズレが生まれやすいポイントについて見ていきます。
見積工数を決める判断基準と考え方
見積工数を決めるときの判断基準として、一般的に意識しておきたいのは次のような観点です。
1つ目は、機能の数と複雑さです。
画面数やAPI数などの「量」だけでなく、外部システム連携、バッチ処理、権限管理などの複雑さも、工数を大きく左右します。
2つ目は、品質要求と非機能要件です。
「レスポンスは何秒以内か」「どの程度の負荷を想定するか」「セキュリティ要件はどこまで求められるか」といった非機能要件が厳しいほど、設計・テストの工数は大きくなります。
システムの信頼性や性能に関する要求は、プロジェクトマネジメントの標準でも重要な判断要素と位置付けられています(出典:PMI公式サイト)。
3つ目は、チームの経験値と利用する技術スタックです。
過去に似たような構成で開発した経験があるか、新しいフレームワークやクラウドサービスを使うかによって、同じ機能でもかかる工数は変わります。
たとえば、現場では次のような会話がよくあります。
「この機能なら2人×1か月くらいですね。」
「ただ、新しい認証基盤を使うので、検証にもう少し日数を見ておきましょう。」
このように、機能そのものだけでなく、周辺の調査や検証も含めて工数を考えることが大切です。
見積工数の出し方の代表的な手法
工数見積りの手法にはいくつか種類がありますが、ここでは代表的なものを取り上げます。
1つ目は、積み上げ方式(ボトムアップ)です。
機能単位や作業単位にタスクを分解し、それぞれに対して工数を見積もり、合計する方法です。
要件やタスクが比較的はっきりしている場合に向いており、説明もしやすい一方、タスクの洗い出し漏れがあると、その分工数が不足しやすくなります。
2つ目は、類推見積(アナロジー)です。
過去に実施した類似案件の実績から、「今回の案件は前回の1.5倍くらいの規模」といった形で工数を推定する方法です。
詳細な要件が固まっていない早い段階の見積でよく使われ、「前回案件の○○に近い」という説明を添えることで、関係者にもイメージを共有しやすくなります。
3つ目は、規模指標を使った見積です。
機能ポイントやストーリーポイントなど、何らかの規模指標を用いて、「1ポイントあたり何人日」といった形で工数に換算する方法です。
アジャイル開発などでは、ストーリーポイントに過去実績のベロシティを掛け合わせる形で、スプリントあたりの工数を見積もるやり方も一般的です。
実務の現場では、
「早い段階では類推見積でレンジを出し、詳細設計が固まってから積み上げ方式で見直す」
といったように、複数の手法を組み合わせるケースが多く見られます。
見積工数がズレる主な原因と対処の考え方
見積工数と実績工数が大きくズレてしまう原因には、いくつかよくあるパターンがあります。
代表的なのは、次のようなものです。
- 要件の前提が曖昧なまま見積を進めてしまった
- 仕様変更や追加要望が多いにもかかわらず、見積工数を更新しなかった
- レビューやテスト、調査などの間接作業を十分に見込んでいなかった
- 関係部門との調整や承認にかかる時間を見込んでいなかった
たとえば、業務部門との合意形成が必要なシステムでは、仕様を固める前の打ち合わせや承認プロセスに多くの時間がかかります。
「開発自体はさほど難しくないのに、決裁に数週間かかる」というケースも珍しくありません。
こうしたズレを小さくするためには、次のような対処が考えられます。
- 見積時に、前提条件と想定範囲を明文化しておく
- 変更があった場合に、どの時点で見積工数を見直すかをあらかじめ決めておく
- 過去案件の「見積と実績の差分」を振り返り、次の案件の見積に反映する
- レビューや会議、調査などの間接作業を、工程ごとに最低限の比率としてあらかじめ見込んでおく
開発組織によっては、過去のプロジェクトデータを蓄積し、統計的に見積精度を高める取り組みも行われています。
経験に頼るだけでなく、数字として振り返ることで、特定の工程が最初から慢性的に不足しているといった傾向にも気づきやすくなります。
システム開発の見積工数に関するよくある質問
システム開発の見積工数に関して、実務でよく挙がる質問と、その考え方の一例を紹介します。
Q1. 見積工数にバッファは入れてもよいのでしょうか。
A. 一般的には、リスクや不確実性に備えて、一定割合のバッファを見込むことがあります。
ただし、「どのようなリスクを想定しているか」と「どの程度の割合か」を関係者間で共有しておくことが重要です。
Q2. ベテランと新人で工数を分けて考えるべきでしょうか。
A. 実際の作業日数はスキルによって変わりますが、見積段階では平均的な熟練度を前提にすることが多いです。
体制が見えている場合は、「この作業はベテラン」「この作業は新人」といった割り当てを前提に工数を調整する方法もあります。
Q3. 要件が固まっていないのに工数を聞かれた場合はどうすればよいでしょうか。
A. この場合は、前提条件を明示したうえで、レンジ(幅)のある概算見積を提示するのが現実的です。
「要件がこの範囲ならA〜B人月」「この条件が増えると+○人月」といった形で、条件とセットで伝えると誤解を減らせます。
Q4. アジャイル開発でも工数見積は必要ですか。
A. アジャイル開発でも、スプリント計画や予算策定のために、規模感やスケジュールの見積は必要です。
ただし、全体を細かく固定するのではなく、ポイント制やベロシティを活用しながら、スプリントごとに見直していくアプローチがよく取られます。
システム開発の見積工数についてのまとめ
・見積工数は前提条件付きの作業量の目安である
・どこまでの工程を含めるか範囲定義を明確にする
・要件定義から保守までの工程を分けて考える
・概算見積と詳細見積は目的と精度が異なる
・追加機能は追加見積として整理して扱う
・機能の量だけでなく複雑さも工数に影響する
・非機能要件や品質要求は工数を大きく左右する
・チームの経験値と技術スタックも判断材料になる
・積み上げ方式と類推見積を状況で使い分ける
・規模指標や過去実績を組み合わせて精度を高める
・要件の曖昧さや仕様変更はズレの大きな原因となる
・レビューや会議など間接作業の工数も見込む
・前提条件とバッファの考え方を関係者と共有する
・見積と実績の差分を振り返り次の案件に活かす
・状況に応じて見積工数を更新することを前提にする
・Web制作の見積項目の見方|相場と注意点まとめ
・動画制作の見積もり項目と内訳を読み解く完全ガイド
・スプレッドシートで作る売上集計表の基本手順とコツ
・中小企業向け勤怠集計スプレッドシートテンプレ作成
・Excelでデータの重複を安全に削除する手順ガイド
・スプレッドシートが重いときの原因と今すぐ軽くする方法を徹底解説
・Excelでピボットテーブルが更新されない原因と対処法を完全解説
・スプレッドシートで文字列の日付を正しい日付に直す方法
・スプレッドシートでのIMPORTRANGEの権限エラーを解消する方法
・QUERYで売上を集計するGoogleスプレッドシート活用術
・FILTER関数で複数条件を扱うコツと実務での活用パターン
・XLOOKUPで複数条件を組み合わせて使う方法
・職種別の面接質問リストでよく聞かれる内容と答え方を整理する
