Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Bài 54 — Working with PO peers & cross-team

Kiến Thức Cơ Bản Scrum Product Owner Bài 54/60

Mở đầu — vì sao bài này quan trọng

Trong những bài trước, bạn đã quen với hình ảnh một Product Owner (PO) duy nhất sở hữu một Product Backlog, làm việc với một Scrum Team. Đó là mô hình đẹp trong sách giáo khoa. Nhưng thực tế ở các công ty đang tăng trưởng — đặc biệt ở Việt Nam và Đông Nam Á, nơi sản phẩm thường phình to rất nhanh sau khi gọi được vốn — bạn gần như chắc chắn sẽ không làm việc một mình. Bạn sẽ có "đồng nghiệp PO" (PO peers): những người cũng giữ vai trò PO nhưng phụ trách team khác, module khác, hoặc thậm chí sản phẩm khác trong cùng một hệ sinh thái.

Khi đó, một loạt câu hỏi mới xuất hiện. Nếu hai team cùng chạm vào một màn hình thanh toán thì ai quyết? Nếu team của bạn cần một API mà team khác sở hữu, bạn xếp nó vào backlog của ai? Nếu ba PO cùng muốn được team Platform ưu tiên trong cùng một Sprint thì ai nhường ai? Đây không còn là câu chuyện viết user story cho giỏi, mà là câu chuyện phối hợp ngang giữa các PO (cross-team PO collaboration).

Bài này tập trung đúng vào khoảng trống đó: cách nhiều PO cùng tồn tại, cùng đồng bộ, và cùng đưa ra quyết định mà không giẫm chân nhau. Nó khác với bài về Stakeholder Management (làm việc với người ngoài team) và khác với bài Scaling Scrum (các framework như LeSS, SAFe). Ở đây ta đứng ở góc nhìn con người và quy trình giữa các PO ngang hàng — kỹ năng mềm cứng mà gần như không có chứng chỉ nào dạy bạn, nhưng lại quyết định bạn có "sống sót" ở một tổ chức nhiều team hay không.

Khái niệm cốt lõi

Khi nào một tổ chức cần nhiều Product Owner?

Có ba bối cảnh phổ biến khiến một công ty đặt nhiều PO bên cạnh nhau:

1. Một sản phẩm, nhiều team (component/feature teams). Khi một sản phẩm quá lớn cho một team 7–9 người, nó được chia ra. Ví dụ một sàn thương mại điện tử tách thành team Tìm kiếm, team Giỏ hàng & Thanh toán, team Khuyến mãi. Mỗi team có thể có một PO riêng, nhưng tất cả vẫn phục vụ cùng một sản phẩm và lý tưởng nhất là cùng một Product Goal tổng.

2. Nhiều sản phẩm / nhiều vertical. Công ty có nhiều dòng sản phẩm tách biệt: một app gọi xe, một ví điện tử, một mảng giao đồ ăn. Mỗi mảng là một "product" độc lập với PO riêng, doanh thu riêng, lộ trình riêng. Các PO ít phụ thuộc nhau về tính năng nhưng lại đụng nhau ở thương hiệu, dữ liệu người dùng và nguồn lực chung.

3. Nền tảng dùng chung (shared platform). Đây là dạng khó nhằn nhất. Có một team Platform (hoặc Core, Infrastructure) sở hữu hệ thống đăng nhập, thanh toán, thông báo... mà mọi team sản phẩm đều cần. PO của Platform phục vụ "khách hàng nội bộ" là các PO khác. Quan hệ ở đây là quan hệ nhà cung cấp — người tiêu thụ, rất dễ phát sinh xung đột ưu tiên.

Nhận diện đúng bạn đang ở bối cảnh nào là bước đầu tiên, vì cơ chế phối hợp cho mỗi loại sẽ khác nhau.

Phân biệt "sở hữu" (ownership) và "phối hợp" (coordination)

