デスマーチ(2)

必然的にデスマーチに陥るという状況は当然ある。仮に、Bjarne StroustrupKnuthAlan Kay級のプログラマを100人連れてきたところで、やっぱりどうにもならない状況というのは存在するだろう。


いま、ソフトウェア開発を、本質的な部分と非本質的な部分にわけるとする。非本質的な部分とは、たとえば、上層部や他のセクションとの連携が取れていないだとか、前任者がまともなドキュメントを起こさずに退社してしまっただとか、営業マンが無理なスケジュールで仕事を取ってくるだとかだ。そういうのは現場作業員の個人的な努力ではどうにもならない部分だ。


現場作業員がいくらそういった部分についてあれやこれや考えを巡らしたところで、自分ひとりの力ではどうにもならない。自分の力でどうにもならないことを考えても、それは考えるだけ時間の無駄というものだ。


たいていのプロジェクトにおいて、デスマーチに至った原因は自明なのだ。よほどの馬鹿でない限りは、そこに居合わせれば誰だって何故そんな状況に陥ったのかぐらいはわかる。どうやれば回避できるかもわかる。だがしかし不運なことに、現場で働く人たちには、それを回避するのに必要な権限と改善のための時間が与えられていない。


現場で作業する者たちに出来ることはと言えば、いまある状況のなかで最善を尽くすことだけだ。私は自身、プログラマだから、プログラマの視点から、どうやればプログラマとして最善を尽くせるかを真っ先に考えてしまう。いくら現場に居るプログラマが頑張ったところでプロジェクトとしてはどうにもならないとしても。