Bài viết được dịch từ blog Coding Horror
Khi đề cập đến cụm từ “bảo trì phần mềm” tới một nhóm lập trình viên thì họ sẽ cảm thấy kinh hãi (cho dù đó là đàn ông hay đàn bà). Bảo trì phần mềm được xem như là công việc lau dọn vậy.
Nhưng có thể đó là một sự mô tả không công bằng.
Bảo trì phần mềm giống như công việc lau dọn vậy.
Trong cuốn sách Software Conflict 2.0 : The Art and Science of Software Engineering, tác giả Robert L. Glass đã ca tụng những ưu điểm của việc bảo trì phần mềm:
Bảo trì phần mềm là công việc…
- Phức tạp về mặt trí tuệ – nó đòi hỏi sự đổi mới trong khi đưa ra những ràng buộc khắt khe đối với người tiến hành đổi mới.
- Khó khăn về mặt kỹ thuật – người bảo trì phải có khả năng làm việc với khái niệm, thiết kế và tất cả code của nó cùng một lúc.
- Không công bằng – người bảo trì chẳng bao giờ nhận được tất cả những thứ mà họ cần, ví dụ như tài liệu chẳng hạn.
- Không chiến thắng – người bảo trì chỉ nhìn thấy những người đang gặp vấn đề.
- Công việc vất vả – người bảo trì phải làm việc ở mức độ chi tiết của những dòng code “thối”.
- Sống trong quá khứ – phần code đó có thể đã được viết bởi một người nào đó trước khi họ là một lập trình viên giỏi.
- Phải thận trọng – phương châm hành động trong việc bảo trì là “nếu nó không có vấn đề thì đừng sửa nó”.
Bảo trì phần mềm là công việc khá phức tạp và đầy thử thách.
Trong ngành phát triển phần mềm, người làm công việc bảo trì phần mềm có xu hướng là những người mới vào nghề hoặc không phải là lập trình viên giỏi. Có một lý do cho điều đó. Hầu hết mọi người đều thích công việc phát triển sản phẩm từ đầu hơn; bảo trì là công việc bị hạn chế sự sáng tạo nên rất ít người thích làm nó. Và theo mặc định, người có ít khả năng nhất và có ít nhu cầu nhất là những người thường làm công việc bảo trì.
Tình trạng hiện tại là hoàn toàn sai. Bảo trì là một thách thức trí tuệ đáng kể cũng như một giải pháp chứ không phải là một vấn đề. Nếu chúng ta muốn tối đa hoá hiệu quả của mình khi thực hiện nó, chúng ta cần phải thay đổi đáng kể cách mà chúng ta phân công người làm công việc đó.