Tôi đã thừa hưởng một cơ sở mã hiện có cho một sản phẩm cẩu thả một cách đáng trách. Thiết kế cơ bản là không đủ, điều không may là tôi không thể làm được gì nếu không có bộ tái cấu trúc hoàn chỉnh (khớp nối CAO, độ kết dính THẤP, sao chép mã tràn lan, không có tài liệu thiết kế kỹ thuật, kiểm tra tích hợp thay vì kiểm tra đơn vị). Sản phẩm này có lịch sử, tiếp xúc nhiều với các khách hàng "tiền mặt" quan trọng với khả năng chịu rủi ro tối thiểu, nợ kỹ thuật sẽ khiến người Hy Lạp đỏ mặt, mã hóa RẤT lớn và phức tạp, và cách tiếp cận thất bại trong trận chiến với các lỗi của đội trước tôi.
Đội cũ nhảy tàu sang một bộ phận khác để họ có cơ hội phá hỏng một dự án khác. Rất hiếm khi tôi gặp phải Thất bại trong Dự án Không đủ kỹ thuật trái ngược với Thất bại trong Quản lý Dự án nhưng đây thực sự là một trong những trường hợp đó.
Hiện tại tôi chỉ có một mình nhưng tôi có rất nhiều thời gian, tự do quyết định và định hướng trong tương lai và khả năng xây dựng một đội ngũ từ đầu để giúp tôi.
Câu hỏi của tôi là thu thập ý kiến về tái cấu trúc tác động thấp đối với một dự án như thế này khi bạn có thời gian rảnh trong giai đoạn thu thập các yêu cầu chức năng. Có hàng ngàn cảnh báo về trình biên dịch, hầu hết tất cả chúng đều không được sử dụng, các biến cục bộ chưa đọc, không có kiểm tra kiểu và phôi không an toàn. Định dạng mã rất khó đọc và cẩu thả đến nỗi có vẻ như người viết mã bị mắc bệnh Parkinsons và không thể kiểm soát số lần thanh không gian được nhấn trên bất kỳ dòng nào. Các tài nguyên tệp và cơ sở dữ liệu khác thường được mở và không bao giờ đóng một cách an toàn. Đối số phương thức vô nghĩa, phương thức trùng lặp làm cùng một việc, v.v.
Trong khi tôi chờ đợi các yêu cầu cho tính năng tiếp theo, tôi đã làm sạch những thứ có rủi ro thấp có tác động thấp khi tôi đi và tự hỏi liệu tôi có đang lãng phí thời gian hay làm việc đúng đắn hay không. Điều gì xảy ra nếu tính năng mới có nghĩa là trích xuất mã mà tôi đã dành thời gian trước đó? Tôi sẽ bắt đầu một cách tiếp cận Agile và tôi hiểu điều này có thể chấp nhận được và bình thường để liên tục tái cấu trúc trong quá trình phát triển Agile.
Bạn có thể nghĩ về bất kỳ tác động tích cực hoặc tiêu cực nào của tôi khi làm điều này mà bạn muốn thêm không?