【基本情報】工数とスケジュールの計算、人月は「作業量」です|クリティカルパス・PERT・EVM

この記事では、プロジェクトマネジメント分野の計算を、工数・人数・期間の関係、作業の前後関係から完了日を出す日程計算、PERTによる見積り、EVMによる進捗・コストの評価という4つの柱を中心に整理します。関連する計算として、コミュニケーションチャネルや工数超過率も扱います。

式自体は複雑ではありません。この分野で答えを分けるのは式ではなく、作業を人数で分割できるか、どの作業を並行できるか、EVMの数値が何を表しているかという前提の読みです。問題を読んだら、まずここに丸をつけましょう。

  • 工数の単位は人月・人日・時間のどれか
  • 工数と人数を単純比例させてよい条件か
  • 要員のプロジェクト投入率や兼務があるか
  • 作業の依存関係はどうなっているか
  • PERTの楽観値・最可能値・悲観値はどれか
  • EVMはどの基準日時点の数値か
  • 答えの単位は人・月・日・円・比率のどれか

人月は「人数」ではなく作業量の単位

1人月は、標準的な1人が1か月働くのに相当する作業量です。人数そのものでも、経過した月数そのものでもありません。単純な比例モデルでは、

なお、1人月を何時間と換算するかは、組織や問題文の前提によって異なります。「1人月=160時間」のような指定があれば、その指定を優先してください。

工数[人月] = 人数[人] × 期間[月]
期間[月] = 工数[人月] ÷ 人数[人]
人数[人] = 工数[人月] ÷ 期間[月]

この割り算を使える条件

「10人でやれば期間は10分の1」という比例計算が成り立つのは、次の条件がそろった単純モデルの話です。

  • 作業を要員間で分割できる
  • 各要員の生産性・投入率が同じで、全員フルタイム
  • 教育・引継ぎ・会議・調整の追加工数を考えない
  • 順序制約で同時にできない作業がない
  • 人数を増やしても生産性が落ちない
  • 必要な設備や作業場所などの制約がない

問題文が単純比例モデルを前提としている場合は、この人月の式で計算します。一方、実務では教育や調整の負担などにより、人を増やしても期間が同じ割合で短縮されないことがあります。「単純比例してよいか」を問題文で確認する癖をつけてください。

残作業の工数を先に求める

例題:全体120人月のプロジェクトで、40人月分の作業が完了済み。残作業の見積工数は当初どおりで、同じ生産性の10人がフルタイムで並行して担当する。完了まで何か月?

残工数 = 120 − 40 = 80人月
期間 = 80人月 ÷ 10人 = 8か月

完了済みの作業量を差し引かずに120÷10=12か月とすると、残作業の期間ではなく全体工数に対する期間を求めることになります。「全体」「完了済み」「残り」のどれを聞かれているかを先に整理してください。

もうひとつ大事な注意。単純な試験モデルでは「完了済み40人月」を素直に引けばよいのですが、実務では消費した工数がそのまま完成した作業量になるとは限りません。40人月使ったのに30人月分しか進んでいない、ということが普通に起こります。手戻りや見積変更があれば残工数は改めて見積もる——この「消費≠完成」の区別は、後半のEVMでちゃんと道具になります。

生産性から総工数と必要要員を求める

例題:1人が1か月に500ステップを作成できる。30,000ステップを5か月で完成させるには何人必要?(各要員の生産性は同じ、フルタイム)

総工数 = 30,000ステップ ÷ 500ステップ/人月 = 60人月
必要人数 = 60人月 ÷ 5か月 = 12人

手順は2段階。作業量÷生産性で総工数、総工数÷期間で人数です。なお実際の開発生産性は言語・難易度・再利用率・品質条件で変わるので、試験では問題文が与えた生産性をそのまま使います。

人数の端数とプロジェクト投入率

必要人数は切り上げる

例題:残工数50人月を6か月で完了させる。全員フルタイム・同じ生産性なら何人必要?

50 ÷ 6 = 8.333…人 → 人数を整数で用意し、全員同じ条件で配置して期限内に必要工数を満たす最小人数なら 9人

(兼務・部分投入やFTEなど小数の要員数が認められる問題、丸め方が指定される問題では、その指定を優先してください。)

