レガシーコードが負債な理由


バグバグなコードは、それだけでメンテに定常的な出費を産む。書き直せばそのコストはいらないのに。バグバグなコードはあらゆる危険性を産む。なまじモノがあるだけについコードを無条件に資産と見なしてしまいがちだが、実は怪しいコードは負債であると。
レガシーコード借金説 @ 2008年05月 @ ratio - rational - irrational @ IDM

ほぼ同意なんだけど、ただ、たとえバグがなくても、レガシーコードは負債であると思います。

大企業なんかでは、何十年も運用されているメインフレームがあって(*1)、そこには何十年前のCOBOLコードが今も動いているんですよね。これ、もう枯れ尽くしていて、別にバグなんかないんです。でも、それはやっぱり負債なんです。なぜならそれは変えることに多大なコストがかかるからです。

私は、自動化されたテストが必要な理由は、変化に強いシステムにするためだと思っています。外部環境の変化に対応できないコード、それこそが負債であり、経営の足かせであると思います。




(*1) 「レガシー」というとメインフレームのことだなとまず思ってしまう私はエンタープライズ脳?