Nguyên tắc nền tảng của phối hợp nhiều PO: mỗi hạng mục backlog phải có đúng một chủ sở hữu, nhưng có thể có nhiều bên liên quan. Khi hai PO tranh nhau "đây là việc của ai", gần như luôn là vì ranh giới sở hữu chưa rõ. Một PO khôn ngoan dành công sức vẽ rõ đường biên (boundary) giữa các backlog trước khi tính tới chuyện chia việc. Khi biên rõ, phối hợp trở thành trao đổi giữa hai chủ sở hữu rõ ràng, chứ không phải đấu tranh xem ai chịu trách nhiệm.

Phụ thuộc (dependency) — kẻ thù số một của tốc độ

Khi nhiều team cùng làm, thứ giết chết tốc độ không phải là code khó, mà là phụ thuộc chéo: team A không thể hoàn thành story của mình vì đang chờ API của team B. Phối hợp PO, suy cho cùng, phần lớn là quản lý phụ thuộc: phát hiện sớm, làm cho nó hiển thị (visible), thương lượng thứ tự, và giảm thiểu nó theo thời gian. Một PO giỏi không chỉ điền backlog của mình mà còn liên tục hỏi: "Story này của tôi đang phụ thuộc vào ai? Story của ai đang phụ thuộc vào tôi?"

Cơ chế đồng bộ giữa các PO

Để nhiều PO không trôi mỗi người một hướng, tổ chức cần vài cơ chế đồng bộ. Đây là những công cụ bạn nên chủ động thiết lập nếu nó chưa tồn tại:

  • PO Sync (họp đồng bộ PO định kỳ). Một cuộc họp ngắn 30–45 phút mỗi tuần giữa các PO cùng sản phẩm, để chia sẻ hướng đi, đồng bộ ưu tiên, và đặc biệt là khai báo phụ thuộc cho Sprint sắp tới. Đây là "Daily Scrum" phiên bản của tầng PO.
  • Chief Product Owner / Lead PO. Ở sản phẩm lớn, thường có một người giữ vai trò PO trưởng, sở hữu Product Goal tổng và phân rã backlog cho các PO con. Người này là trọng tài cuối khi các PO không tự thỏa thuận được.
  • Dependency board / bản đồ phụ thuộc. Một bảng trực quan (thường trên Jira hoặc một Miro board) cho thấy story nào của team này chờ team kia, kèm Sprint dự kiến giao.
  • Shared Definition of Done & shared backlog standard. Khi nhiều PO viết backlog, nếu mỗi người một kiểu thì việc chuyển giao giữa team rất tốn kém. Thống nhất chuẩn viết story và DoD chung giúp các team "nói chung một ngôn ngữ".
  • Joint refinement / joint Sprint Planning cho hạng mục liên team. Với một tính năng cần hai team cùng làm, hai PO nên cùng refine và lên kế hoạch để khớp thời điểm.

Tình huống thực tế

Tình huống 1 — Cú va chạm ở màn hình thanh toán (sàn TMĐT giả định "ChợViệt")

ChợViệt là một sàn thương mại điện tử Việt Nam đang tăng trưởng, chia thành ba team: Discovery (tìm kiếm, gợi ý), Checkout (giỏ hàng, thanh toán) và Growth (khuyến mãi, voucher). Linh là PO của Checkout, Tú là PO của Growth.

Trong một quý, Tú muốn ra mắt chương trình "voucher giảm 50k cho đơn đầu tiên", còn Linh đang muốn tái thiết kế lại toàn bộ luồng thanh toán để giảm tỉ lệ bỏ giỏ hàng từ 68% xuống 60%. Vấn đề: cả hai đều phải sửa chính xác cùng một màn hình — bước cuối của thanh toán. Hai team bắt đầu làm song song mà không nói với nhau. Đến Sprint Review, hai phiên bản màn hình "đá nhau", merge code xung đột, và phải lùi release hai tuần.

