AI駆動開発の見積もりは、「従来の工数 × 工程ごとの係数 + AIを使うことで増える工数」で計算し、1つの数字ではなく楽観・標準・悲観の幅で示すのが基本です。 AIで短くなるのは主に実装と単体テストの一部で、レビュー・検証・指示書づくりは逆に増えます。全体を一律に「◯割減」とすると、減らない工程と増える工程が見積もりから抜け落ちます。

この記事では、工程別の係数表、計算スクリプト、表計算の数式、見積書に書く前提条件の文例、係数を自分たちで測るための記録表を、貼って使える形で載せます。係数はチームや題材で大きく変わるため、表の数字は仮の値とし、空欄つきの表に自分たちの測定値を入れる前提にしています。

確認環境(確認日 2026年10月7日):Ubuntu 24.04、Python 3.11.15、LibreOffice Calc 24.2.7。掲載したスクリプトと数式はこの環境で動かし、出力をそのまま載せています。工数・単価・料金はすべて架空の例です。

AI駆動開発の見積もり早見表

手順 やること 使うもの
1 従来の方法で工程別の工数を出す 過去の記録、WBS
2 工程ごとに係数を3つ(楽観・標準・悲観)置く 工程別の係数表
3 AI利用で増える作業を追加工数として足す 追加工数の一覧
4 ツール費・トークン費を別の行で足す 費用の表
5 3点見積もりで期待値と幅を出す Python、表計算の数式
6 前提条件と対象外を見積書に書く 前提条件の文例
7 終わったら実測して係数を更新する 記録表

計算式は次の3つです。

求めるもの 式
工程の工数 従来工数 × 係数 + 追加工数
期待値 (楽観 + 4 × 標準 + 悲観)÷ 6
見積金額 工数 × 単価 + ツール費 + トークン費

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「AI駆動開発の見積もり|工数の係数表と前提条件の文例・計算シート」

工程別の係数表(減る作業・減らない作業・増える作業)

係数は「AIを使ったときの時間 ÷ 従来の時間」です。0.75なら25%短くなり、1.20なら20%長くなります。工程ごとに「減る作業」「減らない作業」「増える作業」を分けて書くと、係数の根拠を説明できます。

工程 減る作業 減らない作業 増える作業
要件定義 議事録の整理、要件一覧の下書き 関係者との合意、優先順位の決定 AI利用範囲の取り決め
基本設計 画面・API一覧の下書き、比較案の洗い出し 方式の決定、非機能要件の判断 生成した案の妥当性確認
詳細設計 項目定義・処理手順の下書き 既存仕様との整合確認 指示書(プロンプト、ルールファイル)の作成
実装 定型コード、変換処理、既存パターンの横展開 既存コードの読解、設計判断 生成コードの読み込みと修正、やり直し
単体テスト テストケースとテストコードの下書き 期待値の決定、境界条件の判断 テストが仕様を表しているかの確認
結合テスト テストデータ作成、ログの要約 環境準備、他システムとの調整 目立った増加は少ない
レビュー 書式・命名などの一次指摘 設計意図・業務ルールの確認 差分の量が増えた分の確認、依存パッケージの確認
管理 進捗資料・報告書の下書き 調整、意思決定、リスク対応 ツール利用状況と費用の把握

係数の仮の値を入れた表です。実装の悲観値が1.0を超えているのは、指示のやり直しや生成コードの読み込みで、従来より時間がかかる場合があるためです(根拠は後半の「効果は条件しだい」の節で示します)。

工程 楽観 標準 悲観 追加工数
要件定義 0.95 1.00 1.05 1
基本設計 0.85 0.95 1.05 1
詳細設計 0.75 0.90 1.05 2
実装 0.50 0.75 1.10 4
単体テスト 0.55 0.80 1.10 2
結合テスト 0.90 1.00 1.10 0
レビュー 1.00 1.20 1.50 0
管理 0.95 1.00 1.10 1

追加工数(人日)は、係数では表しにくい「新しく発生する作業」です。

追加工数の中身 発生する工程 見積もり方
AI利用範囲の合意、申請 要件定義 打ち合わせ回数 × 時間
ツール設定、権限・除外設定 基本設計 初回のみ。人数に比例しない
指示書・ルールファイルの作成と更新 詳細設計、実装 機能のまとまりごとに積む
生成物の検証(動作、依存、ライセンス) 実装、単体テスト 機能数 × 1件あたりの時間
利用状況・費用の集計 管理 月次の回数 × 時間

