·2 phút đọc
Sửa hay viết lại? 5 câu hỏi trước khi thay hệ thống
Viết lại từ đầu nghe hấp dẫn, nhưng thường đắt và rủi ro hơn dự kiến. 5 câu hỏi giúp bạn quyết định dựa trên thực tế thay vì cảm giác.
Khi một hệ thống trở nên chậm, khó sửa và hay lỗi, đề xuất "viết lại từ đầu" xuất hiện rất nhanh. Đôi khi đó là quyết định đúng. Nhưng thường, nó được đưa ra trước khi ai đó thật sự hiểu vấn đề nằm ở đâu.
Dưới đây là 5 câu hỏi nên trả lời trước.
1. Vấn đề nằm ở code, hay ở hạ tầng và vận hành?
Rất nhiều hệ thống "chậm" thực ra chậm vì thiếu index database, server thiếu tài nguyên, hay không có cache. Không ít hệ thống "hay sập" thực ra sập vì deploy thủ công và không có cách quay lại bản cũ.
Những vấn đề này viết lại không tự giải quyết được. Bản mới vẫn cần database, server và quy trình deploy.
2. Hệ thống hiện tại đang chứa bao nhiêu quy tắc nghiệp vụ không ai ghi lại?
Một hệ thống chạy vài năm thường chứa rất nhiều quyết định nhỏ: cách làm tròn tiền, trường hợp đặc biệt của một khách hàng lớn, một bước duyệt thêm vào sau một sự cố. Phần lớn không có trong tài liệu nào.
Viết lại nghĩa là phải tìm lại và tái tạo tất cả những điều đó. Bỏ sót một quy tắc là có thêm một lỗi mới trên hệ thống thật.
3. Doanh nghiệp có thể chờ bao lâu?
Trong lúc viết lại, hệ thống cũ vẫn phải chạy và vẫn cần sửa lỗi. Người làm phần mềm phải chia sức cho cả hai việc. Tính năng mới bị hoãn. Dự án viết lại kéo dài gấp đôi dự kiến cũng không hiếm, và khi đó cái giá của việc chờ đợi rất lớn.
4. Có thể thay từng phần được không?
Thay vì thay cả hệ thống một lần, thường có thể:
- Ổn định phần hạ tầng và deploy trước.
- Tách một module có vấn đề nhất ra, viết lại riêng phần đó.
- Đặt một lớp trung gian (API) phía trước, để phần mới và phần cũ chạy song song rồi chuyển dần từng chức năng.
Cách này giảm rủi ro vì mỗi bước đều nhỏ, kiểm thử được và quay lại được.
5. Khi nào viết lại thật sự hợp lý?
Viết lại đáng cân nhắc khi:
- Nền tảng đã hết hỗ trợ và không có đường nâng cấp an toàn.
- Mô hình kinh doanh đã thay đổi đến mức hệ thống cũ không còn phản ánh đúng cách bạn làm việc.
- Chi phí duy trì đã được đo và rõ ràng cao hơn chi phí thay thế, chứ không chỉ là cảm giác.
Bắt đầu bằng chẩn đoán
Câu trả lời cho cả 5 câu hỏi đều cần một điều: hiểu rõ hiện trạng. Đó là lý do tôi thường bắt đầu bằng Health Check, để việc chọn sửa, thay từng phần hay viết lại dựa trên bằng chứng, trước khi bỏ ra một khoản tiền lớn.
Hệ thống của bạn cũng đang như vậy?
2–4 ngày Health Check sẽ cho bạn biết nên sửa gì trước, sửa gì sau.