8人だと投入できる工数は8×6=48人月で、50人月に届きません。損益分岐点の記事の販売数量と同じ理屈で、「切り捨てるとまだ足りない」ので切り上げです。

兼務者は「1人月」投入できない

要員が当該プロジェクトへ投入できる時間の割合を、ここでは投入率(稼働率と呼ばれることもありますが、システムの可用性を表す稼働率——記事01のテーマ——とは別の意味です)とします。投入率がある場合は、

投入工数 = 人数 × 期間 × 投入率

例題:必要工数12人月、期間3か月、1人あたりの投入率80%(=0.8として計算)なら何人必要?

1人が3か月で投入できるのは 3 × 0.8 = 2.4人月
必要人数 = 12 ÷ 2.4 = 5人

投入率を無視した12÷3=4人だと工数が足りません。「在籍1か月=1人月」ではない——ここが兼務問題で特に確認したいポイントです。

クリティカルパスは「完了期間を決める最長経路」

クリティカルパスは、固定された作業期間と依存関係を用い、資源制約や追加の納期制約を考えない基本的なネットワーク日程計算において、開始点から終了点までの経路のうち合計所要期間が最長で、プロジェクトの最短完了期間を決める経路です。最長の経路が「最短完了期間」を決める——一見ねじれて見えますが、「一番時間のかかる道が終わらない限り、プロジェクトは終わらない」からです。

確認するのは、作業の依存関係、各作業の所要期間、同時に実施できる作業、合流点と分岐点。試験の基本問題では、同時実施できる作業は並行して進められるものとして計算します。

合流点では「遅いほう」を待つ

例題:作業Aは2日、作業Bは4日で、同時に開始できる。作業CはAとBの両方が完了した後に開始し、3日かかる。最短の完了日数は?

Cの最早開始 = max(2, 4) = 4日後
完了期間 = 4 + 3 = 7日

Aの経路だけ見た2+3=5日は、Bの完了を待っていない値。逆に2+4+3=9日は、並行できるAとBを直列に足してしまった値。合流点は最大値(遅いほう)——これが前進計算の基本の処理です。

最早・最遅時刻とトータルフロート

ネットワーク図の問題では、この記号セットで計算します。

記号 意味
ES 最早開始時刻
EF 最早終了時刻
LS 最遅開始時刻
LF 最遅終了時刻
d 作業期間
TF トータルフロート

EF = ES + d
LS = LF − d
TF = LS − ES = LF − EF

トータルフロートは「プロジェクト全体の完了を遅らせずに、その作業の開始(または終了)をどれだけ遅らせられるか」の余裕日数です。

前進計算:プロジェクト開始時刻を0などと定め、先行作業のない作業からES・EFを求めていく。合流点では、後続作業はすべての先行作業が終わるまで始められないので、先行作業のEFの最大値を使う。

後退計算:プロジェクト終了時刻を、前進計算で求めた最短完了時刻に置き、終了側からLF・LSを求めていく。分岐点では、どの後続作業も遅らせないように、後続作業のLSの最小値を使う。

「前進は最大、後退は最小」。向きが変わると使う側も入れ替わるので、ここだけ指差し確認してください。なお「開始日を1日目」と数える問題では、時刻差の計算と終了日の表記が1日ズレることがあるので、問題文の数え方を優先します。

クリティカルパスは1本とは限らない

資源制約や外部の納期制約を考えない基本的なCPMでは、クリティカルパス上の作業のTFは0になります。TFが0の作業を開始点から終了点までたどってクリティカルパスを確認します。ただし注意点がいくつかあります。

  • 合計期間が同じ最長経路が複数ある場合がある
  • 納期制約があると負のフロートが出る場合がある
  • TFが小さく、少しの遅れでクリティカルになり得る「クリティカルに近い経路」の存在
  • 作業期間が変わるとクリティカルパス自体が変わることがある
  • 資源制約があると、最長経路だけでは日程が決まらない場合がある

回復策がなくクリティカルパスも変わらない単純モデルでは、クリティカル作業の遅れがそのまま全体の完了に響きます。逆に言うと、「クリティカル上の1日遅れ=必ず全体1日遅れ」と無条件には言えない、というのが正確な理解です。

PERTの三点見積り:重みは4・合計6で割る

作業期間に不確実性があるとき、PERTでは3つの値を使います。