貼って使える係数表(TSV・仮の値入り)

A1セルに貼り付けるか、coef.tsv という名前で保存します。従来工数の列は例の値です。

工程  従来工数    係数_楽観   係数_標準   係数_悲観   追加工数
要件定義    20  0.95    1.00    1.05    1
基本設計    25  0.85    0.95    1.05    1
詳細設計    30  0.75    0.90    1.05    2
実装  60  0.50    0.75    1.10    4
単体テスト   30  0.55    0.80    1.10    2
結合テスト   25  0.90    1.00    1.10    0
レビュー    15  1.00    1.20    1.50    0
管理  20  0.95    1.00    1.10    1

自分たちの値を入れる係数表(TSV・空欄つき)

係数の列は空欄にしてあります。後半の「係数を実測する手順」で求めた値を入れてください。 測定前の工程は、楽観・標準・悲観をすべて1.00(従来と同じ)にしておくと、根拠のない短縮を見積もりに入れずに済みます。

工程  従来工数    係数_楽観   係数_標準   係数_悲観   追加工数    係数の根拠
要件定義                        
基本設計                        
詳細設計                        
実装                      
単体テスト                       
結合テスト                       
レビュー                        
管理                      

「係数の根拠」の列には、「2026年9月、一覧画面の追加7件の実測」のように、いつ・何を・何件測ったかを書きます。計算に使うときはこの列を削るか、スクリプトがそのまま無視する形(列名で読み込む形)にします。下のスクリプトは列名で読むため、列が増えても動きます。

Pythonで3点見積もりを計算する

coef.tsv を読み、工程ごとに楽観・標準・悲観の工数と期待値を出します。標準ライブラリだけで動きます。

"""AI利用時の工数を「従来工数×係数+追加工数」で計算し、3点見積もりで幅を出す。
使い方: python3 estimate.py coef.tsv
"""
import csv
import math
import sys

UNIT_PRICE = 40_000      # 1人日あたりの単価(円)
SEATS = 5                # AIツールを使う人数
MONTHS = 4               # 利用する月数
TOOL_FEE = 5_000         # ツールの月額(円/人)
TOKEN_FEE = 30_000       # 従量課金(トークン費)の月額見込み(円)


def main(path: str) -> None:
    with open(path, encoding="utf-8", newline="") as f:
        rows = list(csv.DictReader(f, delimiter="\t"))

    total = {"base": 0.0, "o": 0.0, "m": 0.0, "p": 0.0, "e": 0.0, "var": 0.0}
    print("工程\t従来\t楽観\t標準\t悲観\t期待値")
    for r in rows:
        base = float(r["従来工数"])
        add = float(r["追加工数"])
        o = base * float(r["係数_楽観"]) + add
        m = base * float(r["係数_標準"]) + add
        p = base * float(r["係数_悲観"]) + add
        e = (o + 4 * m + p) / 6          # 3点見積もりの期待値
        sd = (p - o) / 6                 # 標準偏差の目安
        for k, v in zip(("base", "o", "m", "p", "e"), (base, o, m, p, e)):
            total[k] += v
        total["var"] += sd ** 2
        print(f"{r['工程']}\t{base:.2f}\t{o:.2f}\t{m:.2f}\t{p:.2f}\t{e:.2f}")

    sd_total = math.sqrt(total["var"])
    print(f"合計\t{total['base']:.2f}\t{total['o']:.2f}\t"
          f"{total['m']:.2f}\t{total['p']:.2f}\t{total['e']:.2f}")

    low, high = total["e"] - sd_total, total["e"] + sd_total
    tool = SEATS * MONTHS * TOOL_FEE + MONTHS * TOKEN_FEE
    print()
    print(f"従来工数の合計        : {total['base']:.1f} 人日")
    print(f"期待値(3点見積もり) : {total['e']:.1f} 人日"
          f"(従来比 {total['e'] / total['base'] * 100:.1f}%)")
    print(f"標準偏差の目安        : {sd_total:.1f} 人日")
    print(f"提示する幅            : {low:.1f} 〜 {high:.1f} 人日")
    print(f"ツール費・トークン費  : {tool:,} 円")
    for label, days in (("従来", total["base"]), ("楽観", total["o"]),
                        ("標準", total["m"]), ("期待値", total["e"]),
                        ("悲観", total["p"])):
        ai_cost = 0 if label == "従来" else tool
        print(f"金額({label}){' ' * (3 - len(label))}: "
              f"{round(days * UNIT_PRICE + ai_cost):>10,} 円")


