Definition of Done – “Thế nào là xong” trong Scrum (PMI-ACP)

Definition of Done – “vạch đích chung” của Scrum Team về chất lượng & mức độ hoàn thành công việc.
Ngôn ngữ • Language
- VI
- EN
Definition of Done – “Thế nào là xong?”
💡 Bài này dành cho ai?
- Bạn đọc đến đoạn Definition of Done trong bài Scrum Artifacts và thấy hơi mơ hồ.
- Bạn từng rơi vào cảnh: “mình nghĩ là xong rồi mà sếp/bên khách bảo chưa xong”.
- Bạn chuẩn bị thi PMI-ACP và muốn phân biệt rõ Definition of Done vs Acceptance Criteria vs “xong theo cảm tính”.
TL;DR – Definition of Done trong 1 phút
- Definition of Done (DoD) = shared understanding của Scrum Team về việc “khi nào thì công việc thực sự được xem là xong”.
- DoD:
- Gắn với Increment – Increment chỉ được tính là Done khi đáp ứng DoD.
- Tạo transparency về chất lượng và mức độ hoàn thành.
- Thường áp dụng cho mọi Product Backlog Item trong product / project.
- DoD khác với:
- Acceptance Criteria: điều kiện cụ thể cho từng user story / PBI.
- Definition of Ready (nếu team dùng): điều kiện trước khi kéo việc vào Sprint.
- Trong PMI-ACP, DoD là keyword quan trọng khi đề hỏi về: quality, “done”, Increment, transparency, exam traps về “đếm việc chưa Done là Done”.
Gợi ý cách học bài này:
- Đọc phần ví dụ đời sống ở mục 1.
- Xem kỹ phần DoD trong Scrum & DoD vs Acceptance Criteria.
- Trước khi thi, quay lại đọc nhanh Exam patterns & traps.
🤔 Câu hỏi khởi động – Làm sao bạn biết mình “xong việc”?
- Làm cho sếp: “Khi nào thì em coi là đã xong báo cáo?”
- Làm cho mình: “Khi nào thì mình coi là dọn nhà xong?”
- Làm cho khách hàng: “Khi nào thì họ coi là xong website?”
Nếu mỗi người trả lời một kiểu, xung đột là chuyện sớm muộn.
Definition of Done sinh ra để cả team và stakeholder có chung một câu trả lời.
- Câu chuyện đời thường: “Em nghĩ là xong rồi mà…”
Hãy thử vài ví dụ rất đời thường:
- Quay xong một video bài học
- Khi nào thì “xong” ?
→ Khi bạn đã thu đủ tất cả slide cần nói, không còn đoạn bị lỗi, đã render ra file dùng được.
- Khi nào thì “xong” ?
- Sơn phòng ngủ màu xanh
- Khi nào thì “xong”?
→ Khi mọi góc tường đều đã lên màu đồng đều, không chỗ loang, không mảng trắng sót lại.
- Khi nào thì “xong”?
- Viết một tính năng báo cáo cho ứng dụng
- Khi nào thì “xong” ?
→ Khi code chạy được, xuất đúng báo cáo, đã test các case quan trọng, không còn bug blocker, log & doc cơ bản đã cập nhật.
- Khi nào thì “xong” ?
Điểm chung:
- Người làm công việc (developer, tester, BA, designer…) cần biết rõ tiêu chí để có thể tự tin nói:
“Tụi em xong rồi” – và khách hàng / sếp cũng gật đầu: “Ừ, đúng là xong”.
Definition of Done chính là bộ tiêu chí đó, nhưng ở cấp team & product, không phải mỗi người một kiểu.
- Định nghĩa “chính thống” – Definition of Done là gì?
Theo Scrum (Scrum Guide):
- Definition of Done là mô tả chính thức về trạng thái của Increment khi nó đáp ứng các thước đo chất lượng yêu cầu.
- Nói dễ hiểu hơn:
- Đó là ngưỡng chất lượng tối thiểu mà Increment phải đạt được để được xem là “Done”.
- Là shared understanding trong Scrum Team về “Done nghĩa là gì”.
Một vài điểm quan trọng:
- DoD:
- Giúp team và stakeholder có cùng một định nghĩa về “xong”.
- Làm rõ những việc luôn phải làm cho mỗi Product Backlog Item (PBI) / Increment, không được “quên cho qua”.
- Tạo transparency – ai cũng nhìn được chất lượng thực sự.
🌱 Nên có DoD từ rất sớm (đầu product / project) và có thể tiến hoá dần khi team trưởng thành, chất lượng được nâng lên.
DoD và khái niệm “done-done”
Trong nhiều sách luyện thi, bạn sẽ gặp cụm “done” vs “done-done”.
- “Done” đôi khi chỉ là cảm giác chủ quan của người làm: chạy được trên máy mình, code đã merge…
- “Done-done” thường được hiểu là hoàn thành theo Definition of Done – đã qua đủ các bước kiểm tra, đạt chuẩn chất lượng chung và sẵn sàng trở thành một phần của Increment.
Khi thấy đề nhắc đến “done-done” hoặc “really done”, hãy nghĩ ngay đến Definition of Done.
- DoD trong Scrum & PMI-ACP – thuộc về ai, dùng lúc nào?
3.1. Ai chịu trách nhiệm về Definition of Done?
Trong Scrum:
- Cả Scrum Team cùng chia sẻ Definition of Done.
- Developers:
- Chịu trách nhiệm tuân thủ DoD trong từng Sprint.
- Mỗi Increment họ tạo ra phải đáp ứng DoD.
- Product Owner:
- Đảm bảo DoD phản ánh đúng mong đợi của khách hàng / tổ chức về chất lượng.
- Thường mang các chuẩn của business, compliance, quy định ngành… vào DoD.
- Scrum Master:
- Facilitate để team đạt shared understanding về DoD.
- Giúp tổ chức hiểu DoD là gì & tại sao quan trọng.
Ngoài ra:
- Tổ chức có thể đưa ra những chuẩn chất lượng tối thiểu (ví dụ coding standard, security baseline…) – Scrum Team kế thừa vào DoD của mình.
3.2. DoD được dùng ở đâu trong Scrum Events?
- Sprint Planning:
- Developers ước lượng lượng việc có thể hoàn thành, dựa trên việc biết rằng tất cả việc phải đáp ứng DoD.
- Daily Scrum:
- Team nói chuyện về tiến độ tới Increment Done – “Done” ở đây chính là Done theo DoD.
- Sprint Review:
- Những gì không đáp ứng DoD không được trình bày như Increment “hoàn thành”.
- Sprint Retrospective:
- Team có thể nâng chuẩn DoD khi cảm thấy đã đủ sức giữ chất lượng cao hơn.
Trong PMI-ACP, câu hỏi về “làm sao team biết công việc đã thực sự hoàn thành” hoặc “làm sao tạo transparency về chất lượng” → thường test bạn về Definition of Done.
3.3. DoD ở cấp product vs cấp team
- Mỗi product nên có ít nhất một Definition of Done.
- Nếu có nhiều Scrum Team cùng làm một product, họ nên chia sẻ chung một DoD để Increment nào của team nào cũng ghép vào được, chất lượng đồng đều.
- Các team có thể bổ sung chi tiết cụ thể cho bối cảnh của mình, nhưng không được thấp hơn chuẩn chung của product / tổ chức.
- Definition of Done vs Acceptance Criteria vs Definition of Ready
Đây là chỗ đề thi rất thích gài.
4.1. Definition of Done (DoD)
- Áp dụng ở cấp product / Increment.
- Là ngưỡng chất lượng chung cho tất cả PBI trong phạm vi áp dụng.
- Ví dụ:
- Code đã được review theo coding standard.
- Unit test & integration test pass, code coverage tối thiểu X%.
- Không còn defect mức blocker/critical.
- Document / API spec / migration script đã cập nhật (nếu chính sách yêu cầu).
4.2. Acceptance Criteria
- Áp dụng cho từng PBI / user story.
- Mô tả:
“Trong trường hợp A/B/C, hệ thống phải làm X/Y/Z”. - Ví dụ:
- “Khi user nhập mật khẩu sai quá 5 lần, khóa tài khoản 30 phút.”
- “Report phải xuất được file CSV & PDF với đúng các cột A/B/C.”
Tóm lại:
- Acceptance Criteria = “work đúng điều khoản chức năng”.
- DoD = “work đạt chuẩn chất lượng chung”
4.3. Definition of Ready (DoR – nếu có)
Không phải khái niệm chính thức của Scrum, nhưng nhiều team Agile dùng:
- Definition of Ready = tiêu chí để một PBI đủ chín trước khi kéo vào Sprint:
- Đã có mô tả, acceptance criteria rõ ràng.
- Dependencies chính đã được làm rõ.
- Estimate đã được thảo luận.
PMI-ACP có thể nhắc tới Ready/Done, nhưng phần chính vẫn là DoD – hãy luôn nhớ DoD gắn với Increment, còn Acceptance Criteria gắn với từng PBI.
- DoD – “Đạt chuẩn chất lượng chung chưa?”
- Acceptance Criteria – “Đúng yêu cầu riêng của story này chưa?”
- DoR – “Đủ chín để kéo vào Sprint chưa?”
- Ví dụ Definition of Done & một vài anti-pattern
5.1. Ví dụ DoD cho một team phát triển web/app
Giả sử Scrum Team phát triển một ứng dụng web nội bộ. DoD của họ có thể:
- Code:
- Code đã được review bởi ít nhất 1 developer khác.
- Không vi phạm rule “critical” của static code analysis tool.
- Test:
- Đã có unit test cho logic chính, pass 100% các test case quan trọng.
- Regression test cơ bản pass, không bug blocker/critical.
- Security & infra:
- Không để lộ secret trong code / log.
- Đã deploy lên môi trường staging ổn định.
- Documentation:
- API document / user guide đã được cập nhật.
Bất kỳ PBI nào không đáp ứng đầy đủ các gạch đầu dòng trên → chưa Done.