Món đặc sản của Agile : Refinement trong phát triển phần mềm

Món đặc sản của Agile : Refinement trong phát triển phần mềm

Bạn đã thiết kế thành công bức tranh toàn cảnh về sản phẩm của mình và tạo ra một backlog với mọi thứ cần làm.

Các mục ngắn gọn và đi vào trọng tâm. Bạn hiểu chúng, nhưng bạn tự hỏi: liệu những người khác cũng vậy phải không?
product-backlog--agile

Backlog Refinement sẽ giúp xử lý vấn đề này.

1. Backlog Refinement là gì?

Trong Scrum, Backlog Refinement là một quá trình liên tục trong đó Product Owner và Nhóm phát triển cộng tác để đảm bảo rằng các hạng mục trên Product Backlog:

  • được hiểu theo cùng một cách bởi tất cả những người có liên quan (sự hiểu biết được chia sẻ),
  • ước tính kích thước cho mức độ phức tạp (tương đối) và nỗ lực của việc thực hiện, và
  • được sắp xếp theo thứ tự ưu tiên về giá trị kinh doanh và nỗ lực cần thiết.

Nói tóm lại: Backlog Refinement là việc tạo ra sự hiểu biết chung về những gì Sản phẩm sẽ làm và sẽ không làm, dựa trên nỗ lực sẽ thực hiện và trình tự.
Là quá trình thêm vào các chi tiết, ước lượng và trình tự của các hạng mục trong Product Backlog.

2. Khi nào là thích hợp nhất để thực hiện Backlog Refinement và bao lâu thì thích hợp?

Một trong những hiện tượng thường gặp trong giai đoạn đầu áp dụng phương pháp quản lý dự án Agile vào chu trình phát triển phần mềm là:
Sự kiện Backlog Grooming quá nhàm chán. Product Owner thì nói tràng lang đại hải cái muốn của người dùng mà không chốt được các điều kiện tuyên quyết để nghiệm thu. Team thì ngồi an toàn trên ghế mà chả buồn đóng gióp ý kiến. Lúc team hỏi cái này, lúc team hỏi cái kia và đôi khi team hỏi trùng ý. Một số thành viên ngồi thiếu Oxy nên ngáp dài. Hết giờ rồi mà team còn đôi co.

Vậy khi nào là thích hợp nhất để thực hiện Backlog Refinement?
→ Thời gian do PO và Dev team tự chủ động. Nên diễn ra trước buổi sprint planing

Bao lâu thì thích hợp?
→ Không chiếm nhiều hơn 10% tổng thời gian của nhóm Dev.

Các item của Product Backlog có thể được cập nhập bất kỳ lúc nào theo chủ quan của PO (trừ những item đã được đưa vào trong sprint).

3. Tại sao Backlog Refinement lại quan trọng?

  • Tránh việc mỗi người có một goal gây lãng phí thời gian
  • Đánh giá được mức độ ưu tiên
  • Cải thiện hiệu quả của cuộc họp Lập kế hoạch Sprint vì hầu hết các câu hỏi đã được trả lời
  • Giữ cho Product Backlog tập trung, rõ ràng.
  • Tạo ra sự hiểu biết chung trong Nhóm Scrum và các bên liên quan.

4. Điều gì xảy ra trong quá trình Backlog Refinement?

Các hoạt động trong Backlog Refinement:
Backlog Refinement để tạo ra sự hiểu biết chung về những gì sản phẩm sẽ và sẽ không-làm và những gì cần thiết để tạo ra sản phẩm.

  • Khám phá và tìm hiểu sản phẩm
  • Xác định và loại bỏ các mục "nghe có vẻ tốt" nhưng không còn phù hợp
  • Cải thiện sự rõ ràng và ngăn ngừa sự hiểu lầm bằng cách thêm các chi tiết trong quá trình chuẩn bị triển khai. Ví dụ thêm các ví dụ, ràng buộc, tiêu chí chấp nhận.
  • Tách các mục lớn thành các mục nhỏ hơn. Các mục nhỏ hơn thường tập trung và dễ quản lý hơn và dễ xác định kích thước hơn
  • Định cỡ các mục
  • Sắp xếp thứ tự ưu tiên cho các mục
  • Xác định các rủi ro và trở ngại đối với các hạng mục sắp triển khai.

Kết quả của những hoạt động này phải là Product Backlog DEEP.
product-backlog-u-luong
Trong cuốn “Agile Product Management with Scrum: Creating Products That Customers Love”, ông Roman Pichler đã đưa ra quy tắc DEEP khi tạo một Product Backlog. Theo đó, Product Backlog có 4 đặc điểm cơ bản là Detailed appropriately, Estimated, Emergent và Prioritized.

  • Detailed appropriately: Chi tiết một cách thích hợp.
  • Emergent: Sự tiến hóa. Bạn có thể phản ánh thông tin chi tiết mới một cách dễ dàng bằng cách thêm, thay đổi và xóa các mục.
  • Estimated: Tính ước lượng. Mọi mặt hàng đều được ước tính gần đúng hoặc có kích thước.
  • Prioritized: Được ưu tiên.

5. Ai sẽ-nên tham gia buổi Backlog Refinement?

Product Owner luôn tham gia. Những người khác tham dự có thể thay đổi tùy theo các mục.

Những người tham gia tiềm năng là:

  • Các thành viên của Nhóm phát triển
  • Đại diện từ bên khách hàng
  • Thành viên của nhóm QA (nếu vẫn có nhóm phát triển và nhóm QA riêng biệt)
  • Scrum Master không cần thiết trong cuộc họp, nhưng lại đóng vai trò quan trọng trong việc giúp những người còn lại trong nhóm hiểu điều gì tạo nên một hạng mục Product Backlog tốt và cách ưu tiên chúng để tối đa hóa giá trị chuyển giao.

Are You Ready to Rock Your Backlog Refinement?
It’s time to say goodbye.