if __name__ == "__main__":
    main(sys.argv[1] if len(sys.argv) > 1 else "coef.tsv")

実行コマンドと結果です。

python3 estimate.py coef.tsv
工程  従来  楽観  標準  悲観  期待値
要件定義    20.00   20.00   21.00   22.00   21.00
基本設計    25.00   22.25   24.75   27.25   24.75
詳細設計    30.00   24.50   29.00   33.50   29.00
実装  60.00   34.00   49.00   70.00   50.00
単体テスト   30.00   18.50   26.00   35.00   26.25
結合テスト   25.00   22.50   25.00   27.50   25.00
レビュー    15.00   15.00   18.00   22.50   18.25
管理  20.00   20.00   21.00   23.00   21.17
合計  225.00  176.75  213.75  260.75  215.42

従来工数の合計        : 225.0 人日
期待値(3点見積もり) : 215.4 人日(従来比 95.7%)
標準偏差の目安        : 7.0 人日
提示する幅            : 208.4 〜 222.4 人日
ツール費・トークン費  : 220,000 円
金額(従来) :  9,000,000 円
金額(楽観) :  7,290,000 円
金額(標準) :  8,770,000 円
金額(期待値):  8,836,667 円
金額(悲観) : 10,650,000 円

この例から読み取れることは3つあります。

  • 実装の標準係数を0.75(25%短縮)と置いても、全体の期待値は従来比95.7%。実装は全体225人日のうち60人日で、減らない工程と増える工程が残るため
  • 楽観は176.75人日、悲観は260.75人日で、悲観は従来の225人日を上回る。幅を示さずに楽観値だけを出すと、約84人日の差を説明できなくなる
  • ツール費・トークン費は22万円で、この例では工数の差に比べて小さい。ただし利用量に比例する料金は月ごとに変わるため、上限額を前提条件に書く

幅の出し方

期待値は「(楽観+4×標準+悲観)÷6」、標準偏差の目安は工程ごとに「(悲観−楽観)÷6」で、合計の標準偏差は各工程の分散(標準偏差の2乗)を足して平方根を取っています。これは工程ごとのぶれが互いに独立していると仮定した計算です。同じ原因(たとえば既存コードが読みにくい)で複数の工程が同時に延びる場合は、この幅より広くなります。 見積書には「期待値±標準偏差」の幅と、悲観値の両方を書いておくと、判断する人が上振れを把握できます。

表計算ソフトの数式(貼って使えるシート)

同じ計算を表計算ソフトで行うシートです。タブ区切りのまま A1 セルに貼り付けると、G列以降が数式として計算されます。

工程  従来工数    係数_楽観   係数_標準   係数_悲観   追加工数    楽観  標準  悲観  期待値 分散
要件定義    20  0.95    1.00    1.05    1   =B2*C2+F2   =B2*D2+F2   =B2*E2+F2   =(G2+4*H2+I2)/6 =((I2-G2)/6)^2
基本設計    25  0.85    0.95    1.05    1   =B3*C3+F3   =B3*D3+F3   =B3*E3+F3   =(G3+4*H3+I3)/6 =((I3-G3)/6)^2
詳細設計    30  0.75    0.90    1.05    2   =B4*C4+F4   =B4*D4+F4   =B4*E4+F4   =(G4+4*H4+I4)/6 =((I4-G4)/6)^2
実装  60  0.50    0.75    1.10    4   =B5*C5+F5   =B5*D5+F5   =B5*E5+F5   =(G5+4*H5+I5)/6 =((I5-G5)/6)^2
単体テスト   30  0.55    0.80    1.10    2   =B6*C6+F6   =B6*D6+F6   =B6*E6+F6   =(G6+4*H6+I6)/6 =((I6-G6)/6)^2
結合テスト   25  0.90    1.00    1.10    0   =B7*C7+F7   =B7*D7+F7   =B7*E7+F7   =(G7+4*H7+I7)/6 =((I7-G7)/6)^2
レビュー    15  1.00    1.20    1.50    0   =B8*C8+F8   =B8*D8+F8   =B8*E8+F8   =(G8+4*H8+I8)/6 =((I8-G8)/6)^2
管理  20  0.95    1.00    1.10    1   =B9*C9+F9   =B9*D9+F9   =B9*E9+F9   =(G9+4*H9+I9)/6 =((I9-G9)/6)^2
合計  =SUM(B2:B9)             =SUM(F2:F9) =SUM(G2:G9) =SUM(H2:H9) =SUM(I2:I9) =SUM(J2:J9) =SQRT(SUM(K2:K9))
幅の下限    =J10-K10
幅の上限    =J10+K10
従来比 =J10/B10
ツール費    =5*4*5000+4*30000
金額(期待値) =ROUND(J10*40000+B14,0)

