Tại một số điểm một chương trình đang được phát triển. Các tính năng đang được thêm hoặc xóa hoặc thay đổi mọi lúc. Mỗi phiên bản không có gì ngoài một nguyên mẫu. Vì vậy, tôi không lãng phí nhiều thời gian vào việc viết mã siêu sạch vào thời điểm đó bởi vì tôi không bao giờ biết điều gì đó kéo dài bao lâu. Tất nhiên tôi cố gắng giữ chất lượng mã theo các tiêu chuẩn nhất định, nhưng thời gian luôn là một vấn đề.
Sau đó đến thời điểm chương trình kết thúc và người đưa ra quyết định nói rằng "đó là". Tôi có một nguyên mẫu hoạt động vào thời điểm này, nhưng mã bên trong hơi lộn xộn từ tất cả các lần qua lại trong giai đoạn phát triển. Tôi dự kiến sẽ bắt đầu thử nghiệm / gỡ lỗi cuối cùng nhưng ruột của tôi nói rằng bây giờ tôi nên dọn dẹp và viết lại các công cụ để cung cấp cho nó kiến trúc phù hợp giúp bảo trì vv dễ dàng hơn.
Một khi công cụ đã được kiểm tra và phê duyệt, sẽ không có ý nghĩa gì khi viết lại. Một cách thường xuyên, tôi đang đứng đó với một nguyên mẫu 'đã hoàn thành' đang hoạt động và tôi gặp một lỗi trong quá trình thử nghiệm và tôi thấy rằng đó là kết quả của mã hóa không thông minh, là kết quả của toàn bộ quá trình phát triển. Tôi đang trong giai đoạn thử nghiệm và bản sửa lỗi sẽ được viết lại ... đó là một mớ hỗn độn!
Có những cách tốt hơn / sách giáo khoa, tôi chắc chắn. Nhưng tôi phải làm việc trong một môi trường làm việc thực tế, nơi không phải mọi thứ đều là sách giáo khoa.
Vậy làm cách nào để chuyển đổi nguyên mẫu làm việc của tôi sang phiên bản phát hành với cơ sở mã ổn định? Có lẽ tôi không nên coi sự phát triển đã kết thúc một khi tôi làm và thực sự coi đó là giai đoạn dọn dẹp ... Tôi không biết, tôi cần sự giúp đỡ ở đây.
BIÊN TẬP
Tôi muốn làm rõ một vài điều.
Tôi 100% đứng về phía thực hiện nó ngay trước và không sau, mã sạch và dễ đọc. Nhưng tôi cũng phải hoàn thành công việc và không thể mơ về vẻ đẹp của mã sạch sẽ và sáng bóng. Tôi phải tìm một sự thỏa hiệp.
thường thì một tính năng mới thực sự chỉ là thứ mà chúng tôi muốn dùng thử và xem liệu nó có hợp lý để thực hiện một cái gì đó như thế này không. (đặc biệt trong các ứng dụng di động, để có được giao diện thực trên thiết bị thực tế) Vì vậy, có một điều nhỏ nhặt mà (imho) không biện minh cho quá nhiều công việc trong lần lặp "hãy xem" đầu tiên. Tuy nhiên, đôi khi câu hỏi đặt ra KHI tôi phải trả tech.debt này? Đó là những gì câu hỏi này là tất cả về.
Nếu tôi biết rằng một nửa các tính năng sẽ bị loại bỏ một ngày sau đó (đủ kinh nghiệm trong công ty của chúng tôi) Tôi thực sự thấy khó tin rằng cách tốt nhất để tiếp cận vấn đề của mình là dù sao hãy đầu tư thêm thời gian để viết mọi thứ ngay cả khi hầu hết sẽ bị loại bỏ ngay sau đó. Tôi cảm thấy rằng tôi sẽ tiết kiệm thời gian nếu tôi thực hiện một lần dọn dẹp lớn một khi điều đó là vững chắc, do đó câu hỏi của tôi.