ここで扱うのは、基本情報技術者試験の計算で用いられる古典的PERTの近似式です(三点見積りには単純平均や三角分布など別の扱いもあり、すべての三点見積りがこの式になるわけではありません)。

  • 楽観値a:条件が良い場合に想定する短い所要期間
  • 最可能値m:最も起こりやすいと見積もる所要期間
  • 悲観値b:条件が悪い場合に想定する長い所要期間(a≦m≦bになっているか問題文で確認)

期待所要期間 te =(a + 4m + b)÷ 6

例題:楽観値4日、最可能値7日、悲観値16日なら?

te =(4 + 4×7 + 16)÷ 6 = 48 ÷ 6 = 8日

最可能値に重み4を付けて、重みの合計6で割る。3つを単純平均すると(4+7+16)÷3=9日ですが、ここで使う古典的PERT式では最可能値に重み4を付けるため、答えは8日です。

ばらつきも聞かれます。

標準偏差σ =(b − a)÷ 6、分散 = σ²

同じ例なら σ=(16−4)÷6=2日、分散=4日²。期待値8日は「必ず8日で終わる」という意味ではなく、不確実性込みの近似見積りです。経路全体では、期待所要期間は各作業の期待値の合計、分散は各作業期間が独立という仮定の下で各作業の分散の合計、標準偏差はその平方根です(標準偏差どうしを直接足さない)。作業期間に相関があれば分散は単純合計できず、複数経路が競合して変動でクリティカルパスが入れ替わる場合は、この一経路の計算だけでは全体の完了確率は厳密に求まりません。

コミュニケーションチャネル数:2人の組を数えるn(n−1)÷2

n人が全員相互に直接連絡し、2人の組ごとに双方向1本のチャネルを数えるなら、

チャネル数 = nC2 = n ×(n−1)÷ 2

例題:8人なら?

8 × 7 ÷ 2 = 28本

2人の組を選ぶ組合せnC2と同じ式で、確率の記事・バブルソートの記事でも登場した形です(次回のセキュリティ記事では共通鍵の本数として再登場します)。同じ2人の組を重複して数えず、AとBの間を双方向1本と数えるのが前提。A→BとB→Aを別々に数える有向チャネルならn(n−1)本になるので、数え方の指定を確認してください。

双方向で並べると、4人=6本、8人=28本、16人=120本。n人から2n人へ増やすと、チャネル数の倍率は2(2n−1)÷(n−1)。4倍を少し上回り、人数が大きくなるほど4倍に近づきます。「人が増えると連絡の手間が急に増える」の数学的な正体がこれです(ただし、全チャネルで常に同じ量の連絡が起きるわけではありません)。

EVM:計画・出来高・実コストを同じ物差しで比べる

進捗とコストをお金の単位でまとめて評価するのがEVMです。登場人物は4つ。

記号 名称 意味
PV Planned Value 基準日までに完了予定だった作業の予算価値
EV Earned Value 基準日までに実施済みと認定された作業の予算価値(部分完了の認定方法は進捗測定ルールに従う)
AC Actual Cost 基準日までに実際に発生したコスト
BAC Budget at Completion 完成時の総予算

いちばん大事なのは、EVは実際に支払った金額ではないこと。「基準日までに実施済みと認定された作業を、計画上の予算額で評価した価値」です(完全に終わった作業だけとは限らず、部分完了をどう出来高に認定するかは、採用する進捗測定方法に従います)。実際に払った額はAC——基準日までに実施した作業に対して実際に発生したコストです。さっき出てきた「消費工数≠完成した作業量」の区別を、お金の単位でやっているのがEVMだと考えると、つながりが見えやすいはずです。

差異と指数:引くのも割るのも「EVが主役」

指標 公式 良い状態 基準 悪い状態
SV EV − PV 正:出来高が計画より先行 0 負:計画より遅れ
CV EV − AC 正:コスト面で有利 0 負:予算超過傾向
SPI EV ÷ PV(PV>0のとき定義) 1超:計画より先行 1 1未満:計画より遅れ
CPI EV ÷ AC(AC>0のとき定義) 1超:コスト効率が有利 1 1未満:コスト効率が不利

覚え方はひとつだけ。差異はEVから引く、指数はEVを分子にする。SもCも、EVが先頭です。

