Danh mục:
Mục đíc
-Ở giai đoạn đầu của một dịch vụ hoặc dự án, các cuộc thảo luận tập trung vào giá trị cốt lõi và các tính năng chính (Feature) cần được ưu tiên hơn là đi sâu vào chi tiết màn hình, giao diện (UI) hay phương thức triển khai cụ thể.
Tuy nhiên, trong nhiều trường hợp, các bên liên quan (stakeholders) thường giao tiếp dựa trên các yêu cầu đã được diễn giải theo lăng kính cá nhân của họ, dẫn đến việc bản chất của tính năng hoặc giá trị người dùng bị pha loãng.
Tài liệu này cung cấp một cấu trúc sắp xếp sao cho tất cả các nhóm (Kế hoạch, Thiết kế, Phát triển, QA) có thể phân tích và đưa ra ý kiến từ góc nhìn chuyên môn riêng dựa trên một tính năng (Feature) duy nhất. Mục đích là nhằm hình thành sự đồng thuận dựa trên giá trị ngay từ sớm, giảm thiểu lãng phí trong triển khai và đặt nền móng để truyền tải giá trị thực sự cho người dùng.
Tổng quan
Trong giai đoạn đầu thiết kế sản phẩm, thay vì chỉ đưa ra bảng đặc tả chức năng đơn thuần, cần có một quá trình phân tích một Tính năng từ nhiều góc nhìn khác nhau. Phương pháp này có thể gọi là
Feature-Centric Collaboration (Hợp tác lấy tính năng làm trung tâm) hoặc Feature-Driven Prism View (Góc nhìn lăng kính dựa trên tính năng), dựa trên nguyên tắc:Các nhóm Kế hoạch, Thiết kế, Phát triển và QA cùng tiếp cận một tính năng đồng thời, sử dụng chuyên môn của mình để nâng cao độ hoàn thiện cho tính năng đó.
Giải thích khái niệm: Feature-Driven Prism View
Mỗi tính năng (Feature) đóng vai trò như một lăng kính phân tích đa chiều. Người lập kế hoạch, nhà thiết kế, lập trình viên và QA đi qua lăng kính này bằng góc nhìn của mình, đặt ra các câu hỏi về Giá trị, Khả năng sử dụng, Khả năng triển khai và Độ tin cậy.
- Người lập kế hoạch (PM/PO): "Tính năng này mang lại giá trị kinh doanh gì?"
- Nhà thiết kế (UX/UI): "Người dùng có thể sử dụng tính năng này một cách trực quan không?"
- Lập trình viên (Engineering): "Có thể triển khai được không? Có khả năng mở rộng về mặt kỹ thuật không?"
- QA (Tester): "Nó có bền bỉ trước các trường hợp biên (edge cases) và lỗi không?"
Tóm tắt cấu trúc (Luồng hợp tác)
- Kế hoạch: Giá trị cốt lõi và mục đích kinh doanh của tính năng này là gì?
- Thiết kế: Luồng UX có tự nhiên không? UI có trực quan không?
- Phát triển: Có khả thi dưới góc độ kiến trúc và kỹ thuật không?
- QA: Hệ thống có ổn định trong các tình huống ngoại lệ hoặc điều kiện biên không?
Lưu ý: Ngoài góc nhìn chuyên môn, việc các thành viên cùng quan sát và đưa ra ý kiến về tính năng dưới góc độ của người dùng là một xu hướng phù hợp hơn trong thời đại ngày nay.
Sơ đồ (PlantUML)
Sơ đồ minh họa sự tương tác đa chiều giữa các bộ phận với Feature ở trung tâm:
PM -> Feature: Góc nhìn Phân tích/Kế hoạch
Design -> Feature: Góc nhìn Thiết kế
Dev -> Feature: Góc nhìn Phát triển
QA -> Feature: Góc nhìn QA
Ngược lại, Feature phản hồi lại cho các bộ phận để cải thiện UX, thảo luận kỹ thuật và thiết kế kịch bản kiểm thử.
Tài nguyên tham khảo
- Feature Teams & Cross-Functional Collaboration: Các bài viết của Martin Fowler và Agile Alliance về nhóm tính năng so với nhóm thành phần.
- Dual-Track Agile: Phương pháp hợp tác song song giữa khám phá (Discovery) và triển khai (Delivery) của Marty Cagan.
- Shift Left Testing: Hướng dẫn của Atlassian về việc đưa QA vào sớm trong quy trình.
- Sách nên đọc: Inspired (Marty Cagan), Team Topologies (Matthew Skelton), Lean UX (Jeff Gothelf).
Resources
snippet @startuml !define RECTANGLE class title Hợp tác liên chức năng lấy tính năng làm trung tâmn(Feature-Centric Cross-Functional Collaboration) RECTANGLE Feature { 🎯 Tính năng (Feature) } RECTANGLE PM { 🧠 Lập kế hoạchn(Giá trị, Mục tiêu) } RECTANGLE Design { 🎨 Thiết kến(UX, Luồng trải nghiệm) } RECTANGLE Dev { 💻 Phát triểnn(Tính khả thi) } RECTANGLE QA { 🔍 Kiểm thửn(Khả năng kiểm thử) } PM --> Feature : Góc nhìn Phân tích/Kế hoạch Design --> Feature : Góc nhìn Thiết kế Dev --> Feature : Góc nhìn Phát triển QA --> Feature : Góc nhìn QA Feature --> PM : Phản hồi Feature --> Design : Cải thiện UX Feature --> Dev : Thảo luận kỹ thuật Feature --> QA : Thiết kế kịch bản kiểm thử @enduml
Nguồn bài viết ryukato.github.io