LibreOffice Calc 24.2.7 で計算した結果です(小数は表示を丸めています)。Pythonの結果と一致しました。

セル 内容 結果
G10 楽観の合計 176.75
H10 標準の合計 213.75
I10 悲観の合計 260.75
J10 期待値の合計 215.42
K10 合計の標準偏差 7.01
B11 幅の下限 208.41
B12 幅の上限 222.43
B13 従来比 0.957
B14 ツール費・トークン費 220,000
B15 金額(期待値) 8,836,667

数式の意味は次のとおりです。

列 数式(2行目の例) 意味
G =B2*C2+F2 楽観の工数
H =B2*D2+F2 標準の工数
I =B2*E2+F2 悲観の工数
J =(G2+4*H2+I2)/6 期待値
K =((I2-G2)/6)^2 分散

B14 の =5*4*5000+4*30000 は「5人 × 4か月 × 月額5,000円 + 4か月 × トークン費 月30,000円」、B15 の 40000 は1人日の単価です。自分たちの値に置き換えてください。

見積書に書くAI利用の前提条件・対象外の文例

AIを使う見積もりでは、何を使い、何を入力し、誰が検証し、効果が出なかったときにどうするかを文章で残しておくと、後の認識違いを防げます。必要な項目を選んで貼り付けてください。【 】の部分を書き換えます。

■ AI利用に関する前提条件

1. 利用するツール
   本見積もりは、【ツール名・プラン名】を【設計書の下書き/実装/テストコード作成/
   レビューの一次確認】に利用することを前提とします。利用するツールを変更する場合は、
   事前に書面でお知らせします。

2. 入力する情報の範囲
   AIツールに入力する情報は、【本件のソースコード、設計書、テストデータ(個人を特定
   できる情報を除く)】とします。【本番データ、認証情報、個人情報、第三者から預かった
   機密情報】は入力しません。

3. 学習への利用
   入力した情報がAIモデルの学習に使われない設定・契約のツールのみを利用します。
   設定内容は【別紙/キックオフ資料】に記載します。

4. 貴社コードの入力可否
   貴社からお預かりする既存ソースコードをAIツールに入力することについて、
   【承諾をいただいたものとします/承諾をいただけない場合は別紙Bの金額を適用します】。

5. 生成物の検証責任
   AIが生成したコード・文書は、当社の担当者が内容を確認し、当社の成果物として
   納品します。品質に関する責任は、AIを利用しない場合と同じく【契約書第◯条】に
   従います。

6. 検証の内容
   生成したコードは、【自動テスト、静的解析、秘密情報の検出、依存パッケージの
   実在とライセンスの確認、担当者によるレビュー】を経たものだけを取り込みます。

7. 工数の算定方法
   本見積もりは、従来の方法による工数に工程別の係数を掛け、AI利用に伴う追加作業
   (指示書の作成、生成物の検証)を加えて算定しています。係数は【当社の過去の測定値/
   同種の作業の記録】に基づきます。

8. 見積もりの幅
   工数は【208〜222】人日を見込み、条件が重なった場合の上限を【261】人日とします。
   【準委任契約の場合:実際の作業時間に基づいて精算します/請負契約の場合:
   見積金額は【◯◯】円で固定とし、範囲の変更は別途協議します】。

9. 効果が見込みと異なる場合
   【最初の2週間】で対象作業の時間を測定し、係数が見込みと【20%】以上異なる場合は、
   残りの工数と進め方について協議します。