例題:基準日時点でPV500万円、EV450万円、AC480万円なら?

SV = 450 − 500 = −50万円(計画より50万円分の出来高が不足)
CV = 450 − 480 = −30万円(実施済みと認定された作業の予算価値より、実コストが30万円多い)

SVは「遅延日数」ではない

SVの単位は円(や工数相当額)で、価値の差です。SV=−50万円は「50万円分の計画出来高が未達」であって、「50日遅れ」ではありません。SPI=0.9も「完了日が必ず10%遅れる」という意味ではありません。

もうひとつ大事な性質があります。ベースライン上の全作業を完了した時点では(PVがBACまで計上され、ベースライン変更を別に考えなければ)通常EV=PV=BACになるので、遅れて完了してもSVは0、SPIは1になります。つまりSVとSPIだけでは、最終的な遅延日数を表せません。

EVMから完成時コストを予測する

記号 意味
EAC 完成時総コスト見積り
ETC 残作業コスト見積り
VAC 完成時差異

どのEAC式を使うかは、今後の作業効率をどう仮定するかで決まります。

① 今後も現在のCPIが続くと仮定

EAC = BAC ÷ CPI(CPI>0)、ETC = EAC − AC、VAC = BAC − EAC
(この仮定の下では、EAC=AC+(BAC−EV)÷CPI と書いても同じ値になります)

例題:BAC1,000万円、EV400万円、AC500万円なら?

CPI = 400 ÷ 500 = 0.8
EAC = 1,000 ÷ 0.8 = 1,250万円
ETC = 1,250 − 500 = 750万円
VAC = 1,000 − 1,250 = −250万円(250万円の予算超過見込み)

② 残作業は当初予算どおりできると仮定

EAC = AC +(BAC − EV)

過去の超過は取り戻せないが、この先は計画どおり、という前提の式です。

③ コスト効率とスケジュール効率の両方が残作業に影響すると仮定

EAC = AC +(BAC − EV)÷(CPI × SPI)(CPI>0かつSPI>0)

このCPI×SPIを使う式は、コスト効率とスケジュール効率の両方が残作業コストに影響すると問題文で仮定された場合に使う予測モデルで、常に採用する唯一の式ではありません。

3本の式は「これからどうなると考えるか」の仮定違いなので、問題文に示された条件を確認して選んでください。

残作業に必要な効率(TCPI)も出ることがあります。完成予算BACを守るために残作業で必要なコスト効率は、

TCPI =(BAC − EV)÷(BAC − AC)(BACを完成時目標として維持し、BAC−AC>0の場合)

承認済みのEACを新しい目標にするなら分母を(EAC − AC)に替えます(EAC−AC>0の場合)。分母が0以下のときは、この式から通常の意味での必要効率は求められません。さっきの例なら(1,000−400)÷(1,000−500)=1.2。累積CPIが0.8である一方、BACを守るには残作業で1.2の効率が必要——目標達成に大幅な効率改善が要ることが数字から読み取れます。

工数超過率と進捗率

工数超過率は、問題文に別の定義がなければ代表的には、

(実績工数 − 計画工数)÷ 計画工数 × 100%

ただし「超過工数÷実績工数」など別定義が与えられることもあるので、問題文の定義を最優先で(計画工数>0であることも確認を)。

そして繰り返しになりますが、消費工数÷計画工数を無条件に進捗率にはできません。工数を多く消費していても、その工数に対応する成果が得られているとは限らないからです。進捗率は、完了基準・マイルストーン・重み付けなど、定められた進捗測定方法に基づいて評価します。EVMのEVが「認定された出来高の予算価値」で進捗を測るのも、同じ考え方です。

解く前の判定フロー

  1. 求めるものは工数・人数・期間・日程・差異・指数のどれか
  2. 人月の単純比例条件があるか確認
  3. 全体工数・完了済み工数・残工数を区別
  4. 投入率・兼務・教育期間・調整工数の有無を確認
  5. 整数人数が必要か、小数(FTE等)が許されるかと端数処理を確認
  6. 日程問題はネットワーク図に期間と依存関係を書く
  7. 前進計算でES・EF(合流は最大)、後退計算でLS・LF(分岐は最小)
  8. TF=LS−ES=LF−EFでクリティカルパスを確認
  9. EVMはPV・EV・AC・基準日を確認(EVがどの進捗測定ルールで認定された出来高かも確認)
  10. 差異はEVから引く、指数はEVが分子

