歴史は繰り返す

或るソフトウェア開発の歴史。(これはフィクションです)

  1. ソフトウェア製品を開発する。
  2. 長年に渡って機能拡張、仕様追加を繰り返し、充分な動作実績を獲得する。
  3. やがて綺麗なソースコードの構成は崩れ、メンテナンスが難しくなる。
  4. 経験と実績を生かして、今までの問題を全て解決した新しいソフトウェアを新規開発することに決まる。
  5. しかし、昔のソフトを参考に作っているので、だんだんと仕様・設計が似てくる。
  6. 結局、出来上がったものは昔のソフトウェアと同じ。それどころか、以前のソフトでは使えていた機能が無くなったり変わっているのでユーザからクレームを受けるハメになる。新規開発なので品質も安定せず、「昔のソフトの方が使いやすかった」等と酷評される。

同じ人が同じ思考で同じように作る限り、出来上がるものも同じになってしまうのは当然の帰結でしょう。当たり前のことですね。酷い場合だと、開発者の世代が入れ替わっているので昔のノウハウが生かされず、最終品質はかえって低下したりします。これでは開発費の無駄遣いと言われても仕方ありません。困ったことです。(繰り返しますが、これはフィクションです。念の為)

関連:

Joel on Software

Joel on Software

「第24章 あなたが絶対にすべきでないこと」より引用
「コードを捨ててスクラッチからやり直すとき、あなたはそういう知識のすべてを捨てている。それら、蓄積されたすべてのバグフィックスを。何年にもわたるプログラマの作業を」

はじめからやり直したい症候群(結城浩

http://www.hyuki.com/kokoro/#hajime