実際のところ、ハイテク企業を調べてみると、勝ち組と負け組みをつねに分けているものは一つしか見当たらない。それは「愚かさ」だ。成功する会社は、失敗する会社に比べて、愚かなことをしない。(p.15)致命的なミスがなければ生き残れるわけで。
SMS ソフトウェア企業が犯す最大の罪は何だと思う?
ジョエル・スポルスキ(JS) 製品を完全に書き直すことだな。
既存のコードは複雑で巨大でバグだらけだから、ゼロからやり直そう、ってやつよ。
SMS ほう、それのどこがいけないんだい?
JS それが真実だってことはまずないからさ。
コードは錆び付くようなものじゃない。
新しいコードは古いコードより優れているっていう考え方は、まったくバカげている。
古いコードは実際に使用され、テストも済んでいる。
そしてすでに多くのバグが見つかり、修正されている。
どこも悪いところはないのさ。
SMS なるほど。
じゃあどうしてプログラマたちは、よく管理職のオフィスに押しかけて、既存のコードベースは使い物にならないから書き直さなきゃだめだって主張するんだろう?
JS それはきっと、コードってのは書くよりも読むほうが難しいからだろうな。
プログラマは、不細工な関数があるとグチをこぼす。[...]
この関数を捨てて、ゼロから書き直すってことは、前述のような知識をすべて捨てることに等しい。
せっかく加えたバグフィックスと、数年分のプログラミング作業が台無しになるんだよ。