「人月」という考え方はもう古い?! 名著に学ぶ、ソフトウェア開発で炎上する理由

Danger of nuclear war illustration with multiple explosions

あなたは本当に学んでいますか?

アニメゲーム漫画業界で頻出する言葉があります。それは「人月」。これは主にソフトウェア開発の現場で使われる言葉で、開発の工数を表現するために作られた言葉です。「1人の人間が1月の時間をかけてこなせる仕事量」を意味します。使い方の例としては「人月いくらですか?」という言い方をする事が多く、この場合には「1人分の月間の人件費はいくらですか」という意味があります。なぜ「人月」という言い方をするのでしょうか。人と月、すなわち「開発する人数」と「開発する期間」は互換性があるという前提があるからです。すなわち、20人月の仕事量は、20人のエンジニアが一ヶ月ずつ働くのも、1人のエンジニアが20ヶ月働くのも同じなのです。こうした前提に立ち、ソフトウェアでどのくらいの人数のエンジニアを用意するのか、開発にどのくらいの期間をかけるのかをカウントする単位として「人月」という言葉が使われています。こうした「人月」の考え方は非現実的なものだ、と批判した有名な本があります。「人月の神話」という本です。

51D6CB07Y5L._SX347_BO1,204,203,200_

「人月の神話」フレデリック・P・ブルックス Jr.

この本は、人と月が等価交換ではなく、人が増えて「組織」になった際に生じてくるコミュニケーションの齟齬などによるロスから、組織的にプロジェクトを回すと当初予定していたよりも必ず完成が遅くなってしまうという「ソフトウェア開発の本質的な困難さ」について述べています。また、プロジェクトが遅延した状態で、火消しのために要因を追加したとしても、要員が増えたことよって新たなロスが生じてしまうため結果として更に遅延してしまうこともある、という事も述べられています。

AdobeStock_92423234

コニュニケーションロスは必ず発生します

弊社はアニメゲーム漫画業界に専門特化した営業代行をしていますが、経営者の方からプログラマー外注先を直ぐに探してください!炎上してしまいました!と相談を受ける機会は本当に多いです。ゲームのプログラミングで思ったより制作期間が長くなってしまい、人員補充の必要が出て来た、という様な相談が多いのです。こうしたケースもやはり、全てではないにせよこの「人月の神話」に指摘されている問題が当てはまる場合が多いと言えそうです。

業界では当たり前の様に「人月」というカウント方法が採用されていますが、こうした考え方自体に問題があるとすればどうでしょうか。私はエンジニアでなければプログラミングの経験もありませんが、経営者の方は口を揃えてこう言います、「出来るエンジニアは少数だし、その人の生産力に頼るケースが非常に多い」と。経験年数が少なく、教えながらの仕事になるエンジニアが複数人いるよりも、現場を統括出来て、周囲を教育できて、仕事の速いエンジニアが1人いるほうが余程仕事が早い、というのは事実です。

The gear which died in rust

その考え方自体に問題はありませんか?

営業代行として多くの会社にプログラミングの協力会社を紹介しますが、経営者は全員がプログラマー出身で現場のことを全て把握しているとは限りません。もちろん、最低限の基礎知識は勉強している人が多いでしょう。しかし、現場において何が作業のボトルネックになり、結果としてどのくらいの遅延が発生し、それがどの程度の経営的なロスに繋がっているか。そこまで考えられる人はそう多くありません。その影響によりプロジェクトが1月長引いてしまっただけでも、もともとのエンジニアと合流したエンジニアの1人月分がのしかかってくる事になり、損害額は数百万円になってしまします。会社を紹介するときに受けるリクエストと言えば「Unityで経験年数3年以上の人が3人くらい欲しい。人月は70万円くらいで」くらいのファジーさである事が殆どです。仮にこのリクエストで会社を紹介したとしても、その人員が会社の中で有効に機能するかどうかは分かりません。ただでさえ外部から来たエンジニアで、仕事の仕方の違いや情報共有のために新しい環境に適応するのには時間がかかるのです。場合によっては外注先を探すのではなく、もともとの人員で処理をした方が早くリーズナブルに済むかも知れません。

弊社ビ・ハイアは、業界の開発会社の紹介については日本一のネットワークがあります。また、会社の紹介については、ケースにもよりますが無料で対応出来る場合も多いです。エンジニアの例で言えば、Unityの人数の多い会社を紹介することも、実力のあるベテランのいる会社を紹介する事も、会社の紹介ではなくて制作工数の軽減出来るゲームエンジンの紹介をすることも出来ます。しかし、本当にそれが会社に必要なのか、まずは考えて頂きたいと思います。全ての営業について言えることですが、目的意識の明確化こそが第一に着手すべき事です。エンジニアの紹介の例で言えば、現場のエンジニアのリーダーとある程度コミュニケーションをして、自分でも勉強を今以上にすることで全く違った結果になるかも知れません。業界の経営者の仕事が少しでもはかどればと思い、このコラムを書きました。

"Find your purpose" appearing behind torn brown paper.

目的意識が一番大切です