Velocity trong Agile thực chất là gì?
Để đo lường tốc độ của một phương tiện, chúng ta cần tính trung bình quãng thời gian phương tiện đó di chuyển/giờ. Vậy còn để đo lường tốc độ hoàn thành công việc của một cá nhân hay của một nhóm thì như thế nào – nhất là khi bản chất công việc lại không hề giống như một con đường phẳng phiu để có thể diễn tiến đều đặn? Đó là lý do trong dự án Scrum, chúng ta cần dùng đến Velocity. Vậy Velocity là gì và được ứng dụng như thế nào? Cùng theo dõi ngay sau đây!
Velocity là gì?
Velocity (vận tốc) là phương pháp đo lường tốc độ công việc mà Development Team đã hoàn thành trong Sprint một cách nhất quán. Chỉ những Stories hoặc Task đã hoàn thành mới được tính trong Velocity.
Dựa vào Velocity, Product Owner (PO) có thể dự đoán được tốc độ làm việc của team. Vì phương pháp này sẽ cho thấy:
- Khối lượng công việc team đã hoàn thành và chuyển tới cho user sử dụng tính tới thời điểm hiện tại.
- Thời điểm team có thể hoàn thành tất cả các stories ở product backlog
- Số lượng stories sẽ được chuyển cho User, PO vào một ngày định trước.
Ví dụ: Mục tiêu của PO là cần hoàn thành 300 Story trong 1 Product Backlog. Theo tiến độ, Development Team thường hoàn thành 50 Story trong mỗi Sprint. Như vậy, PO có thể ước tính được cả nhóm sẽ mất 6 Sprint để hoàn thành công việc trong Product Backlog đó.
Đo lường Velocity như thế nào?
Velocity được tính trung bình dựa trên các Sprint trong quá khứ. Thông thường, sẽ phải mất một khoảng thời gian để nhóm tìm ra một Velocity ổn định. Velocity thường thay đổi nhiều nhất trong những Sprint đầu tiên, và sau đó dần ổn định khi các thành viên trong nhóm đã quen thuộc với dự án án, công cụ làm việc và tương tác với nhau.
Đối với mục đích dự báo, nên sử dụng giá trị trung bình của 3 – 4 Velocity từ các Sprint gần nhất. Cùng xem ví dụ về Velocity ước tính sau 4 Sprint ở bên dưới:
Cách ước tính Vận tốc của nhóm trong tương lai
Chúng ta chỉ biết được vận tốc hoàn thành công việc của nhóm trong quá khứ, nhưng điều quan trọng là dự đoán được vận tốc trong tương lai. Theo kinh nghiệm được chia sẻ bởi chuyên gia Agile, cách ước tính Velocity như sau:
- Đối với nhóm đã ổn định
Velocity được tính bằng vận tốc của 3 – 4 Sprint gần nhất (không cần tính trung bình toàn bộ thời gian). Ngoài ra, có thể nhân thêm với gia tốc của nhóm, thông thường mức khuyến nghị là 5%/sprint.
- Nhóm khi có thành viên nghỉ phép
Cách đơn giản nhất là quy đổi mọi thành viên có năng lực như nhau. Giả sử nhóm có 5 người, 1 người nghỉ phép thì trừ đi 20%. Trong trường hợp cần độ chính xác cao hơn, có thể dựa trên dữ liệu hoàn thành công việc của thành viên đó để tính toán. Ví dụ, một thành viên Junior có năng lực bằng khoảng ½ so với các thành viên khác trong nhóm thì ta sẽ trừ đi 10%.
- Nhóm có thành viên mới
Ước lượng năng lực của thành viên mới so với các thành viên cũ trong team. Chẳng hạn, năng lực của thành viên mới là tương đương với mọi người trong team, ta có thể cộng thêm 20% – đối với nhóm 5 thành viên. Tuy nhiên, cần lưu ý ở giai đoạn đầu, thành viên mới sẽ cần thời gian thích ứng nên vận tốc sẽ không được như tính toán.
Velocity có phải KPI?
Velocity không phải là KPI mà là phương pháp để ước tính tốc độ làm việc của team. Tương tự, chúng ta không thể dựa trên Velocity để so sánh hay đánh giá năng suất làm việc của 2 team khác nhau. Bởi lẽ, Velocity được tính trên khối lượng Stories hoàn thành – trong khi đó Stories ở mỗi nhóm lại do nhóm xác định và không giống nhau.
Ví dụ: giả sử team A và team B đều cùng có 5 thành viên với năng lực tương đương. Team A có Velocity là 30 còn team B có Velocity là 40 thì không có nghĩa team B có năng suất cao hơn team A. Vì cách ước tính ở mỗi team là duy nhất.
Bài viết thuộc series Agile 101. Nhấn vào đây hoặc hashtag agile 101 bên dưới để xem thêm các bài viết khác liên quan.