2016/06/11

Backlog Management for Product Owner

Tình huống
Một dự án phát triển P bao gồm 5 developers và một scrummaster (hoặc project lead/project manager... tuỳ theo cách bạn gọi) chung sống và phát triển một phần mềm vui vẻ.

Họ sử dụng một dạng kanban để quản lý công việc của họ. 
Các lane trong kanban khá đơn giản và cơ bản, bao gồm TODO, DOING, VERIFIED (đã test) và DONE (hoàn thành).

Họ sử dụng cycle, theo cách gọi khác là sprint/iteration là 2 tuần. 
Cứ mỗi cuối 2 tuần, họ archive những công việc đã DONE, tiếp tục chuyển các công việc từ TODO sang DOING và tiếp tục công việc.
Cách sử dụng của họ có vẻ lẫn, hay áp dụng phối hợp những thói quen của các khung làm việc Scrum, Scrumban và Kanban.

Cho đến một ngày, Product Owner từ phương trời xa đến join vào dự án.
PO chưa có thói quen sử dụng phần mềm để quản lý yêu cầu.
Tuy nhiên, khi nhìn thấy công cụ kanban mà nhóm phát triển sử dụng, PO thích ngay mà muốn dùng kanban để quản lý chính công việc của anh ta, cùng đội phát triển.

Các cách tiếp cận
Một developer có kinh nghiệm khuyên rằng, khi chưa quen với backlog, kanban và các công cụ, PO có thể đưa rất cả các yêu cầu, nguyện vọng, phản hồi của anh vào TODO và nhóm sẽ sử lý dần. 

PO gật đầu và làm theo cách đó một thời gian

PO nhận ra rằng nhu cầu quản lý công việc cần làm (backlog) của PO nhiều hơn là TODO.

Sau một thời gian sử dụng cột TODO, trao đổi với nhóm phát triển hàng ngày, kéo thả task từ TODO sang DOING, VERIFY những gì mình yêu cầu, PO phát triện ra rằng workflow của anh nhiều hơn thế. Anh không chỉ cần biết những gì cần phải làm.

PO cần một backlog như thế nào?
Việc quản lý yêu cầu (backlog) thuộc về PO. 
Những ý tưởng bất chợt đếu với PO cũng cần được ghi lại.
Những công việc, feedback từ stakeholders mọi nguồn cũng cần được PO lưu lại.

Hơn thế nữa, anh cần đánh giá độ ưu tiêu của các công việc này. Cái gì cần làm trước, cái gì làm sau, cái gì quan trọng hơn... đối với từng stakeholder, với chính bản thân anh ta và chính dự án. 

Đội phát triển cũng involve, ở thời điểm thích hợp 
Sau khi có một danh sách backlog có độ ưu tiên đứng từ góc nhìn của PO, những yêu cầu này được trao đổi đội phát triển để quyết định một số điểm như: 1) tính khả thi, 2) bao giờ nhóm có thể bắt đầu 3) mất khoảng bao nhiêu giời gian và dự định hoàn thành.

Những nội dung trên cần sự trao đổi và đồng thuận giữa PO và nhóm phát triển.

Một số trường hợp dễ thấy:
  1. PO muốn, nhưng dev team không thể đáp ứng về mặt kỹ thuật, năng lực hay thời gian,
  2. PO muốn, nhưng dev team quá bận vì những tác vụ khác, do đó không làm được. 

Những yêu cầu từ phía PO được cho là "OK" khi nhóm phát triển tự tin rằng họ có thể thoả mãn yêu cầu của PO mà không cần hỏi thêm gì nhiều. 

Tới thời điểm này, việc định nghĩa yêu cầu công việc được coi là xong. 
Tiếp đó, nhóm phát triển làm việc được giao và khi họ xong, sản phẩm đầu ra được VERIFY bởi PO (là tốt nhất)

Sau khi yêu cầu được đưa vào DOING, nhóm phát triển phát triển theo quy trình mà họ đã quen thuộc. 

JIRA/Atlassian đã làm tốt việc trên, mô trình trên được JIRA mô tả và sử dụng như sau.

Chia "TODO" thành các lane,
(từ trái qua phải) 
- Not ready yet: Feedback thô đối với nhóm dev. Những task dạng này cần PO, stakeholder trao đổi rõ ràng hơn, trả lời câu hỏi: 1) Họ muốn gì? 2) Thay đổi (high level...) thế nào 
- "Not ready yet" được (tiền xử lý) sao cho thông tin đơn giản, dễ hiểu và được đưa vào "Unprioritized". Unprioritized nghĩa là, những công việc trong lane này là các việc phải làm, nhưng chưa được đô tiên và đã khá rõ ràng hơn là ý tưởng thô.
- Ready for dev team: Nhóm dev hài lòng về độ chi tiết của yêu cầu và sẵn sàng kéo sang cột DOING

Lưu lý:
Backlog quản lý bằng kanban ở đây có chức năng: Thể hiện độ ưu tiên cuả công việc theo một cách nào đấy, tốt nhất là đánh số được theo chuỗi 1, 2, 3... trong đó: việc số càng nhỏ thì độ ưu tiên càng lớn. 

Nếu không thể sử dụng chuỗi số, PO có thể đánh độ ưu tiên theo thứ tự: High, Medium, Low...

Tham khảo:
The JIRA roadmap backlog has four major states:

  1. Not ready yet: Raw feedback
  2. Unprioritized: Committed to the back log, but not ready for handoff to development
  3. Ready for feature teams: The feature teams should work on the highest priority items first
  4. In design (PM and Dev): The feature story is actively being worked on



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.