10. 利用料の扱い
    AIツールの利用料は【月額◯◯円を上限として本見積もりに含みます/実費を別途
    ご請求します】。上限を超える見込みとなった場合は、事前にご相談します。

■ 対象外

1. AIツールの貴社向け導入支援、利用ルールの策定、社内研修
2. AIが生成した内容についての、第三者の権利に関する法的な調査・保証
3. 貴社が指定するAIツールを利用するための、貴社環境の設定・申請作業
4. AIツール側の仕様変更・料金改定・提供終了に伴う作業のやり直し
5. 生成AIを組み込んだ機能(チャット、要約、検索など)の精度に関する保証

文例を選ぶときの目安です。

文例 特に必要な場面
2、3、4 既存システムの改修で、預かったコードを入力する場合
5、6 納品物の品質を誰が担うかを明確にしたい場合
7、8、9 工数を短く見積もった根拠を説明する場合
10 利用量に比例する料金のツールを使う場合
対象外4 期間が数か月以上にわたる場合

契約や権利に関わる文言は、自社の契約書・法務担当の方針に合わせて調整してください。ここに載せたのは見積もりの認識を合わせるための文例で、法的な助言ではありません。

「AIで半分になります」型の見積もりを直した例

直す前の文面です。短縮の対象・根拠・条件が書かれていないため、読む人によって受け取り方が変わります。

【直す前】
AI駆動開発により、開発工数を従来の半分に削減します。
従来見積もり 225人日 → 本見積もり 113人日(900万円 → 452万円)
気になる点 起きること 直し方
全工程に同じ割合を掛けている 要件定義・結合テスト・管理まで半分になっている 工程別の係数にする
増える作業が入っていない レビューと検証の時間が見積もりに無い 追加工数の行を足す
根拠が書かれていない 「半分」の出どころを説明できない 測定した題材と件数を書く
幅が無い 見込みと違ったときの扱いが決まっていない 3点見積もりと協議条件を書く
ツール費が無い 利用料が利益から出ていく 費用の行を分ける

直した後の文面です。上のスクリプトの結果をそのまま使っています。

【直した後】
1. 工数
   従来の方法による工数:225人日
   AI利用を前提とした工数:215人日(幅 208〜222人日、条件が重なった場合の上限 261人日)

2. 工程別の見込み(標準)
   実装        60人日 → 49人日(定型コードの生成で短縮。指示書作成・検証4人日を含む)
   単体テスト  30人日 → 26人日(テストコードの下書きで短縮。検証2人日を含む)
   レビュー    15人日 → 18人日(生成コードの確認が増えるため)
   要件定義・結合テスト・管理は従来とほぼ同じ

3. 根拠
   係数は、当社で【2026年9月】に測定した同種の作業(一覧画面の追加7件、入力チェックの
   テスト5件、レビュー5件)の記録に基づきます。

4. 費用
   作業費 8,616,667円(215.42人日 × 40,000円)+ AIツール利用料 220,000円
   = 8,836,667円

5. 見込みと異なる場合
   最初の2週間で実測し、係数が20%以上異なる場合は残工数について協議します。

短縮の幅は小さく見えますが、根拠と条件が書かれているため、後から数字を説明できます。 測定を重ねて係数が下がれば、次の見積もりからその値を使えます。

効果は条件しだい:調査が示していること

AIによる短縮を一律の割合で置けない理由を、公開されている調査で確認します(いずれも2026年10月7日に閲覧)。

調査 内容 見積もりへの示唆
METR の無作為化比較試験(2025年7月10日公開) 経験豊富なオープンソース開発者16人、246件の課題。AI利用を許可した課題は完了までの時間が19%長かった 規模の大きい成熟したコードベースでは、係数が1.0を超える場合がある
同上 開発者は事前に24%の短縮を予想し、終了後も20%短縮したと感じていた 体感ではなく実測で係数を決める
DORA 2025年版レポート(2025年9月23日発表) 約5,000人の調査。AI利用はスループット・製品の成果と正の関係、デリバリーの安定性とは負の関係 速くなる分、テストとレビューの工数を削らない
同上 AIは組織の強みと弱みを増幅する、という位置づけ 自動テストや版管理が整っているかで係数を変える