Diễn giải. Đây là lỗi phối hợp PO kinh điển: không xác định ai sở hữu màn hình thanh toán. Cả Linh và Tú đều cho rằng "phần của mình". Cách họ sửa: tổ chức một PO Sync, thống nhất rằng màn hình thanh toán thuộc sở hữu của Checkout (Linh), còn Growth chỉ "đặt hàng" các điểm chèn voucher thông qua một component có sẵn. Tú đưa nhu cầu voucher vào dạng một dependency rõ ràng, Linh đưa nó vào backlog của Checkout và cùng thống nhất Sprint giao. Quý sau, cùng kiểu tính năng được giao trơn tru, không còn xung đột code.

Bài học. Khi hai PO cùng chạm một bề mặt, hãy gán đúng một chủ sở hữu cho bề mặt đó, và biến nhu cầu của bên kia thành một phụ thuộc được khai báo công khai — đừng để hai team âm thầm làm song song.

Tình huống 2 — Team Platform bị "kéo căng" giữa ba PO (fintech khu vực Đông Nam Á)

Một công ty fintech khu vực (kiểu MoMo hoặc một ví điện tử tương tự) có team Platform sở hữu hệ thống KYC (xác thực danh tính) và thanh toán lõi. Ba PO sản phẩm — Ví, Cho vay, và Đầu tư — đều cần Platform làm việc cho mình. PO của Platform là Hùng, mỗi tuần nhận hơn 20 yêu cầu từ ba PO kia, và ai cũng nói việc của mình là "khẩn cấp, ảnh hưởng doanh thu".

Hậu quả: team Platform liên tục bị nhồi việc, mất 40% capacity vào việc context-switching, và không PO nào hài lòng. Hùng cảm thấy như một "tổng đài nhận khiếu nại" hơn là một PO.

Diễn giải. Vấn đề ở đây không phải Hùng làm dở, mà là thiếu cơ chế thương lượng ưu tiên giữa các PO tiêu thụ. Giải pháp họ áp dụng: lập một PO Sync hằng tháng giữa Hùng và ba PO kia, nơi mỗi PO trình bày tối đa 3 yêu cầu top, kèm ước lượng giá trị (ví dụ: "KYC cho sản phẩm Cho vay mở khóa 12 tỉ doanh thu quý này"). Capacity của Platform được chia theo tỉ lệ thỏa thuận trước — ví dụ 50% Ví, 30% Cho vay, 20% Đầu tư — và mọi thay đổi phải đưa ra bàn ở Sync chứ không nhắn riêng cho dev Platform. Hùng từ vai trò "tổng đài" trở thành người vận hành một quy trình minh bạch.

Bài học. Với shared platform, hãy biến quan hệ ngầm thành hợp đồng minh bạch: cố định tỉ lệ capacity, buộc mọi yêu cầu đi qua một kênh chung, và bắt mỗi PO định lượng giá trị thay vì hô "khẩn cấp". Điều này bảo vệ cả team Platform lẫn sự công bằng giữa các PO.

Tình huống 3 — Trải nghiệm rời rạc vì các PO không nói chuyện (super-app)

Một super-app Việt Nam có ba mảng do ba PO độc lập phụ trách: gọi xe, giao đồ ăn, và thanh toán. Mỗi PO tối ưu cho mảng của mình. Nhưng người dùng phàn nàn: nút "đánh giá tài xế" ở gọi xe nằm khác chỗ với "đánh giá shipper" ở giao đồ ăn, màu sắc nút thanh toán khác nhau giữa các mảng, và mỗi nơi yêu cầu nhập lại thông tin thẻ. Sản phẩm trông như ba app dán lại với nhau.

