Agile Estimation – Change Your Mindset
Summary/Tổng kết
- Với tư duy cũ, việc vô lý là lên kế hoạch, định giá trước khi dự án (phần mềm) bắt đầu là chuyện thường xảy ra,
- Cấp quản lý càng cao càng có tư duy waterfall (thường là thế!),
- Up-front costing với Agile/Scrum là khả thi.
Bài viết sau lấy cảm hứng và ví dụ từ cuốn “The Scrum Field Guide: Practical Advice for Your First Year” của tác giả Mitch Lacey.
Chuyện thường ngày ở huyện
Chúng ta (ScrumMaster: SM) có đầu vào là đặc tả, một kỳ vọng về sản phẩm đầu ra, một deadline và một số tiền ước tính “từ trên trời rơi xuống”.
Yêu cầu chúng ta nhận được là “hãy estimate và báo giá”, theo cách mới (nghĩa là Agile), chứ không phải báo giá theo cách truyền thống.
Những việc đầu tiên cho làm sau khi nhận được đặt tả là convert từ đặt tả sang stories, estimate nó theo cách làm Scrum.
Sau những trao đổi, SM hiểu ra quy trình định giá (trong trường hợp của cô, và có thể áp dụng cho trường hợp chung) gồm sáu bước:
- Create user story (đặt tả) / Viết lại đặc tả thành story (nhưng đừng hy vọng cover 100 đặc tả),
- Prioritize story / Làm việc với khách hàng, đặt thứ tự ưu tiên story,
- Estimate story / Cùng nhóm phát triển, định lương các story đó, theo point,
- Determine velocity / Xác định vận tốc dự tính của nhóm: Một sprint nhóm dự tính hoàn thành bao nhiêu point,
- Determine team cost / Tính chi phí theo giờ, theo ngày, theo sprint của cả nhóm,
- Calculate project cost / Tính tổng chi phí dự tính của cả dự án. (theo cách làm Agile)
- Commit YES or NO / Trả lời rằng “CÓ làm được hay KHÔNG?”
Các bước tiến hành
Giả sử nhóm bắt đầu bằng tài liệu đặc tả. Mô hình tiến hành định giá như sau:
- Bắt đầu từ đặc tả kỹ thuật: Đọc nó, phân tích.
- Chuyển đổi những chức năng, yêu cầu của đặc tả thành user story.
- Ước lượng các story (họp, trao đổi giữa nhóm, người liên quan và khách hàng)
- Đặt độ ưu tiên cho các story
- Xác định tốc độ (tăng dần, một sprint làm được bao nhiêu point)
- Suy ra tổng giá (từng giờ, người, team, một sprint, cả dự án)
- Xây dựng release plan
Cần gì để Agile Estimation thành công?
- Kết luận: Up-front costing với Scrum là khả thi,
- Quan trọng là phải tạo ra user stories (từ những đầu vào hiện có như đặc tả),
- Xây dựng lòng tin,
- Ước lượng tương đối (thay vì tuyệt đối),
- Agile planning là đơn giản.
Kết luận
Sự thay đổi là bất khả kháng với bất kỳ dự án nào. Điều này rất đúng với dự án ít thông tin đầu vào và đặc biệt đúng với dự án phần mềm.
Cách tiếp cận Lean/Agile là mấu chốt cho mọi thành công với dạng dự án này.
Điều khó khăn thường thấy là thuyết phục một lượng lớn những người liên quan tư duy và làm theo Agile, tức là làm một cách linh hoạt.
Việc ký hợp đồng với những dự án đã chặn hay định trước một bộ chức năng kỳ vọng, deadline/mốc và giá cả cần bổ sung những điều khoản mới dựa trên tư duy Agile mới. Điều này sẽ được trình bày trong một bài viết khác.