人月外の神話

 ソフトウェアを開発するにおいて相変わらず「人月」が使われてる。
 しかし「このプロジェクトに2人アサインします」と言ったときに「経験者2人アサインします」と「素人2人アサインします」と「素人1人経験者1人アサインします」と全然意味が変わってくる。
 経験者でさえ程度レベルがあるからにして、所謂人月では計り知れない事はあまりに自明の事だ。

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))


 において、人と月は交換可能ではないと言われる通り、人という記号はあまりにも曖昧なもので計算式に代入できるほど数値化されるべきではない。
 とすれば、結果として計算の誤差を低下させるために「素人でも出来る」「ある程度のレベルでもできる」ような仕組みを形成して行かざるを得ない。
 開発において素人だとか素人同然の人材が役に立つことは希だが、少なくともプログラマの手を煩わせる必要がない仕事ならアサインできる。
 ……が、それでは駄目だ。1人の経験者に10人の素人がついたところでその人が2人いるのと同じくらいの仕事をこなすことはできないのは自明だし、結果として作業自体を切り分けたりする事で足を引っ張られる可能性の方が高い。要するにそうした「スキルを必要とする仕事をすることができない人間を割り当てられる仕事」自体を作り出すこと自体ができない。
 それなら、完全に「作業」で作れる事が自明なパートを何とかして増やすしかない。これは、ゲームならテストであるとか、現状のドキュメント化であるとか、事実のみを確認するパートである。あとは、エフェクトを簡易スクリプトで書くとか、アニメーションツールで作るとかでもいい。
 しかし、これさえ最低限の能力がないとできない。そう、結局「人と金と時間」がなけりゃ開発なんてできっこないのだ。
 ビジネスとして成り立つためには利益優先であって、そのために費用や期間を削るというのは当たり前に聞こえるのだが、今一度考えるべき当たり前の事がある筈なのだと思う。


 と、答えの出ないことを考えてみたけれど、普通の業務において例えば「営業+内勤の女性」で部署が構成されることが多いわけだが、こうした「内勤の女性(でなくてもいいけど)」の役割を担う人材をプロジェクトに1人置くわけにはいかないかな?
 電話とか提出書類とか、簡単なテストとか、感想を言うだけとか、そういう人で良いので増やせないものかな、とか考えた次第。能力は期待せずに、定時にさっさと帰っても構わないのだが「あえて開発に詳しくない人間がするパート」っているかもしれない、と考えてみた。