---
title: "人月・生産性・要員数から開発期間を求める方法【基本情報技術者試験】"
description: "人月で示された工数と、能力差のある要員の生産性から工程期間を求める方法を整理します。実質要員数への換算、直列工程と並行工程の違い、期間短縮問題の判断軸を解説します。"
last_modified_at: "2026-07-28"
canonical_url: "https://stemtazoo.github.io/fe/effort-productivity-duration/"
section: "fe"
---

## まず結論

工数と要員数から工程期間を求める基本式は、次のとおりです。

```text
工程期間 = 見積工数 ÷ 実質要員数
```

要員ごとに生産性が違う場合は、人数をそのまま足しません。基準となる要員へ換算してから計算します。

```text
実質要員数 = 基準要員数 + 低生産性要員数 × 生産性比
```

例えば、初級技術者の生産性が上級技術者の半分なら、初級技術者1人は上級技術者0.5人分です。

> **能力差を基準要員へ換算してから、工程ごとに「工数 ÷ 実質要員数」を計算する。**

## 直感的な説明

12人月の作業を、同じ生産性の2人で進めるなら、

```text
12人月 ÷ 2人 = 6か月
```

です。

3人なら、

```text
12人月 ÷ 3人 = 4か月
```

になります。

ただし、上級技術者2人と、上級技術者の半分の生産性をもつ初級技術者2人がいる場合、4人分としては扱いません。

```text
上級技術者2人 + 初級技術者2人 × 0.5
= 上級技術者3人分
```

この場合の期間は、

```text
12人月 ÷ 3人分 = 4か月
```

です。

## 定義・仕組み

### 人月とは

人月は、1人が1か月働く作業量を表す単位です。

```text
1人が6か月働く
= 6人月

3人が2か月働く
= 6人月
```

人月は作業量であり、期間そのものではありません。

### 生産性比で換算する

基準となる要員の生産性を1とします。

| 要員 | 生産性比 | 基準要員への換算 |
|---|---:|---:|
| 上級技術者 | 1.0 | 1人分 |
| 初級技術者 | 0.5 | 0.5人分 |

上級技術者2人、初級技術者2人なら、

```text
2 × 1.0 + 2 × 0.5
= 3人分
```

です。

逆に、ある要員が基準要員の2倍の生産性をもつなら、その要員1人は基準要員2人分として換算します。

### 工程ごとに計算する

工程ごとに工数や要員配置が異なる場合、合計工数を全要員数で割ってはいけません。

```text
設計
プログラム作成・単体テスト
結合テスト
```

のように、工程ごとに期間を計算します。

### 直列工程と並行工程

工程が重ならない場合は、各工程の期間を足します。

```text
全体期間 = 工程A + 工程B + 工程C
```

工程を並行して進める場合は、単純な合計ではありません。すべての並行工程が終わるまで待つため、基本的には最も長い工程期間が全体を支配します。

```text
並行工程の区間
= 最も長い工程期間
```

## 科目Aでどう出る？

主に次の情報が与えられます。

- 工程ごとの見積工数
- 工程ごとの要員配置
- 上級者と初級者の生産性比
- 要員追加前後の人数
- 工程が直列か並行か

解く順番は次のとおりです。

```text
1. 生産性の基準を決める
2. 各工程の実質要員数を求める
3. 工数 ÷ 実質要員数で工程期間を求める
4. 直列なら足し、並行なら最長期間を見る
5. 追加前と追加後の差を求める
```

例えば、次の条件を考えます。

```text
設計：6人月、上級2人
プログラム作成・単体テスト：12人月、上級2人、初級2人
結合テスト：12人月、上級2人
初級の生産性：上級の0.5倍
工程は重ならない
```

追加前は、

```text
設計：6 ÷ 2 = 3か月
プログラム作成・単体テスト：12 ÷ (2 + 2×0.5) = 4か月
結合テスト：12 ÷ 2 = 6か月
合計：13か月
```

各工程へ上級技術者を1人追加すると、

```text
設計：6 ÷ 3 = 2か月
プログラム作成・単体テスト：12 ÷ (3 + 2×0.5) = 3か月
結合テスト：12 ÷ 3 = 4か月
合計：9か月
```

短縮期間は、

```text
13 - 9 = 4か月
```

です。

## どんな場面で使う？

この考え方は、次のような場面で使います。

- ソフトウェア開発の工程期間の見積り
- 経験差のあるメンバーを含む要員計画
- 人員追加による期間短縮の試算
- 設計・製造・テスト工程の負荷計算
- 外部委託先を含む作業能力の換算

途中までの出来高から最終工数を予測する問題とは、計算の出発点が異なります。

- 本記事：見積工数と要員数から期間を求める
- [出来高と投入工数から超過工数を求める方法](https://stemtazoo.github.io/fe/progress-productivity-effort/)：途中実績から総工数を予測する

## よくある誤解・混同

### 人数をそのまま足す

生産性が違う要員を同じ1人として足すのは誤りです。

```text
上級2人 + 初級2人
≠ 4人分
```

初級者の生産性が半分なら、

```text
2 + 2×0.5 = 3人分
```

とします。

### 合計工数を全要員数で割る

工程ごとに要員配置が違う場合は、工程ごとに計算します。

### 追加後の期間を答える

「何か月短縮できるか」と聞かれたら、追加前と追加後の差を求めます。

```text
短縮期間 = 追加前の期間 - 追加後の期間
```

### 直列工程と並行工程を同じように足す

工程が重ならないなら足します。並行なら、並行区間では最長期間を見ます。

### 人員を2倍にすれば必ず期間が半分になる

試験問題で単純比例の条件が明示されていれば、その前提で計算します。

実務では、教育、調整、分担できない作業、コミュニケーション増加などにより、単純比例しないことがあります。

## まとめ（試験直前用）

- 工程期間は「見積工数 ÷ 実質要員数」
- 生産性が違う要員は、基準要員へ換算してから足す
- 工程ごとに工数と要員配置を確認する
- 直列工程は期間を足し、並行工程は最長期間を見る
- 「短縮期間」なら追加前と追加後の差まで求める
- 人月は作業量、月は期間と切り分ける
