作成日 2016/4/23
最終更新日 2016/4/23

プロジェクトマネージャH28春 問10の解説

 プロジェクトマネージャH28春 問10の解説をします。


大項目:プロジェクトの計画
小項目:資源の見積り(たぶん)

1.問題
2.解説


1.問題

 社員が週に40時間働くソフトウェア会社がある。この会社が,1人で開発すると440人時のプログラム開発を引き受けた。開発コストを次の条件で見積もるとき,10人のチームで開発する場合のコストは,1人で開発する場合のコストの約何倍になるか。


〔条件〕
(1)10人のチームでは,コミュニケーションをとるための工数が余分に発生する。
(2)コミュニケーションはチームのメンバが総当たりでとり,その工数は2人1組の組合せごとに週当たり4人時(1人につき2時間)である。
(3)社員の週当たりコストは社員間で差が無い。
(4)(1)〜(3)以外の条件は無視できる。


ア 1.2   イ 1.5   ウ 1.8   エ 2.1
このページのトップへ

2.解説

 まず、だるまが普通なやり方だと思った方法で解きます。

◆普通の解き方(注意:いまいちな(厳密に言うと間違っている)箇所があります)
 (1)まずは、コミュニケーションが1週間でどれくらいの工数になるのかを計算します。
 社員が10人の場合、組合せが何通りあるか?ですが、これは、
  (10 × 10 - 10 ) ÷ 2 = 45[パターン]
 になりますから、
  45[パターン] × 4[人時] = 180[人時]
 となります。

 (2)次に、1週間あたり、どれくらいの作業量をこなせるかを計算します。
 問題文では、「社員が週に40時間働く」、「10人」と言っているので、
  40[時] × 10[人] - 180[人時] = 220[人時]
 となります。

 (3)そうしたら、「1人で開発すると440人時のプログラム開発を引き受けた」を先のほどの220[人時]で割って、作業期間を出します。
  440[人時] ÷ 220[人時] = 2[週]

 (4)最後に、「社員が週に40時間働く」、「10人」、そして上記の2[週]を掛けると、
  40[時] × 10[人] × 2[週] = 800[人時]
 となり、
  800[人時] ÷ 440[人時] = 1.81...
 なので、答えは「ウ」になります。

◆もう少し、ちゃんとした解き方(単位をそろえる)
上の回答は、厳密には(数学的には)駄目です。具体的には、単位がそろっていない。 ということで、単位をちゃんと合わせたのが以下になります。
 (1)まずは、コミュニケーションが1週間でどれくらいの工数になるのかを計算します。
 社員が10人の場合、組合せが何通りあるか?ですが、これは、
  (10 × 10 - 10 ) ÷ 2 = 45[パターン]
 になりますから、
  45[パターン] × 4[人時/(パターン・週)] = 180[人時/週]
 となります。

 (2)次に、1週間あたり、どれくらいの作業量をこなせるかを計算します。
 問題文では、「社員が週に40時間働く」、「10人」と言っているので、
  40[時/週] × 10[人] - 180[人時/週] = 220[人時/週]
 となります。

 (3)そうしたら、「1人で開発すると440人時のプログラム開発を引き受けた」を先のほどの220[人時/週]で割って、作業期間を出します。
  440[人時] ÷ 220[人時/週] = 2[週]

 (4)最後に、「社員が週に40時間働く」、「10人」、そして上記の2[週]を掛けると、
  40[時/週] × 10[人] × 2[週] = 800[人時]
 となり、
  800[人時] ÷ 440[人時] = 1.81...
 なので、答えは「ウ」になります。

 情報処理試験は、答えが合っていれば、良いんじゃないの?と思うかもしれませんが。。。単位がそろってないと間違えやすくなりますので、お勧めしません。

◆まだある問題箇所の説明
 (1)まずは、コミュニケーションが1週間でどれくらいの工数になるのかを計算します。
 社員が10人の場合、組合せが何通りあるか?ですが、これは、
  (10 × 10 - 10 ) ÷ 2 = 45[パターン]
 になりますから、
に出てくる数式「(10 × 10 - 10 ) ÷ 2」はどうやって出したのかが、分かりませんね。
これも、いきなり出しているから、厳密には(数学的には)駄目です。
ということで、説明します。
こういうのは、図や表を使った方が速いです。 ということで、10人居るから、Aさん、Bさん、Cさん、Dさん、Eさん、Fさん、Gさん、Hさん、Iさん、Jさんが居るとしよう。
ABCDEFGHIJ
A
B
C
D
E
F
G
H
I
J
という感じで表を書くんです。 で、まず、自分自身にはコミュニケーションをとることは無いから、
ABCDEFGHIJ
A×
B×
C×
D×
E×
F×
G×
H×
I×
J×
とします。この時点で、残りは、
 10 × 10 - 10 = 90