10-2. SPI・CPI・EAC・TCPIの分母が正かを確認

  1. EACは問題文の効率仮定に合う式を選ぶ
  2. 最後に人・月・日・円・比率の単位を確認

代表的なミスまとめ

ミス 出てくる誤答 対策
完了済みを引かない 全工数÷人数の値 残工数を先に確認
消費工数を完成工数とみなす 残工数の過小評価 完了した作業かを確認
人数と期間を無条件に反比例させる 非現実的な期間 単純比例の条件を確認
要員数の端数を切り捨てる 期限に届かない人数 整数要員なら切り上げ
投入率を無視する 必要人数の過小評価 人数×期間×投入率
並行できる作業まで直列で足す 過大な完了日数(例の9日) 依存関係を図にする
短い経路を完了期間とする 過小な完了日数(例の5日) 開始→終了の最長経路
フロートの式の混同 余裕日数のズレ TF=LS−ES=LF−EF
クリティカルパスを1本と決めつける 同率の最長経路の見落とし 全経路を確認
PERTを単純平均 重み4を掛けない値(例の9日) (a+4m+b)÷6
PERT期待値を確定日と考える 不確実性の無視 標準偏差・分散も確認
チャネルの往復を2本と数える 2倍の値 双方向1本か有向かを確認
EVを実支出額と考える EVM全式が崩れる EVは認定された出来高の予算価値
EVを完全終了作業だけの価値と決めつける 部分完了の認定を無視した値 問題文・進捗測定ルールを確認
SPI・CPI・TCPIを分母0のまま計算 定義できない値 PV・AC・残予算が正か確認
SVを日数と解釈する 遅延日数の誤り SVの単位は価値
SV・CVの引く順が逆 符号が逆の値 どちらもEVから引く
CPI・SPIの分子の取り違え 指数が逆数 分子はどちらもEV
EACの前提を確認しない 完了予測のズレ 今後の効率仮定を確認
途中で丸める 最終値がズレる 丸めは最後の1回

仕上げに演習10問どうぞ

演習では、工数・日程計算・PERT・EVMなど、本記事に関連する計算を確認できます。この分野は問題文が長くなりがちなので、最初に「求めるもの」と「前提条件」を囲んでから、必要な数値だけを式に入れる練習をどうぞ。


今日のまとめ

  • 人月は作業量の単位(時間換算は問題文に従う)。単純比例の条件(分割可能・同一生産性・同一投入率など)を確認してから割り算する
  • 投入工数=人数×期間×プロジェクト投入率。整数人数で期限を守る最小人数なら端数は切り上げ
  • 残工数は「全体−完了済み」。ただし消費工数=完成した作業量とは限らない
  • クリティカルパスは、資源制約を考えない基本モデルでの開始→終了の最長経路。合流は最大値、分岐(後退計算)は最小値
  • TF=LS−ES=LF−EF。クリティカルパスは1本とは限らない
  • 古典的PERTは(a+4m+b)÷6、σ=(b−a)÷6。単純平均しない。独立な作業の経路分散は各分散の合計
  • 双方向チャネル数はn(n−1)÷2(2人の組を選ぶ組合せnC2と同じ式)
  • EVMの差異はEVから引く、指数はEVが分子(分母のPV・ACは正が前提)。EVは実支出額ではなく、認定された出来高の予算価値
  • SVは遅延日数ではなく価値の差。完了時にはSV=0に収束する
  • EACは今後の効率仮定(CPI継続/計画どおり/CPI×SPI)で式を選ぶ

最終回は「セキュリティの計算問題」。鍵の本数・総当たり・年間予想損失額・バックアップと、シリーズの道具を総動員する回です。

参考資料

  • IPA「基本情報技術者試験(レベル2)シラバス Ver.9.2」
  • Project Management Institute「The Standard for Earned Value Management」
  • U.S. Government Accountability Office「GAO Schedule Assessment Guide: Best Practices for Project Schedules」(GAO-16-89G)

本記事の例題は、基本情報技術者試験の出題範囲及び標準的なプロジェクトマネジメント手法を参考に、当サイトで独自に作成したものです。

関連する問題


コメント

タイトルとURLをコピーしました