EVM cho các Dự án CNTT và Phần mềm
Áp dụng Quản lý Giá trị Thu được (EVM) vào các dự án CNTT và phần mềm vừa thách thức hơn vừa có nhiều sắc thái hơn so với việc áp dụng nó vào xây dựng. Công việc phần mềm mang tính trừu tượng, yêu cầu có thể thay đổi giữa chừng và việc đo lường "phần trăm hoàn thành" của một tính năng vốn dĩ là mang tính chủ quan. Tuy nhiên, với sự thích ứng phù hợp, EVM cung cấp giá trị to lớn cho quản lý chương trình CNTT và truyền đạt tình trạng ngân sách và lịch trình cho các bên liên quan không chuyên về kỹ thuật.
Thách thức Cốt lõi: Đo lường Giá trị Thu được trong Phần mềm
Trong xây dựng, bạn có thể đo lường tiến độ vật lý. Trong phần mềm, bạn đang đo lường công việc vô hình. Ba phương pháp phổ biến nhất:
1. Story Points (Agile EVM)
Trong môi trường Scrum hoặc Kanban, các nhóm ước tính công việc theo điểm câu chuyện (story points). Bạn có thể xây dựng EVM dựa trên điều này:
- BAC = Tổng số story points × chi phí trung bình trên mỗi story point
- PV = Số story points dự kiến hoàn thành tính đến sprint này
- EV = Số story points thực tế đã hoàn thành × chi phí trung bình trên mỗi story point
- AC = Chi phí thực tế của nhóm (lương, cơ sở hạ tầng, giấy phép) trong kỳ
Phương pháp này chỉ ghi nhận các câu chuyện là "hoàn thành" khi chúng đáp ứng Định nghĩa Hoàn thành (Definition of Done) của nhóm — ngăn chặn cạm bẫy "hoàn thành 90%".
2. EVM Dựa trên Cột mốc (Waterfall)
Đối với các dự án theo mô hình Thác nước (waterfall) hoặc có cổng giai đoạn (phase-gate), hãy chỉ định trọng số ngân sách cho các mốc quan trọng (VD: Yêu cầu = 15%, Thiết kế = 20%, Phát triển = 40%, Kiểm thử = 20%, Triển khai = 5%). Giá trị Thu được (EV) chỉ được ghi nhận khi mỗi mốc quan trọng được hoàn thành đầy đủ và được nghiệm thu.
3. Các Gói Công việc có Trọng số
Chia nhỏ phần mềm thành các mô-đun chức năng (xác thực, báo cáo, API, UI). Ước tính chi phí và thời gian cho mỗi mô-đun. Theo dõi sự hoàn thành ở cấp độ mô-đun. Đây là phương pháp EVM truyền thống nhất, phù hợp với các hợp đồng CNTT có giá cố định.
Ví dụ Thực tế: Dự án Phát triển Phần mềm
Một dự án phát triển CRM tùy chỉnh: BAC = $400.000, 8 sprint (16 tuần). Tại sprint 4 (tuần 8):
- Tổng số story points: 800. Chi phí trung bình cho mỗi story point: $500.
- Số story points dự kiến tính đến sprint 4: 400. PV = 400 × $500 = $200.000
- Số story points thực tế đã hoàn thành: 320. EV = 320 × $500 = $160.000
- Chi phí thực tế (lương nhóm + cơ sở hạ tầng): AC = $195.000
SPI = EV ÷ PV = 160.000 ÷ 200.000 = 0,800 (Chậm tiến độ 20%)
EAC = BAC ÷ CPI = 400.000 ÷ 0,821 = $487.211
VAC = 400.000 − 487.211 = −$87.211
EVM và Agile: Những Phản đối Thường gặp
| Phản đối | Phản hồi |
|---|---|
| "Agile không có phạm vi cố định" | EVM hoạt động với một backlog đã được ưu tiên — BAC đại diện cho phạm vi phát hành đã thỏa thuận, không phải toàn bộ backlog của sản phẩm |
| "Yêu cầu thay đổi mỗi sprint" | Sử dụng quy trình kiểm soát thay đổi. Những thay đổi phạm vi đã được phê duyệt sẽ cập nhật BAC. Những thay đổi ngoài kế hoạch là những biến động cần điều tra. |
| "Vận tốc (Velocity) của story point hữu ích hơn" | Velocity rất tốt cho nhóm; nhưng EVM cung cấp cái nhìn tài chính mà các nhà tài trợ và giám đốc điều hành cần. |
| "Chúng tôi không ước tính trước" | EVM yêu cầu một đường cơ sở. Ngay cả các câu chuyện có kích thước tương đối cũng có thể tạo thành cơ sở nếu được định cỡ một cách nhất quán. |
Mẹo Thực tế cho Người Quản lý Dự án CNTT
- Thiết lập BAC của bạn trước sprint, không phải sau đó: Đường cơ sở phải ổn định để EVM có ý nghĩa.
- Chỉ tính 0% hoặc 100% đối với các câu chuyện đang trong tiến trình: Tránh ghi nhận một phần; nó sẽ làm thổi phồng EV và che giấu rủi ro lịch trình.
- Theo dõi xu hướng CPI hàng tuần: Các dự án phần mềm thay đổi rất nhanh. Báo cáo EVM hàng tháng có thể phát hiện sự cố quá muộn.
- Tách BAC cho cơ sở hạ tầng/vận hành so với phát triển: Chi phí cơ sở hạ tầng có các yếu tố thúc đẩy chi phí khác nhau và nên được theo dõi riêng.
- Sử dụng EVM ở cấp độ chương trình: Nếu bạn có nhiều nhóm Agile, hãy tổng hợp dữ liệu EV/AC của họ ở cấp độ chương trình để báo cáo cho ban điều hành.