ふと、「人月の神話」を、さらっと読み返してみようと考えた。コンピュータ関連書籍では、超有名な古典とも言える本。
まず読み直したのは、左の「ソフトウェア開発の神話」の方。「人月の神話」の原著訳と言って良い。1975年版とも言われる。
実は、ちょっと思い出がある。こちらの原著の方を学生の頃に、先生から「読みなさい」と言われた。2,3度だったかな。結局は、訳が出版されてしばらくして読んだ。
こちらが、今でも書店に並んでいる方。1995年版とも言われる。章としていくつか追加されているし、訳者が違う。ただし、従来の章の内容は、(訳文上の違いがあるが)内容的には同じ。
英語タイトルは1975年版でも"The Mythical Man-Month"であり、訳としては「人月の神話」に違和感はない。そうは言いながらも、個人的にちょっと引っかかったのが”人月の神話”という用語の使われ方。それが、今回再読してみるきっかけになった。
「人月の神話」では、ソフトウェアプログラム作成の作業量として、人月を用いることの危険性を明示している。ちなみに”人月”は、1975年版での訳語としては”延人数”。
ただし、以下のことを述べているし、留意すべきと考える。
・コストは人月に比例する
・ブルックスの法則:「遅れているソフトウェアプロジェクトへの要員追加はさらに遅らせるだけだ」
・人月に互換性がある場合として、コミュニケーション無しで作業できる場合がある
最後は分かりにくいかもしれない。本では麦刈りや綿摘みが該当するとして、プログラミングは該当しないとしている。互換性は、人月で見積り、人数を増やせば期間が短くなる事を指している。念のためだが、ここでのコミュニケーション無しとは、作業の途中でのコミュニケーションがなくても良いとのことで、事前準備や作業方法説明がなくても良い分野と言うことではない。
そもそも「人月の神話」では、見積りを否定してはいない。何かこの辺りが変に伝わり、見積り不要論とか見積もろうとしない連中がいるように思える。あるいは、見積りに対して(倍とかのレベルで)大きく違った場合の言い訳に使うとか、、、。
また、作業中のコミュニケーションを無くす、あるいは少なくできれば、人月の互換性を高めることができる。この辺りを、見積りとの差異を少なくできるポイントと考えればよいだろう。しかし、なかなかその考えに行こうとしない人が多すぎる。
アジャイル(特にスクラム系?)でも、見積りや進捗管理の実践は行われる。遅れている/遅れだした時の対応や、作業中でのコミュニケーションと人月互換性の関係は、当時と変わらないと考えるがどうだろうか、、、。