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