となります。 見れば分かるけど、A行B列とB行A列は両方とも、AさんとBさんの間のコミュニケーションを意味しているので、片方は余計です。 ということで、左下を削除します(右上を削除しても良い)。
ABCDEFGHIJ
A×
B××
C×××
D××××
E×××××
F××××××
G×××××××
H××××××××
I×××××××××
J××××××××××
ちょうど、残っていた部分の半分を消したから、
 90 ÷ 2 = 45です。
数式としては、
 (10 × 10 - 10 ) ÷ 2
です。

◆さらにまだある問題箇所の説明
 (2)次に、1週間あたり、どれくらいの作業量をこなせるかを計算します。
 問題文では、「社員が週に40時間働く」、「10人」と言っているので、
  40[時/週] × 10[人] - 180[人時/週] = 220[人時/週]
 となります。

 (3)そうしたら、「1人で開発すると440人時のプログラム開発を引き受けた」を先のほどの220[人時/週]で割って、作業期間を出します。
  440[人時] ÷ 220[人時/週] = 2[週]

 (4)最後に、「社員が週に40時間働く」、「10人」、そして上記の2[週]を掛けると、
  40[時/週] × 10[人] × 2[週] = 800[人時]
 となり、
  800[人時] ÷ 440[人時] = 1.81...
 なので、答えは「ウ」になります。
この方法は、どうやって分かったのか?
これが分からないと、解法を暗記しないといけなくなります。
微妙にやり方が違いますが、解説します。


以下の式は、すぐに出ます。
 
440[人時] + コミュニケーション工数[人時]

440[人時]

「コミュニケーション工数[人時]」の部分を式変形すると、
 
440[人時] + 180[人時/週] × かかった時間[週]

440[人時]

になります。
そうすると、今度は、「かかった時間[週]」の部分を何とかする必要があります。

 かかった時間[週] = 440[人時] ÷ ( 40[時/週] × 10[人] ) ÷ 作業効率

となるので、これを計算するには、作業効率を計算する必要があります(※作業効率は、0 < 作業効率 ≦ 1の数値で、単位はありません)。
1週間で、180[時]とられるのだから、

 作業効率 = ( 40[時/週] × 10[人] × 1[週] - 180[人時]) ÷ ( 40[時/週] × 10[人] × 1[週] )

となるから、これを、かかった時間[週] = の式にぶち込むと、

 かかった時間[週] = 440[人時] ÷ ( 40[時/週] × 10[人] ) ÷ { ( 40[時/週] × 10[人] × 1[週] - 180[人時]) ÷ ( 40[時/週] × 10[人] × 1[週] ) }

となるね。計算しやすいように、分数で書くと、
 かかった時間[週] =
440[人時] × ( 40[時/週] × 10[人] × 1[週] )

( 40[時/週] × 10[人] ) × ( 40[時/週] × 10[人] × 1[週] - 180[人時])
となり、計算すると、
             =
440[人時] × 1[週]

220[人時]

             = 2[週]
ここまで来たら、後もう少しです。
440[人時] + 180[人時/週] × かかった時間[週]

440[人時]

の式に、かかった時間[週]を代入して、計算しましょう。すると、
 =
440[人時] + 180[人時/週] × 2[週]

440[人時]

 =
440[人時] + 360[人時]

440[人時]

 =
800[人時]

440[人時]

 ≒1.8

なので、答えは「ウ」です。

◆さらに、さらにまだある問題箇所の説明
作業効率が
 作業効率 = ( 40[時/週] × 10[人] × 1[週] - 180[人時]) ÷ ( 40[時/週] × 10[人] × 1[週] )
とあるけど、

 作業効率 = ( 40[時/週] × 10[人] × 1[週]) ÷ ( 40[時/週] × 10[人] × 1[週] + 180[人時])

にならないの?と疑問に思った方へ説明します。
結論を言うと、ならないです。
この式は、

 作業効率 = 1週間で進んだ作業工数[人時] ÷ 1週間で実際に働いた工数[人時]

です。

なので、÷の後ろの「1週間で実際に働いた工数[人時]」は、「( 40[時/週] × 10[人] × 1[週] )」以外に無く、
そして、÷の前の「1週間で進んだ作業工数[人時]」は、「( 40[時/週] × 10[人] × 1[週] - 180[人時])」以外にありえません。

◆最後に、思ったこと
いや、これ、難しいですね。
使用する数学、あるいは、算数に難しいものはありませんが、式を立てるのが難しいです。
それでも、「公式を導き出す」の「3.図やグラフを描く」や「1.単位に着目する」でミスはぐっと減らせる様です。
Prev Up Next  Top
このページのトップへ


このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。