レガシーコード考

レガシーコードの定義を、必要な変更に対する変更容易性が低いコード、だとする。ここでレガシーコードをそもそも書かないためにはどうしたらいいかを明らかにするためにはどうしたらいいか。

レガシーコードがなぜ生まれるのか、は押さえておいたほうがいいだろう。そのうえで、そうならないようにすればいい、ということになる。

レガシーコードがなぜ生まれるのか。「品質を無視するから」という主張には賛同しかねる。僕は品質を無視する組織やエンジニアを見たことがない。品質を担保する方法についての引き出しが少ないとか、昔の状況や古いプロセスに囚われすぎているとか、時間とトレードオフしてしまっているとか、そういう例は多いが。

なにがしかの取り組みはしているのだが、それが十分な効果を生んでいないことが問題であり、その根本原因にリーチすることが大事だ。ここではコンテキストも固定できていないし、具体的な事例には触れないけど、

アジャイルのエンジニアリングメソッドを適用していないことが根本原因である、という結論は、ない。絶対にない。もしあるとすれば、それらを適用させない、できなくさせているなにかである。

そこをきちんと言語化し共有した上でなら、エンジニアリングメソッドの詳細(とそれを十分に理解するために必要な原則)を説いてもいいと思います。