Dự án phần mềm thành công
Một sinh viên hỏi tôi: Làm sao thầy biết liệu dự án phần mềm là thành công hay không? Nếu phần mềm chạy tốt, nó có là thành công không? Nếu mã qua được mọi kiểm thử nó có là thành công không?”
Đáp: Dự án phần mềm thành công nếu nó được chuyển giao cho khách hàng đúng thời gian, trong chi phí, có mọi chức năng được khách hàng yêu cầu, có lỗi thấp, và nó cung cấp giá trị cho khách hàng. Thời gian và chi phí có liên quan với nhau. Thời gian tổ dành cho dự án cũng là phần lớn của chi phí. Phần khác là chi phí lao động và nếu dự án cần nhiều người hơn nó đã được lập kế hoạch điều đó sẽ tốn chi phí nhiều hơn. Nếu dự án chậm (cần nhiều thời gian hơn) nó sẽ tốn phí nhiều hơn. Tất nhiên hoặc khách hàng sẽ phải trả nhiều hơn hoặc công ti sẽ phải chi thêm tiền phụ thêm.
Phần mềm phải có mọi chức năng mà khách hàng yêu cầu trong đặc tả yêu cầu phần mềm (SRS) và hơn nữa bởi vì có nhiều “chức năng suy dẫn” mà tổ sẽ thêm vào cho các chức năng được yêu cầu để làm cho sản phẩm cuối cùng làm việc tốt hơn. Tất nhiên, có thể tốn phí nhiều hơn khi tổ phải chi thêm thời gian phụ cho chúng. Không phần mềm nào “không lỗi” nhưng có khác biệt rõ ràng giữa phần mềm làm việc được, với ít lỗi có thể được sửa và phần mềm có nhiều lỗi phải mất nhiều thời gian và nỗ lực hơn và có thể vô dụng. Ngay cả phần mềm được chuyển giao “đúng thời gian, trong chi phí” thực tế không được kết thúc khi nó được chuyển giao cho khách hàng và chính khách hàng sẽ phải tìm ra chức năng bị thiếu và gửi nó trả lại để sửa.
Vấn đề mấu chốt là: Khách hàng có dùng nó không? Nó tạo ra bao nhiêu giá trị trong kinh doanh của khách hàng? Nó giúp cho khách hàng giải quyết vấn đề được bao nhiêu? Nhiều người phần mềm KHÔNG quan tâm về vấn đề giá trị bởi vì điều này không được làm tài liệu trong SRS cho nên nó “không phải là vấn đề của chúng ta”. Tổ phần mềm tạo ra nó, và nó làm việc, cho nên nếu họ không dùng nó, thế thì đó là vấn đề của họ, không phải của chúng ta. Đây KHÔNG phải là cách tốt để đạt tới sự hài lòng của khách hàng bởi vì tổ phần mềm cần hiểu tại sao phần mềm không được dùng? Có thể nó quá khó dùng không được? Vậy đó là vấn đề về tính dùng được. Có lẽ cách khách hàng làm tài liệu yêu cầu là KHÔNG tốt cho nên phần mềm không thể giải quyết được vấn đề. Vậy thì đó là vấn đề khêu gợi yêu cầu làm kém. Dù bất kì lí do nào, nếu phần mềm KHÔNG được dùng, nó không có giá trị và nếu bạn là người phát triển phần mềm chuyên nghiệp, bạn sẽ thấy lí do và đề nghị giải pháp để chắc chắn rằng khách hàng sẽ thoả mãn toàn bộ. Nếu khách hàng hài lòng, thử đoán xem họ sẽ trao dự án tiếp cho ai?
Tác phẩm, tác giả, nguồn
- Tác phẩm: Quản lý dự án
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com