Các hệ thống legacy gây khó chịu nhưng thường có giá trị, chúng vận hành doanh nghiệp. Quyết định refactor, thay thế, hay loại bỏ phải được dẫn dắt bởi chi phí và giá trị, chứ không phải bởi sự ác cảm với code cũ. "Nó cũ và xấu" không phải là một lý do; "nó đang khiến chúng ta tốn kém" thì có.
Một hướng dẫn ra quyết định
REFACTOR (cải thiện tại chỗ) khi:
- Logic cốt lõi vẫn vững; nó đang giữ giá trị kinh doanh
- Vấn đề mang tính cục bộ; bạn có thể cải thiện tăng dần
REPLACE (viết lại/migrate) khi:
- Nó chặn công việc quan trọng và không thể sửa tăng dần
- Chi phí bảo trì > chi phí xây lại trong một khoảng thời gian hợp lý
- Nó là một mối nguy bảo mật hoặc độ tin cậy đang lớn dần
RETIRE (gỡ bỏ hoàn toàn) khi:
- Giá trị của nó không còn biện minh cho bất kỳ chi phí bảo trì nào
- Lượng sử dụng đã teo tóp; có một con đường đơn giản hơn