Diễn giải. Mỗi PO làm tốt phần mình nhưng không ai sở hữu trải nghiệm xuyên suốt. Đây là dạng phụ thuộc "mềm" — không phải code chờ nhau mà là tính nhất quán bị bỏ rơi ở khoảng giữa các backlog. Công ty xử lý bằng cách lập một PO Council họp hai tuần một lần, thống nhất các "nguyên tắc trải nghiệm chung" (shared UX patterns), và đưa thanh toán về một component dùng chung do PO Thanh toán sở hữu — các mảng khác chỉ nhúng vào. Họ cũng thêm vào Definition of Done một mục: "tuân thủ design system chung".

Bài học. Không phải mọi phụ thuộc đều là kỹ thuật. Khi nhiều PO tối ưu cục bộ, trải nghiệm tổng thể dễ vỡ vụn. Cần một diễn đàn để các PO cùng sở hữu những thứ "nằm giữa" — và cần cố định chúng thành chuẩn chung, đừng trông chờ vào thiện chí.

Hướng dẫn từng bước

Nếu bạn vừa bước vào một tổ chức nhiều PO, hoặc muốn lập lại trật tự phối hợp, hãy đi theo các bước sau:

Bước 1 — Vẽ bản đồ sở hữu (ownership map). Liệt kê các module/bề mặt chính của sản phẩm và gán đúng một PO sở hữu cho mỗi cái. Những vùng "không ai nhận" hoặc "hai người cùng nhận" chính là điểm nóng cần giải quyết đầu tiên.

Bước 2 — Lập bản đồ phụ thuộc. Với mỗi PO, hỏi hai câu: "Backlog của tôi đang chờ ai?" và "Ai đang chờ tôi?". Ghi lại thành một bảng phụ thuộc kèm Sprint dự kiến giao. Cập nhật nó mỗi lần refine.

Bước 3 — Thiết lập PO Sync định kỳ. Đặt một cuộc họp ngắn 30–45 phút mỗi tuần (hoặc trước mỗi Sprint Planning) cho các PO liên quan. Agenda cố định: cập nhật hướng đi, rà phụ thuộc cho Sprint tới, giải quyết tranh chấp ưu tiên.

Bước 4 — Thống nhất chuẩn chung. Cùng nhau chốt một Definition of Done chung và một chuẩn viết user story chung. Điều này giảm chi phí khi việc chuyển giao qua lại giữa các team.

Bước 5 — Đồng bộ ưu tiên trước Sprint. Trước khi mỗi team lên Sprint Planning, các PO phải khớp với nhau những story liên team: cái nào phải giao trước để cái kia làm được. Đừng để hai team phát hiện xung đột ngay trong Sprint.

Bước 6 — Định nghĩa cơ chế phân xử (escalation path). Khi hai PO không tự thỏa thuận được, ai là người quyết cuối? Thường là Lead PO/Chief PO hoặc Head of Product. Biết trước đường escalation giúp tránh bế tắc kéo dài.

Bước 7 — Liên tục giảm phụ thuộc. Phụ thuộc là chi phí, không phải định mệnh. Theo thời gian, hãy cùng các PO khác tái cấu trúc ranh giới team/backlog để mỗi team tự chủ hơn — ví dụ tách một component dùng chung để các team không phải chờ nhau nữa.

Lỗi thường gặp & mẹo

Lỗi: Tranh nhau "việc của ai" thay vì thống nhất ranh giới. Khi hai PO cãi nhau về một story, đừng cãi tiếp về story đó — hãy lùi lại và làm rõ ai sở hữu vùng bề mặt liên quan. Sửa gốc, đừng sửa ngọn.

Lỗi: Phụ thuộc ẩn (hidden dependency). Tệ nhất là phụ thuộc chỉ lộ ra giữa Sprint khi đã quá muộn. Mẹo: biến "rà phụ thuộc" thành một mục cố định trong refinement và trong PO Sync. Hỏi đều đặn còn hơn xử lý khủng hoảng.

Lỗi: PO tối ưu cục bộ, bỏ rơi bức tranh chung. Một PO chỉ chăm chăm KPI riêng dễ tạo ra trải nghiệm rời rạc hoặc nợ kỹ thuật cho team khác. Mẹo: gắn một phần mục tiêu của bạn với Product Goal tổng, và dành thời gian quan tâm tới những vùng "nằm giữa".

