レガシーシステムは不快ですが、しばしば価値があり、ビジネスを運営しています。リファクタリング、置き換え、または廃止の決定は、古いコードに対する嫌悪感ではなく、コストと価値によって駆動される必要があります。「古くて醜い」は理由ではなく、「コストがかかっている」というのが理由です。
なぜ重要なのか
text
REFACTOR (improve in place) when:
- Core logic is sound; it's holding business value
- Problems are localized; you can improve incrementally
REPLACE (rewrite/migrate) when:
- It blocks important work and can't be incrementally fixed
- Maintenance cost > rebuild cost over a sensible horizon
- It's a growing security or reliability liability
RETIRE (remove entirely) when:
- Its value no longer justifies any maintenance cost
- Usage has dwindled; a simpler path exists
書き直しの罠に注意
完全な書き直しは魅力的で、しばしば災難的です。予想より時間がかかり、古いバグが再導入され、その間に動作中のシステムが腐ります。段階的なリファクタリングまたはストラングラー・フィグのパターンによる置き換えを優先します。段階的なパスが本当に塞がっている場合にのみ完全な書き直しに頼ります。
