Tóm tắt nhanh
Refinement là hoạt động làm rõ backlog trước khi đưa vào sprint. Team xem lại user story, acceptance criteria, dependency, estimate và rủi ro. Trong team Nhật, refinement thường là nơi quan trọng để 認識合わせ trước khi sprint planning.
Bài này giúp developer Việt Nam biết cần chuẩn bị câu hỏi gì trong refinement, thay vì chờ đến lúc implement mới phát hiện story thiếu thông tin.
Refinement là gì?
Refinement, hoặc backlog grooming, là quá trình làm cho backlog item "ready" hơn. Không nhất thiết là một meeting cố định, nhưng nhiều team có buổi refinement hàng tuần.
Trong refinement, team thường kiểm tra:
- Điểm kiểm tra
- Mục tiêu
- Câu hỏi
- Story này để giải quyết vấn đề gì?
- Điểm kiểm tra
- Scope
- Câu hỏi
- Phạm vi gồm màn hình, API, DB, CSV, batch không?
- Điểm kiểm tra
- Acceptance criteria
- Câu hỏi
- Khi nào được chấp nhận?
- Điểm kiểm tra
- Dependency
- Câu hỏi
- Có phụ thuộc design, API, người khác không?
- Điểm kiểm tra
- Estimate
- Câu hỏi
- Độ phức tạp khoảng bao nhiêu?
- Điểm kiểm tra
- Risk
- Câu hỏi
- Có điểm nào cần spike trước không?
Nếu story chưa đủ rõ, team có thể không đưa vào sprint hoặc tách thành investigation task.
Developer nên hỏi gì trong refinement?
Hãy chuẩn bị câu hỏi theo nhóm:
Scope
Story này áp dụng cho màn hình nào? Có mobile không? Có API hoặc CSV không? Có ảnh hưởng batch không?
Data
Input và output là gì? Date format, timezone, null, duplicate, encoding có yêu cầu gì không?
Permission
Role nào được dùng chức năng? Role nào không được thấy? Nếu không có quyền thì hiển thị gì?
Error
Khi lỗi thì message gì? Có cần log không? Có retry không?
Test
Tester sẽ chấp nhận theo case nào? Có cần test regression phần cũ không?
Ready nghĩa là gì?
Một backlog item "ready" không có nghĩa là mọi chi tiết hoàn hảo. Nó có nghĩa là đủ rõ để team bắt đầu sprint mà không bị block ngay.
Ví dụ Definition of Ready đơn giản:
- Điều kiện
- Mục tiêu rõ
- Ý nghĩa
- Team hiểu vì sao làm
- Điều kiện
- Acceptance criteria rõ
- Ý nghĩa
- Biết khi nào xong
- Điều kiện
- Dependency lớn đã xử lý
- Ý nghĩa
- Không bị block ngay
- Điều kiện
- Estimate được
- Ý nghĩa
- Team đánh giá được effort
- Điều kiện
- Risk đã biết
- Ý nghĩa
- Có kế hoạch xử lý
Không phải team nào cũng dùng Definition of Ready chính thức, nhưng tư duy này rất hữu ích.
Câu tiếng Nhật nên nhớ
- 日本語
- リファインメントで確認したいです。
- かな
- りふぁいんめんとでかくにんしたいです
- Nghĩa tiếng Việt
- Tôi muốn xác nhận trong refinement.
- Dùng khi nào
- Trước meeting
- 日本語
- 対応範囲を確認させてください。
- かな
- たいおうはんいをかくにんさせてください
- Nghĩa tiếng Việt
- Cho tôi xác nhận phạm vi xử lý.
- Dùng khi nào
- Scope
- 日本語
- 受入条件を追加したいです。
- かな
- うけいれじょうけんをついかしたいです
- Nghĩa tiếng Việt
- Tôi muốn bổ sung acceptance criteria.
- Dùng khi nào
- Story thiếu điều kiện
- 日本語
- 依存関係があります。
- かな
- いぞんかんけいがあります
- Nghĩa tiếng Việt
- Có dependency.
- Dùng khi nào
- Phụ thuộc task khác
- 日本語
- 先にスパイクが必要です。
- かな
- さきにすぱいくがひつようです
- Nghĩa tiếng Việt
- Cần spike trước.
- Dùng khi nào
- Chưa rõ kỹ thuật
- 日本語
- このままスプリントに入れるのはリスクがあります。
- かな
- このまますぷりんとにいれるのはりすくがあります
- Nghĩa tiếng Việt
- Đưa vào sprint như hiện tại có risk.
- Dùng khi nào
- Story chưa ready
Developer Việt Nam dễ hiểu sai điểm nào?
1. Refinement là việc của PO
PO chuẩn bị backlog, nhưng developer cần giúp phát hiện điểm thiếu kỹ thuật, dependency và test risk.
2. Chỉ cần đọc title
Title không đủ để estimate. Hãy đọc description, comment, design và acceptance criteria.
3. Hỏi quá muộn
Nếu đến giữa sprint mới hỏi câu scope lớn, sprint có thể trễ. Refinement là lúc hỏi sớm.
4. Cố đưa story chưa rõ vào sprint
Story chưa ready nên được refine thêm hoặc tách spike. Sprint cần tính thực tế.
Checklist refinement
- Story có mục tiêu rõ không?
- Acceptance criteria có thể test được không?
- Scope có bị hiểu hai cách không?
- Có dependency ngoài team không?
- Có cần spike hoặc design trước không?
- Estimate có dựa trên giả định rõ không?
Học tiếp trên JLPTVN
Đọc thêm backlog và user story, sprint planning, văn hóa xác nhận. Luyện câu tại spec và ticket.
Sau khi đọc, làm bài luyện IT và lưu câu sai ở Review để quay lại đúng điểm yếu.
FAQ
Refinement có bắt buộc trong Scrum không?
Scrum coi refinement là hoạt động liên tục, không nhất thiết là event chính thức như daily hay review. Nhưng nhiều team vẫn có meeting riêng.
Ai nên tham gia refinement?
PO và developers nên tham gia. Tùy chủ đề, QA, designer hoặc stakeholder cũng có thể tham gia.
Story chưa ready có nên đưa vào sprint không?
Nên tránh nếu risk lớn. Có thể tách một spike để điều tra trước.