Lỗi: Đi cửa sau (nhắn riêng cho dev team khác). Khi bạn nhờ trực tiếp một developer của team khác mà không qua PO của họ, bạn phá vỡ backlog của họ và tạo công việc vô hình. Mẹo: mọi yêu cầu liên team đi qua PO sở hữu, không đi đường tắt.

Lỗi: Coi PO khác là đối thủ giành nguồn lực. Tâm lý "win-lose" giữa các PO làm hỏng cả tổ chức. Mẹo: dùng dữ liệu giá trị (doanh thu, số người dùng ảnh hưởng) để thương lượng thay vì cảm tính, và nhớ rằng các bạn cùng phục vụ một công ty.

Mẹo vàng: Xây quan hệ con người trước khi cần đến nó. Cà phê 15 phút với một PO peer khi mọi thứ êm đẹp sẽ giúp ích gấp nhiều lần khi hai team va chạm. Phối hợp ngang chạy trên niềm tin, không chỉ trên quy trình.

Bài tập thực hành

  • Vẽ ownership map cho sản phẩm của bạn. Liệt kê 5–8 module/bề mặt chính, gán mỗi cái cho đúng một PO (hoặc chính bạn). Đánh dấu những vùng đang "không ai nhận" hoặc "hai người cùng nhận". Viết một câu giải pháp cho mỗi điểm nóng.
  • Lập bảng phụ thuộc Sprint tới. Với Sprint sắp tới, liệt kê mọi story của bạn đang phụ thuộc vào team khác và ngược lại. Với mỗi phụ thuộc, ghi: ai sở hữu, Sprint dự kiến giao, mức rủi ro nếu trễ.
  • Thiết kế agenda PO Sync. Soạn agenda chi tiết cho một cuộc PO Sync 30 phút giữa 3 PO, bao gồm thời lượng từng mục và cách xử lý khi có tranh chấp ưu tiên không giải quyết được trong cuộc họp.
  • Tình huống đóng vai. Bạn là PO Checkout, một PO khác nhắn riêng cho developer của bạn nhờ làm gấp một việc, làm lệch kế hoạch Sprint. Viết ra cách bạn phản hồi vừa giữ được ranh giới, vừa giữ quan hệ tốt với PO kia.

Tóm tắt

  • Trong tổ chức tăng trưởng, bạn gần như chắc chắn làm việc cùng nhiều PO khác, ở ba bối cảnh: một sản phẩm nhiều team, nhiều sản phẩm/vertical, hoặc nền tảng dùng chung.
  • Nguyên tắc gốc: mỗi hạng mục backlog có đúng một chủ sở hữu, nhiều bên liên quan. Phần lớn xung đột PO bắt nguồn từ ranh giới sở hữu mơ hồ.
  • Phối hợp PO về bản chất là quản lý phụ thuộc: phát hiện sớm, làm cho nó hiển thị, thương lượng thứ tự, và giảm thiểu dần theo thời gian.
  • Các cơ chế đồng bộ then chốt: PO Sync định kỳ, vai trò Lead/Chief PO, bản đồ phụ thuộc, chuẩn DoD và backlog chung, và refinement/planning chung cho hạng mục liên team.
  • Tránh các bẫy: tranh "việc của ai", phụ thuộc ẩn, tối ưu cục bộ, đi cửa sau, và tâm lý win-lose. Xây quan hệ con người trước khi cần đến nó.
Khi bạn làm chủ được nghệ thuật phối hợp ngang giữa các PO, bạn không chỉ giúp team mình chạy nhanh hơn — bạn trở thành chất keo giữ cho cả nhiều team cùng đi về một hướng. Đó chính là dấu hiệu của một PO trưởng thành, sẵn sàng cho những vai trò lớn hơn trong hành trình sản phẩm.