【人月工数】について今さら聞きにくい人のために解説します!
お世話になっております。 食×IT 複合作家の内田です。今回はITの話なので、食のお話を楽しみにフォローいただいてる皆様には、ジャンルが違いすみません🙇♂️
今回は人月工数のお話です!
ITのお仕事をしていると、どこかの会社やエンジニアに作業依頼をするときに「人月工数」というキーワードがよく出てきます。
これ、よく出てくるキーワードだけど、実は、ぼんやりとしか理解してないんだよね・・。今更聞くのもなぁ~・・
もし、こんな感じの方いらっしゃいましたら、是非うちのブログを読んでいってください!
人月工数がなぜ必要なのか?
人月工数は、全然難しい話ではありません。考え方はいたってシンプル。でもすごく重要な話なんです。
人月工数はざっくり言うと「人の作業量」なんですが、具体的にどんなときに使うのか、少しずつお話していきます。
まず、仕事を依頼された場合「これ、いつまでに出来るもんなの?」・・なんて事を必ず確認されますよね。
そんなとき、例えば、これなら1か月くらいあれば完成しますとか、2か月かかります・・みたいな回答をすると思います。
まず最初はこのように、ざっくりどれくらいかかるか?考えるのですが、もう1つ考えなければいけない事があります。それは・・
何人で作業をやるか?なんです!
例えば、これくらいのボリュームの作業があったとします。
同じ1か月の作業量でも「1人でやって1か月かかる作業」と「2人でやって1か月かかる作業」では、作業量がまったく違う事はなんとなくイメージできると思います。
なので正しい作業量を出す為には「何人」で「どれくらいかかるか」を考えなければいけないのです。
人月工数の数え方
では、「何人で何か月かかる」をどう表現するかと言いますと。
例えば、1人で2か月作業をした場合ですが、これをざっくり、1か月単位で区切ってこのように表現します。
1人が合計2か月分作業を行って完了する作業量。
➔ 1人×2か月="2人/月"
└ 1か月あたり2人分の作業量で完成
今度は同じ能力の人が2人いたとして、この作業を、うまく分担したとします。そんなにうまく分担できなくない?という話はいったん無視して、作業量だけで考えます。
2人でやったから期間は短くなっていますが、作業量は1人でやった場合と同じです。なのでこの場合は、以下のようになります。
2人が合計1か月分働いた
➔ 2人×1か月="2人/月"
└ 1か月あたり2人分の作業量で完成
要は、この例の場合、作業を完了させる為には「1か月×2人分」のリソースが必要」という結論になるわけです。
工数の表現方法
ここからが本題になりますが、今回の「月に2人分のリソースが必要」はこんな感じで表現します。ちなみに読み方はこの場合「ににんげつ」 となります。
このように、人月工数は、目的を達成する為に、1か月あたり何人分の作業量が必要なのか?を表現するためのものなのです。
どんなときに人月工数を使うの?
人月工数の考え方は、受託開発や構築作業の依頼を受けたとき、作業費用を割り出すために、一番わかりやすい方法なのでよく使われています。
考え方はいたってシンプルで、要は作業量を割り出して、人が動いた時間だけお金をもらう仕組み。
これは会社によるので、例が難しいんですけど・・値段の相場はざっくり、こんな感じです。
ただ、時代によっても結構変わりますので、今はもう少し安くなっているかもしれません😭
SE(システムエンジニア)は設計や依頼者とのヒアリングがメインで、ときには作業もします。PG (プログラマー)は単純にSEに頼まれた作業をやるだけのポジションで想定されている場合もあります。
こんな場合はどんな見積もりになる?
では、以下のような場合、どんな風に見積もるかを相場をもとに考えてみましょう。
回答は以下の様になります。
まず、完了目途としては、1人で作業して半月くらいなので、工数は0.5人/月と仮定します。
今回は以下を参考に。相場の真中くらいで「1か月80万」で考えます。
人月工数と相場の値段を掛け算します。
よーし今回の見積もりは、ざっくり40万だ!
人月工数はこんな感じで見積もりを出します。どうでしょう人月工数のイメージは付きましたでしょうか?
人月工数のよくあるトラブル
このように人月工数は、見積など作業量の材料にはできますが、注意点として、必ず「納期」とは切り離して考えてください。
例えば、20人/月のものは、20人でやれば1か月で終わります・・にはなりません。
システムは「ある工程をクリアしたら、次に進む」みたいな感じで「工程」を積み上げていくので、全員が一斉に、並列作業をするなんて、できないんです。
要はこれって、完成に3分かかるカップ麺のお湯を、3人で注げば1分で終わるみたいな考え方なので、これをやってしまうと、大きなトラブルにつながるのでご注意ください。
あくまで人月工数は、作業量の目安をざっくり表現しているだけなので、納期については、工数とは別に、エンジニアと綿密にご相談しながら進める事をおすすめます。
さらに重要なポイントがもう1つ
ここまで、人月工数とは、何人で何時間かかるか?というお話しをさせていただきました。でも、今度は作業が何時間かかるか?をどうやって割り出してるか気になりませんか?
そう、この部分が一番の課題なんです!
過去に経験があって、毎回まったく同じ事をやるなら、工数を出すのは簡単です。
しかし、受託開発みたいに、作業内容がお客様ごとに毎回異なる場合、都度少ない情報から、作業ボリュームを割り出さなければいけません。
どの商談でも、初回はどうすればいいかなんて解りませんので、ざっくり「〇〇がやりたい!御社でできますか!見積もりください!」から大体始まります。
これだけ聞いても、何をどこまで開発すれば良いのか解らないので、作業量を割り出すのは困難です。
さて・・どうしたものか・・
対応方法の例
対応方法は、会社によって色々なやり方があるんですが、どれも一長一短があります。
いくつか例をあげます。
要件定義をしてから工数を割り出す
要件定義をする方法は一番よく使われますし、受注後に発生するトラブルのリスクも少ないのですが、この方法は詳細を詰めるので、1つの案件にものすごく時間がかかってしまうデメリットがあります。
営業の人達は、商談をクローズする為に、すごくスピード感を求められます。でも、この方法はものすごい時間をかけたのに「ロストになっちゃいました!」なんて事も結構あるんで・・営業の方には辛いかもしれません🤔
多めに工数を確保して高めに見積もる
この方法は大きい会社が、スピード感重視で勝負するときに使います。高く見えるので、値引きを要求されるかもしれませんが、スピード面やコスト面での問題が起こりくいのが、特徴です。
ただ、一番のリスクは、要件が詰められてないまま案件が進む傾向になりやすい事です。もし受注後、プロジェクトを進めていた時に、お客様のやりたい事が「実現不可」である事が判明したらどうなってしまうでしょう?
これは要件が詰められてないまま進むと、普通にあり得る話です。
でも、そんな状況でも、お金をもらってるので後戻りができません。どうリカバリするかを常に問われる事でしょう。こうなるとお客様はめっちゃ怒ります。でも無茶を言われながらも、折衷案を交渉し続けるしかないです残念ながら・・😭
ノリと直感でざっくりと見積もる
経験則の直感と勢いで人月工数を割り出す。こういうやり方は確かに存在します。一見ふざけてるように聞こえますが、百戦錬磨の方は経験を活かして、これを普通にやってのけます。
でも・・正直そんな人、あんまりいないと思った方が良いでしょう。
これは「経験」という根拠あっての事。根拠のない工数計算は、赤字やトラブルが次から次へと続出しますので注意しましょう。
失敗から学ぶのも大事ですけどね・・
最後に
今回は人月工数についてお話をしましたが、いかがでしたでしょう?当たり前の話ですが、商売は人が動いた分だけお金を取らないと赤字です。
でも、こんな当たり前の話でも、そう簡単にはいかないのが現状なんです・・。
現場に出てみると、お客様が気に入らない、決めるべき事が決まらない等、様々な「障壁」が潜んでます。
やってみたら、想定していた人月工数をはるかに超える案件ばかり請け負って、倒産してしまった企業を私はたくさん知っています。
仕事はたくさんあるのに、受ければ受けるほど赤字になって、最後倒産なんて怖い話もありますので、人月工数はとても重要なのです!
以上、人月工数について解説させていただきました!
IT業界で学んだお役立ち情報は、こちらのマガジンにまとめていきます!
現在こちらの別ブログ(よっしーTECH)から、IT業界に関するお役立ち記事をエキスポート > リライトしながら、移行中ですので今後ともよろしくお願いいたします✨