人月計算は人を惑わす

2020年12月21日

人月計算とは、見積りを行うのに よく使われている計算方法で、
「人工(にんく)」などとも言います。

ウェブサイト制作や システム開発で よく使われていますが、
じつは これらとは最も相性が悪い計算方法です。

フレデリック・ブルックス氏の「人月の神話」が、
約40年前ぐらいから 出ていたように、
この時代から既に言われていた事です。

「人月の神話」では主に
各々の能力の差を 考慮されていないと言われていますが、
ならば 能力を持つ人を集めればよいかというと、
そのような事は ありません。

プログラミングには知恵が必要

プログラミングやコーディングは、
100人いれば100のプログラムが出来上がると言われるほどに
自由度が高く、同じ出力結果でも 出来上がるコードに差が出ます。
場合によっては 要件を満たすためだけに作られたコードは、
他の人が解読不能になる可能性もあります。

また、知識だけでなく、解決法を考える「知恵」が必要になります。
仕様通りに コードを完成させろと言われても、
実際は 仕様書に正解のコードが書かれていて、
それを書き写すだけという 単純作業ではなく、
仕様書の動きを実現するコードを 自ら考えなくてはならないのです。
人月計算では、これらの事も考慮されていないのです。

見積りが可能な状況

見積りが可能になる状況は、行うべき作業が 判明している場合です。
例えばプログラミングであれば、書くべきコードが わかっていて、
それの打ち込みが終わるまでの時間が
どれだけかかるかのなら 見積りは可能でしょう。

仕様をざっくり見た時点で 見積りを求められる事が多いようですが、
その時点で正確な見積りを出すには、
瞬時に 書くべきコードが 頭の中で生成されている必要があります。

また、作業自体も 必ずしも うまくいくとは限らず、
テストやデバッグの作業が求められたり、
PCが突然不調になるなど、イレギュラーが出てくる可能性があります。
そのうえで正確な見積りを行うのは、
もはや預言という言葉が ふさわしい状況です。
デジタルの世界から オカルトの世界になるのです。

正確な見積りが可能な状況は、ある程度 作業が進んでからです。
案件の整理時点で 見積りを行うのではなく、
そもそも見積りよりも、納期を定めたほうが現実的でしょう。
それならば、納期に合わせて 作業内容を考える事ができます。

見積りありきの作業の問題

逆に 見積りがしやすいように、
作業の一定化を行ってしまうと、どうでしょうか。
もしそれを行った場合は、それ以上は望めません。

例えば ウェブサイト制作の効率化を図るために、
テンプレートを使うというのは どうでしょうか。
テンプレートを使えば あらかじめ作られたものを改造するだけなので、
作業時間の一定化は 図れるかもしれません。

ただし、それだと日進月歩と言われるIT技術の世界から、
おいてきぼりを食らう事になります。
特にHTMLにおいては、かなり早いペースで進歩が進んでおり、
CSSも より効率のよいものに進歩しています。
テンプレートなどに頼るよりも、
むしろ フルスクラッチで作ったほうが早い場合もあります。

テンプレートなどに頼っていると、
テンプレートに気を使いながら制作をする事になるため、
自由が利きにくかったり、テンプレートの書式に合わせて
DOM要素も組まなければ ならなくなるため、
効率が悪く冗長なコードに なりがちです。

見積りは しやすいという魔力に囚われ、
より効率のよい方法を模索する事を見失い、
この方法が正しいと 思い込んで、すっと同じ方法で続けてしまうのです。

人月計算で納期を決定する危険

人月(人工)でスケジュールを立てるのは、とんでもなく危険な行為です。

作業員は、スケジュールを守るために 早く作業を行う事だけを考え、
新しい技術に着手する機会を失うばかりか、
作業員の負担を増加させる要因にもなります。

特に顧客に商品を いち早く提供し、次の案件に着手しなければ、
経営が成り立たないと言うような法人であれば、
IT業界からの撤退も 考えたほうがいいでしょう。

ウェブサイト制作やプログラミングは、決して安売り出来るものではなく、
様々なイレギュラーや、知恵を絞る事も考えたうえで、
余裕を持った見積りと、それなりの利益の回収が必要となります。

形がないものだからと、安く買い叩かれる市場になると、
しっかりとした物を作っている企業に 依頼する顧客もいなくなり、
古ぼけたり、穴だらけのコンテンツばかりの業界に なってしまいます。
業界全体を苛める ダンピング行為に等しいので、
技術やアイデアの安売りは、してはいけないのです。

Pocket