ソフトウェアの世界において、ソースコードってのは劣化するものです。
機能の追加改修、バージョンアップなどによって。
技術負債とかそんなことで呼ばれることも多い。
なんだけど、それはもう仕方ないというか。
開発者以外はそんなの見えていないから、どんどん機能の追加欲求は来る。
納期の都合や影響範囲の都合上、仕方なくあまり綺麗じゃない書き方になる。
じゃあどうすればいいか。
新規開発チームとメンテナンスチームに分けるか、定期的にリファクタリング期を設けるしか無いと思うのですよね。
例えばクラスAにとある処理Xがあったとします。
で、ほぼ同じ処理をクラスBでも実装したくなった。
けどクラスAの処理Xを共通クラスへ持っていくとするとクラスAの試験もしなくてはいけないってことになります。
しかし諸々の事情でクラスAがいじれないとか試験できないとなってしまうと、処理XがクラスAにもクラスBにもできてしまいます。
こういうのが技術負債になるのですよね。
そういうわけで、普段の開発とは別の時間にメンテナンスが必要になるのですよね。
それ専任の人をつけるか、みんなで定期的にそういう時間を作るか。
難しいけど、それができないとどんどん負債は膨らむばかり。
最終的に返済できなくなってシステムは崩壊するのです。
そうなる前に、しっかりとソフトウェアのメンテナンス、ソフトウェアの健康診断をやるように心がけましょう。