Tôi sẽ thực sự cùn ...
- Bạn có phụ trách các nhà phát triển trong công việc này?
- Bạn có phải là người lãnh đạo dự án?
- Các nhà phát triển nắm giữ bao nhiêu "cổ phần" trong dự án?
- Biện minh kinh doanh của bạn cho một viết lại là gì?
- Điều gì về cơ sở mã làm cho nó hoàn toàn vô dụng và không thể phục hồi?
Bạn đã nói rằng bạn vừa mới bắt đầu một công việc, nhưng bạn dường như đã làm chủ được tình huống ở đó. Có lẽ tôi đã hiểu sai ý định của câu hỏi của bạn, nhưng tôi có ấn tượng rằng bạn đã vào một công việc mà bạn thấy một số vấn đề và bạn đã nhảy đến kết luận dễ nhất trong đó mã bị hỏng và cách duy nhất là viết lại, nhưng bạn đã thực sự xem xét chi phí cho chủ nhân của bạn để làm như vậy chưa?
Với bất kỳ cơ sở mã hiện có nào - cho dù trạng thái của nó kém đến mức nào - chủ sở hữu thường sẽ có một khoản đầu tư lớn vào (các) sản phẩm mà mã đại diện. Có cả chi phí trực tiếp và gián tiếp liên quan đến cơ sở mã và viết lại thường là điều cuối cùng bạn muốn làm với tư cách là nhà phát triển phần mềm, vì bạn có nguy cơ phá giá tài sản mã của mình và do đó thu được lợi nhuận thấp hơn trước tất cả nỗ lực.
Lấy hệ điều hành của Window làm ví dụ. Với mỗi phiên bản mới được tạo, đã có một đoạn mã lớn được chuyển từ phiên bản trước. Đôi khi, toàn bộ thư viện và API được kéo về phía trước qua nhiều thế hệ HĐH. Tại sao? Bởi vì các nhà phát triển biết rằng các yếu tố này hoạt động, đã được thử nghiệm, đã được vá và sửa chữa để ngăn chặn các vấn đề về bảo mật và bộ nhớ và vì chúng đã tốn rất nhiều tiền để vào trạng thái đó. Không ai muốn vứt bỏ mã làm việc khi họ kiếm được tiền, ngay cả khi chi phí bảo trì tương đối cao, chi phí để bắt đầu từ đầu sẽ luôn cao hơn và trong một công ty như trường hợp của Microsoft, họ có hàng tỷ trong ngân hàng cho phép họ bắt đầu lại từ đầu nếu họ muốn, nhưng họ không ' t vì họ muốn tối đa hóa lợi nhuận của họ từ khoản đầu tư của họ. Nhà tuyển dụng của bạn không khác gì Microsoft, ngoại trừ một chút về việc có hàng tỷ tiền mặt để ném vào một dự án.
Vì vậy, mã là một mớ hỗn độn, và có vẻ như có vấn đề giao tiếp và ranh giới giữa các lĩnh vực khác nhau của công ty. Bạn hoặc đồng nghiệp của bạn có thể làm gì về điều này?
Một lựa chọn đơn giản là tiếp tục như đội đã và hy vọng vào một phép màu trong tương lai. Có lẽ không phải là một ý tưởng tốt, và có khả năng chỉ làm tăng sự thất vọng và căng thẳng của bạn.
Một lựa chọn tốt hơn là chỉ đơn giản là quỳ xuống và thực hiện công việc của bạn, nhưng như một phần của cơ hội này để tìm cơ hội thêm các bài kiểm tra để hỗ trợ các khu vực mã có vẻ dễ vỡ nhất, sau đó cấu trúc lại chúng cho đến khi chúng ổn định hơn. Bạn sẽ có một thời gian dễ dàng hơn để đưa ra một lập luận thuyết phục để cải thiện đầu tư của công ty thay vì tranh cãi chỉ đơn giản là vứt bỏ tất cả.
Một lựa chọn thậm chí tốt hơn là được tổ chức thành một nhóm và để đảm bảo bạn có được một người có đủ thâm niên để họ có thể tạo ra một trường hợp tốt để cho phép nhóm linh hoạt hơn để sắp xếp thời gian để cải thiện cơ sở mã. Tôi không quan tâm đến việc một công ty bận rộn như thế nào, hoặc lịch trình có vẻ cứng nhắc như thế nào, luôn có những "khoảng trống" thỉnh thoảng trong hoạt động có thể được sử dụng để siết chặt trong một hoặc hai cải tiến. Tuy nhiên, thậm chí còn tốt hơn nếu các cải tiến có thể được thực hiện trong khi hoàn thành các nhiệm vụ khác. Nếu là tôi, tôi sẽ làm quen với một người quản lý và giới thiệu cho họ các khái niệm trong một số cuốn sách kinh điển mà các nhà phát triển phần mềm đọc. Mã sạchcó lẽ là người mà đội của bạn cần nhất Trồng một vài hạt giống về cách cải thiện mã và cung cấp một vài ví dụ về ý nghĩa của bạn. Một người quản lý tốt sẽ thấy giá trị của việc thêm các cải tiến gia tăng vào mã, đặc biệt nếu bạn có thể mô tả khái niệm Nợ kỹ thuật . Giúp trưởng nhóm hoặc người quản lý của bạn tạo ra một trường hợp kinh doanh tốt để cải thiện mã và họ sẽ có động lực tốt hơn để hành động.
Cũng không đủ để nói "mã không gọn gàng". Bạn cần khuyến khích các đồng nghiệp của mình thực hành mã hóa sạch mọi lúc và sử dụng kỹ thuật mã hóa sạch để khuyến khích một chút dọn dẹp khi bạn đi. Tôi có một poster nhỏ mà tôi in ra và treo trên tường văn phòng mỗi khi tôi nhận một công việc mới. Nó nói "Luôn luôn cố gắng để lại mã đẹp hơn một chút so với bạn tìm thấy". Ngay bên cạnh tôi thêm một cái khác có nội dung "Hoa loa kèn không cần được mạ vàng". Cả hai đều phục vụ để nhắc nhở tôi rằng tôi nên luôn cố gắng cải thiện những gì tôi tìm thấy, nhưng tránh đơn giản là mạ vàng một vấn đề khác. Viết lại ồ ạt thường là loại "mạ vàng" tồi tệ nhất, bởi vì chúng thường được thực hiện vì những lý do sai lầm. Chắc chắn một phiên bản sản phẩm hoàn toàn mới có thể hợp lý tại một số điểm,