METR の調査は、対象リポジトリが平均22,000以上のスターと100万行以上の規模で、参加者は経験豊富なオープンソースの貢献者でした。利用ツールは主に Cursor Pro と当時の Claude 3.5/3.7 Sonnet です。著者自身が「多くの開発者でAIが速度を上げないことを示す証拠ではない」「近い将来のAIがこの条件で速度を上げないことを示すものでもない」と明記しています。 つまり、この結果は「AIは遅くなる」という結論ではなく、「条件によっては逆方向にも振れる」ことを示す材料です。

これを踏まえた、係数を置くときの判断基準です。

条件 短縮が出やすい 短縮が出にくい
コードベース 新規、小〜中規模、構成が単純 大規模、独自の規約や暗黙のルールが多い
作業の種類 定型的、似た例がある 設計判断が多い、前例が少ない
担当者と題材 題材に不慣れで調べる時間が長い 題材を熟知していて手が速い
検証の仕組み 自動テストとCIがある 手動確認が中心
仕様の明確さ 入出力が文章で書ける 口頭の合意や経緯に依存する
入力できる情報 コード・設計書を入力できる 入力に制約がある

「短縮が出にくい」に当てはまる項目が多いときは、標準係数を1.00に近づけ、悲観係数を1.1〜1.2程度まで広げて幅を持たせます。なお、従来工数そのものの妥当性を確かめたい場合、IPAの「ソフトウェア開発分析データ集」は最新が2022年版で、事業終了に伴い今後の発行予定はないと案内されています。AI利用時の生産性は含まれないため、基準は自分たちの記録から作るのが確実です。

係数を実測する手順と記録表

係数は、同じ種類の作業を「AIなし」と「AIあり」で記録して比べることで求めます。

  1. 比べる作業の種類を決める(例:一覧画面の追加、入力チェックのテスト、レビュー)
  2. 「開始」と「完了」の定義を決める(例:着手から、レビューで承認されるまで)
  3. AIなしの記録を2件以上、AIありの記録を3件以上集める
  4. 指示書の作成、やり直し、生成コードの確認の時間も「実測時間」に含める
  5. AIなしの中央値を基準とし、AIありの各件を基準で割る
  6. 比の最小・中央・最大を、楽観・標準・悲観の係数にする
  7. 件数が増えたら係数を更新し、「係数の根拠」の列を書き換える

記録表(TSV)です。log.tsv という名前で保存します。

タスクID   工程  種類  AI利用    実測時間
T01 実装  一覧画面の追加 なし  6.0
T02 実装  一覧画面の追加 なし  7.5
T03 実装  一覧画面の追加 なし  5.5
T04 実装  一覧画面の追加 あり  3.5
T05 実装  一覧画面の追加 あり  4.5
T06 実装  一覧画面の追加 あり  7.0
T07 実装  一覧画面の追加 あり  4.0
T08 単体テスト   入力チェックのテスト  なし  3.0
T09 単体テスト   入力チェックのテスト  なし  4.0
T10 単体テスト   入力チェックのテスト  あり  2.0
T11 単体テスト   入力チェックのテスト  あり  3.5
T12 単体テスト   入力チェックのテスト  あり  2.5
T13 レビュー    一覧画面のレビュー   なし  1.0
T14 レビュー    一覧画面のレビュー   なし  1.5
T15 レビュー    一覧画面のレビュー   あり  1.5
T16 レビュー    一覧画面のレビュー   あり  2.0
T17 レビュー    一覧画面のレビュー   あり  1.0

集計スクリプトです。

"""記録表から工程ごとの係数(楽観・標準・悲観)を求める。
使い方: python3 measure.py log.tsv
"""
import csv
import statistics
import sys
from collections import defaultdict


def main(path: str) -> None:
    before = defaultdict(list)   # AI利用なしの実測時間
    after = defaultdict(list)    # AI利用ありの実測時間
    with open(path, encoding="utf-8", newline="") as f:
        for r in csv.DictReader(f, delimiter="\t"):
            key = (r["工程"], r["種類"])
            target = after if r["AI利用"] == "あり" else before
            target[key].append(float(r["実測時間"]))

    print("工程\t種類\t件数(なし/あり)\t基準\t楽観\t標準\t悲観")
    for key in before:
        if len(before[key]) < 2 or len(after[key]) < 3:
            print(f"{key[0]}\t{key[1]}\t件数が少ないため保留")
            continue
        base = statistics.median(before[key])          # 基準=AIなしの中央値
        ratios = sorted(t / base for t in after[key])  # 1件ごとの比
        print(f"{key[0]}\t{key[1]}\t{len(before[key])}/{len(after[key])}\t"
              f"{base:.2f}h\t{ratios[0]:.2f}\t"
              f"{statistics.median(ratios):.2f}\t{ratios[-1]:.2f}")


