Rủi ro là yếu tố luôn tồn tại trong mọi hoạt động sảbn xuất và kinh doanh, và dự án phần mềm cũng không ngoại lệ. Tuy nhiên, với đặc thù riêng của mình, nhận diện và kiểm soát rủi ro trong dự án phần mềm là điều không đơn giản. Trong thực tế, nhiều dự án phần mềm đã bỏ qua hoặc kiểm soát rủi ro sơ sài, chiếu lệ dẫn đến kết quả thất bại, khách hàng phàn nàn về chất lượng hoặc lỗ vốn do chi phí tăng cao.
Bên dưới là danh sách một số loại rủi ro (risk category) và các ví dụ về nguy cơ tìm ẩn có thể xác định ở giai đoạn lên kế hoạch quản lý rủi ro
1. Thiếu nhân lực được huấn luyện về kỹ thuật
Đây là rủi ro dễ thấy ngay từ khi dự án mới bắt đầu. Bởi vậy, nhà quản lý dự án có thể chủ động đưa ra giải pháp thay vì bị động như các rủi ro khách quan khác.
Cách khắc phục:
- Dành một phần chi phí để đào tạo nhân sự ngay từ ban đầu
- Dành bộ đệm cho nhân sự bổ sung
- Lập một chương trình đào tạo riêng cho dự án
- Tổ chức các buổi đào tạo chéo giữa các thành viên tay nghề cứng với người mới
- Yêu cầu thay đổi quá nhiều
2. Rủi ro đến từ khách hàng
Rủi ro này đến từ phía khách hàng, khi họ đưa ra các thay đổi không theo trật tự nào. Nhiều nhà quản lý dự án do cuốn theo các yêu cầu thất thường này khiến dự án bị rối tung.
Cách khắc phục:
- Có hợp đồng, chữ ký bằng văn bản của khách hàng cho các yêu cầu cụ thể khi nhận dự án.
- Cảnh bảo khách hàng về nguy cơ chậm tiến độ nếu làm theo các thay đổi đột xuất.
- Xây dựng quy trình cụ thể, thủ tục rõ ràng (chữ ký của các đầu mối quan trọng liên quan) nếu muốn thay đổi.
- Đàm phán rõ ràng để nhận thù lao tương xứng với những thay đổi ngoài hợp đồng.
3. Yêu cầu không rõ ràng
Cách khắc phục:
- Lập một số trường hợp giả định để đưa cho khách hàng tham khảo, từ đó làm theo mẫu có sẵn.
- Phát triển mẫu phần mềm thử nghiệm (prototype), đưa ra yêu cầu mô tả chi tiết và gửi tới khách hàng
4. Nhân sự rời dự án
Cách khắc phục:
- Đảm bảo mọi nhân sự đều được đảm nhiệm phần việc quan trọng của dự án
- Họp mặt thường niên (ngoài công việc) để xây dựng tình đoàn kết, teamwork
- Thỉnh thoảng xoay vòng nhân sự vào các mảng việc khác nhau
- Có từ 1,2 nhân sự back up kịp thời cho dự án bất cứ lúc nào
- Có cơ chế lưu trữ, quản lý tài liệu công việc của tất cả nhân sự
5. Nhiều quyết định từ bên ngoài tác động lên dự án
Trong quá trình thực hiện dự án, một số quyết định khách quan (luật pháp, đối tác, quy chế công ty…) có thể tác đông tiêu cực lên dự án.
Cách khắc phục:
- Liệt kê danh sách các quyết định bất lợi, cùng với đó là thông tin liên quan.
- Bàn bạc với nhân viên chịu ảnh hưởng trực tiếp bởi các quyết định này.
- Nếu cần, xác định đây như một rủi ro bắt buộc và lên kế hoạch giảm thiểu trong dài hạn.
6. Hiệu suất không đảm bảo
Cách khắc phục:
- Xác định tiêu chuẩn hiệu suất một cách rõ ràng và đưa cho khách hàng review lại.
- Đảm bảo mọi nhân sự trong dự án nắm được yêu cầu cụ thể về hiệu suất cá nhân.
- Xây dựng hiệu suất mẫu cho các giao dịch quan trọng.
- Kiểm thử với dữ liệu mẫu nếu có thể.
7. Loại rủi ro: Schedule
Phân tích các nguyên nhân gây ra :
- Lịch trình không thực tế, chỉ có “trường hợp tốt nhất”
- Nhiệm vụ quan trọng bị xót từ lịch trình
- Một sự chậm trễ trong một nhiệm vụ gây ra sự chậm trễ các nhiệm vụ phụ thuộc trong dự án
- Các công việc không quen thuộc của các sản phẩm mất nhiều thời gian hơn dự kiến để thiết kế và thực hiện
Như vậy, chúng ta cần phải lưu ý:
- Dự án càng lớn thì rủi ro càng nhiều.
- Việc dự báo rủi ro phụ thuộc vào kinh nghiệm của người Người quản lý dự án
- Kiểm soát rủi ro không nhằm loại bỏ rủi ro, chỉ nhằm hạn chế tối thiểu thiệt hại của rủi ro.
- Không thể loại trừ được triệt để
- Không phải cứ tập trung hết sức để ngăn chặn và đề phòng rủi ro đã là tốt, vì có thể phải trả giá đắt, nếu rủi ro không xảy ra. Do đó, cần dự báo rủi ro chính xác.
Quản lý rủi ro không chỉ thực hiện trong một giai đoạn dự án (như cách chúng ta vẫn đang thực hiện) mà phải tiến hành xuyên suốt trong quá trình quản lý dự án. Để tiến hành thực hiện quản lý rủi ro thật sự đem lại hiệu quả, đòi hỏi sự quyết tâm thực hiện của các PL và sự đồng thuận từ các cấp lãnh đạo.
Hy vọng bài này đã giúp bạn có cái nhìn tổng quan về xác định đúng rủi ro có thể xảy và thời gian dự kiến trong các dự án phần mềm.