【工数7問】相性の良い2つのテクニック(FE計算シリーズ)
工数は必ず1問出る印象。とはいえ「人月」なんて特殊な単位にびっくり。
要は「人月とは、1人でやったら何か月かかるか」という意味。
1人月なら1人で1ヶ月。2人月なら、1人で2ヶ月・2人なら1ヶ月の工数(作業量)と解釈します。
要員数・期間を算出する問題がメインで、作業効率・進捗遅れへの要員追加などを取り入れて難易度を引き上げています。
2つのテクニックと相性が良いです。
それは始めましょう!
人数の算出 | 人月 ÷ 月 = 人
正答はエ。「200人月」と「10か月」から「~人」を作ればOK。
工数配分[%]を工数[人月]、期間配分[%]を期間[月]に具体化します。
よって「ピーク時の要員数」は22人で、正答はエ。
慎重な方は100%になるか確認してるでしょう(16+33+42+0=100、20+30+40+10=100)。私と同じですね。
人数の算出(後付けヒッカケあり)
正答はイ。
表右の「プログラム1本当たりのコーディング所要工数(人日)」の[人日]は実は[人日/本]ですね。
「プログラム本数」を掛け算して、工数[人日]が計算できそうです。>>単位に注目して立式するNote<<
全工数は、 95[人日] (= 20 × 1 + 10 × 3 + 5 × 9)。
とはいえ、簡単な問題には「ヒッカケ」を仕掛けて正答率を下げるのが出題者。
問題文より「95日」で完了させたいので、95[人日]÷95[日]=1[人]。これは勇み足(そもそも1人で開発って)。
問題文の趣旨より「コーディング工数の、8倍の工数の設計とテストが必要」とのこと。95[人日]×8=760[人日]。
よって全工数は、855[人日]( =95+760)。えらい大きな数になりました。
人数は、855[人日]÷95[日]=8[人]。
増員の計算(作業効率を含む)
正答はイ。
「88人月」や「10名」「1~5月」など情報が多いです。
残り工数[人月]を計算し、残り工数[人月]/3[月]とすれば「要員数」が計算できそうと見通します。なお3ヶ月は、問題文から6, 7, 8月と数えました。
問題文より
全工数は88人月
1~5月までに40人月
以上より、残り工数は48 (=88-40)人月。
ここで、48[人月]/3[月] = 16[人]は早とちり。追加要員なので元々の10名を引きます。しかし16-10=6[人]追加も残念ながら不正解です。
「作業効率」を考えてみます。
問題文より、「1~5月」の5ヶ月間で「40人月」「10名」で。
5ヶ月10人なら50人月の工数が進むはずが、40人月。40/50=0.8の作業効率。
1~5月の5ヶ月で、10名(効率0.8)で、5[月]×10[人]×0.8=40[人月]が実情と計算します。
次のために式を変えると、10[人]=40[人月]÷5[月]÷0.8。これで人数を、工数・期間・作業効率から計算できるようになりました。
では残り工数48[人月]を3[月]で終わらせる人数を見積もります。
48[月]÷3[月]÷0.8 = 20[人]。
元々の作業人数は10名なので、追加要員は10名 (=20-10)。
追加要員の計算 | 方程式も便利
正答はウ。
「10人」「0.5k ステップ/人日」「30日」から、工数を計算してみます。10[人] × 0.5k [ステップ/人日] × 30[日] = 150 kステップ。
「10日」で30kステップ終了。10 × 0.5k × 10 = 50kを考えると作業効率が予定より悪かったようですね。
今回は公式的に計算するだけでなく、方程式でも解いてみます。
実際の作業効率を計算してみます。
30kステップ ÷ 10日 ÷ 10人 = 0.3k ステップ/人日。
方程式でも良いですよ。
$$
10人 × x kステップ/人日 × 10日 = 30 kステップ\\
x kステップ/人日 = 30 kステップ ÷ 10人 ÷ 10日\\
x kステップ/人日 = 0.3
$$
最後に残り20日で120kステップ(= 150 - 30)を開発する人数を計算します。
120 kステップ ÷ 20日 ÷ 0.3kステップ/人日 = 20 人
方程式でも良いですよ。
$$
x人 × 0.3 kステップ/人日 × 20日 = 120 kステップ\\
x人 = 120 kステップ ÷ 0.3 kステップ/人日 ÷ 20日\\
x人 = 20人
$$
20人必要なので、追加要員は10人(= 20 -10)。
「みはじの公式」のように「道のり = 時間 × 速さ」「速さ = 道のり ÷ 時間」としても良いですが、式がイチイチ変わるのがウザったい方もいらっしゃるでしょう。
方程式であれば、「道のり = 時間 × 速さ」だけ知っておいて、「x = 時間 っ× 速さ」「道のり = 時間 × x」と式の形を変えずに立式して解けます。
進捗度の計算 | 各工程での比率と全体での比率
正答はウ。
まず「プログラミング段階」の途中なので、少なくとも基本設計・詳細設計・プログラム設計までは終了。0.08 + 0.16 + 0.20 = 0.44 (44%)は進捗しています。
あとはプログラミング段階をどれぐらい完了しているか。
「3000本のうち1200本が完成」しているので、1200/3000 = 0.4 (40%)。プログラミングの工数比率は0.25 (25 %)なので、0.25 × 0.4 = 0.1 (10%)が全体に対する進捗度。
したがって、0.44 + 0.1 = 0.54 (54%)。
どこを全体とした比率なのかを読み取る必要がありましたね。
モデル計算 | 指数計算になれるチャンス
正答はイ。
工数に4096を代人して考えます。
1/3乗するので、4096が何かの3乗だったら良いなと思います。2の10乗が1024なので。
$$
4096 = 2^{10} \times 2^{2} = 2^{12}
$$
12は3の倍数なので助かりました。
なお「2の何条」を最初に考えたのは勘。なぜならITって2進数が大好きですからね。また、4096がいかにも、1024から作れそうとも思えました。
分からなければ、4096を3や2で割る、を試せば良いです。何事もやってみないと糸口は見えません。
数式に代入して変形していきます。
$$
2.5 \times 4096^{1/3}\\
=2.5 \times (2^{12})^{1/3} \\
=2.5 \times 2^4 \\
=2.5 \times 16 = 40
$$
期間の計算(作業効率を人数で表現)
正答はエ。
[人月]÷[人]=[月]を、増員前と増員後で比較する問題です。
特殊なのは「上級技術者は、初級技術者に比べて、プログラム作成・単体テストにおいて 2倍の生産」を数値として表す点。
初級技術者1人を0.5人として計算に入れるとうまくいきます。
13 - 9 = 4か月の短縮でした。
なお、私は上級技術者2人を4人、初級技術者1人は1人のままで計算して、選択肢の解答が得られなくて困りました。問題文に「初級技術者は半分の生産性」と書かれていたら、0.5の線でいけるのにと思っちゃいました。
工数の計算(FPから開発工数を)
正答はエ。
なんか色んな情報があってこんがらがりますが、箇条書きなどで整理します。
開発工程:500FP、生産性は10FP/人月
導入&教育:10[人月]
管理:(開発+導入&教育)×0.1[人月]
開発工数は 500FP ÷ 10FP/人月 = 50[人月]。単位に注目すると分かるかもです。>>単位に注目して立式するNote<<
よって管理工数は、(50 + 10)×0.1 = 6[人月]。
したがって合計して、50 + 10 + 6 = 66[人月]。
番外 | ファンクションポイント(FP)
FPは工数を見積もる手法の1つ。
開発規模(行数など)に、更に開発者の技能などの「補正係数(重み付け係数)」を掛け算して、総工数を見積もります。
せっかくなので紹介しておきます。
正答はア。
>>数値表は掛けて足してみるNote<< の通り、とりあえず掛けて足してから考えてみましょう。
ただし、「全体的な補正係数は0.75とする」より、24 × 0.75 = 18。正答はア。
まとめ | 2つの解法と相性良かった
お疲れ様でした。
工数「人月」を、何人で何か月かかるかを常に考えて解けば大丈夫です。
進捗率・増員のバリエーションにも対応できるように、復習してくださいね。
また、>>単位に注目して立式するNote<< や >>数値表は掛けて足してみるNote<< の解法が相性良かったので、気が向いたら覗いてみてくださいね。
では、またご縁があったらお会いしましょう。
\力試しは修了試験で!4回分の解説です/
p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ
この記事が参加している募集
学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