if __name__ == "__main__":
    main(sys.argv[1] if len(sys.argv) > 1 else "log.tsv")
python3 measure.py log.tsv
工程  種類  件数(なし/あり)   基準  楽観  標準  悲観
実装  一覧画面の追加 3/4 6.00h   0.58    0.71    1.17
単体テスト   入力チェックのテスト  2/3 3.50h   0.57    0.71    1.00
レビュー    一覧画面のレビュー   2/3 1.25h   0.80    1.20    1.60

この例では、実装のAIありの4件のうち1件(T06)が基準の6.0時間を超えて7.0時間かかっており、悲観係数が1.17になりました。うまくいかなかった1件を外さずに残すことで、悲観値に根拠ができます。 レビューは標準1.20で、生成コードの確認に時間がかかっていることが数字に出ています。

測るときの注意点です。

注意点 理由 対応
作業の大きさをそろえる 大きさが違うと比が意味を持たない 画面数や項目数が近いものを選ぶ
担当者をそろえる 人による差が係数に混ざる 同じ人の前後で比べるか、人数を増やす
手戻りの時間を含める 後から直した時間が抜けると短く見える 完了の定義を「承認まで」にする
件数が少ないうちは幅を広げる 数件の結果は偶然に左右される 最小・最大をそのまま使う
慣れの効果を分ける 2回目の作業はAIなしでも速い 順番を入れ替えて記録する

よくある質問

Q. 係数を測った記録がまだ無い場合は、どう見積もればよいですか? A. 係数を1.00(従来と同じ)に置き、AI利用で増える追加工数だけを足す見積もりから始めるのが確実です。そのうえで前提条件に「最初の2週間で測定し、結果に応じて協議する」と書けば、短縮が出たときに反映できます。

Q. 顧客から「AIを使うなら安くなるはず」と言われたら、どう答えますか? A. 工程別の表を見せ、短くなる工程・変わらない工程・増える工程を分けて説明します。実装が25%短くなっても全体では数%の差になること、測定で係数が下がれば次回から反映することを、数字で示すと伝わりやすくなります。

Q. トークン費(従量課金)はどう見積もりますか? A. 最初の1〜2週間の利用額を記録し、月額に換算して上限を決める方法が扱いやすいです。料金は改定されることがあるため、見積書には金額ではなく「月額◯◯円を上限」と書き、超える見込みのときに相談する形にします。

Q. 請負契約と準委任契約で、見積もりの出し方は変わりますか? A. 計算式は同じです。違うのは幅の扱いで、作業時間で精算する契約では期待値と幅をそのまま示し、金額を固定する契約では悲観値まで見たうえで金額を決め、範囲の変更時の扱いを前提条件に書きます。

まとめ

  • 見積もりは「従来工数×係数+追加工数」で、工程ごとに計算する。一律の割合は使わない
  • 減る作業・減らない作業・増える作業を分けて書くと、係数の根拠を説明できる
  • 楽観・標準・悲観の3点で幅を出す。例では実装を25%短縮と置いても全体は従来比95.7%だった
  • レビュー・検証・指示書づくりは増える側として追加工数に入れる
  • 前提条件に、利用ツール・入力範囲・検証責任・見込みと異なる場合の扱いを書く
  • 係数は同種の作業の前後比較で測り、うまくいかなかった件も残す
  • 調査結果は「条件しだいで逆にも振れる」ことを示している。体感ではなく実測で決める

参考・出典

いずれも2026年10月7日に閲覧しました。

  • METR「Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity」(2025年7月10日) https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/
  • DORA「State of AI-assisted Software Development 2025」 https://dora.dev/research/2025/dora-report/
  • Google Cloud Blog「Announcing the 2025 DORA Report」(2025年9月23日) https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report
  • IPA「ソフトウェア開発分析データ集」 https://www.ipa.go.jp/digital/software-survey/metrics/index.html

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「AI駆動開発の見積もり|工数の係数表と前提条件の文例・計算シート」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?