BAHUB.VN
Glossary

Definition of Done(DoD)

Agile & ScrumTiêu chuẩn hoàn thành

Danh sách điều kiện mà mọi hạng mục phải thỏa mãn thì mới được coi là xong. Áp dụng cho tất cả item trong sản phẩm, và là cam kết đi kèm artifact Increment trong Scrum.

Định nghĩa

Câu hỏi kinh điển ở mọi buổi họp cuối sprint: "cái này xong chưa?" Dev bảo xong rồi, code đã push. QC bảo chưa, chưa test regression. BA bảo chưa, tài liệu chưa cập nhật. Ai cũng đúng theo tiêu chuẩn riêng của mình. Definition of Done sinh ra để dẹp cuộc tranh cãi đó bằng một danh sách viết sẵn, thống nhất một lần cho tất cả.

Trong Scrum Guide 2020, DoD là cam kết đi kèm artifact Increment. Item chưa đạt DoD thì không được coi là Increment, không được demo ở Sprint Review, và quay lại Product Backlog.

Chỉ cần một item lọt qua mà chưa đạt DoD, cả khái niệm "xong" trong team mất giá trị từ sprint đó trở đi.

Ai lập và lập ở mức nào

Nếu tổ chức đã có DoD chuẩn thì mọi Scrum Team phải tuân thủ tối thiểu mức đó. Team được phép siết chặt hơn, không được nới lỏng. Nếu tổ chức chưa có, Scrum Team tự lập DoD phù hợp với sản phẩm của mình.

DoD nên tiến hóa dần. Team mới hình thành mà đặt DoD gồm 15 mục với độ phủ unit test 90% thì chỉ dẫn tới việc cả team giả vờ. Bắt đầu bằng 5 đến 6 mục làm được thật, siết dần sau mỗi vài sprint.

Một DoD thật, dùng được

Của một team 7 người làm ứng dụng web quản lý bảo hiểm, sprint 2 tuần:

  • Code đã được ít nhất một người khác review và merge vào nhánh develop.
  • Unit test cho phần logic nghiệp vụ mới đã viết và chạy xanh trên CI.
  • Toàn bộ acceptance criteria của story đã được QC kiểm và đạt.
  • Không còn bug mức Critical hoặc High liên quan tới story.
  • Đã chạy trên môi trường staging với dữ liệu gần giống thật.
  • Kiểm tra được trên Chrome, Safari và trình duyệt điện thoại.
  • Tài liệu API trên Confluence đã cập nhật nếu có thay đổi endpoint.
  • Có ghi chú release cho phần thay đổi nhìn thấy được với người dùng.

Tám dòng, dán ngay cạnh bảng công việc. Không cần dài hơn.

Phân biệt DoD, DoR và Acceptance Criteria

Đây là bộ ba bị lẫn lộn nhiều nhất trong nghề.

Tiêu chíDefinition of ReadyAcceptance CriteriaDefinition of Done
Trả lời câuItem đủ rõ để bắt tay làm chưaStory này chạy đúng nghĩa là thế nàoItem đã đủ chất lượng để giao chưa
Phạm viChung cho mọi itemRiêng từng storyChung cho mọi item
Thời điểm dùngTrước Sprint PlanningKhi viết story và khi testTrước khi đóng item
Ai giữScrum Team, thường PO chủ trìBA hoặc PO viết, team góp ýCả Scrum Team, hoặc chuẩn tổ chức
Có trong Scrum GuideKhôngKhông

Acceptance criteria trả lời "đúng chưa", DoD trả lời "đủ chưa". Một story có thể chạy đúng hết acceptance criteria nhưng vẫn chưa Done vì chưa ai review code và chưa lên staging.

Ví dụ thực tế

Đến kỳ release của một cổng thông tin nội bộ — công ty sản xuất, 870 nhân viên — cả 9 item của Sprint 5 đều đã được báo là xong từ hai tuần trước. Hoá ra 4 trong số đó mới chỉ chạy trên máy dev, chưa lên staging bao giờ.

Team mất trọn 6 ngày của sprint kế tiếp để dọn: sửa lỗi cấu hình môi trường, viết lại phần import dữ liệu, test lại từ đầu. Velocity của sprint 6 tụt từ 38 xuống 21 điểm, và không ai hiểu vì sao cho tới khi nhìn lại.

Sau đó team thêm hai dòng vào DoD: bắt buộc lên staging và bắt buộc có người thứ hai xác nhận. Sprint 7 chỉ báo xong 6 item, ít hơn hẳn về số lượng, nhưng đó là 6 item thật.

Lỗi hay gặp

  • DoD nằm trong một trang Confluence từ hồi khởi động dự án. Dán nó lên chỗ team nhìn thấy mỗi ngày, hoặc ghim thẳng vào mô tả cột Done trên bảng.
  • Nhét acceptance criteria của một story cụ thể vào DoD. DoD phải áp dụng được cho mọi item.
  • DoD toàn tiêu chí không kiểm được: "code sạch", "hiệu năng tốt". Viết thành thứ đo được: thời gian phản hồi dưới 2 giây với 100 người dùng đồng thời.
  • Cho nợ DoD vì gấp. Lần đầu thì hợp lý, lần thứ ba thì DoD chỉ còn là văn bản trang trí.
  • Sản phẩm đã lên production mà DoD vẫn không có mục nào về bảo mật hay dữ liệu cá nhân. Với hệ thống xử lý thông tin khách hàng ở Việt Nam, đây là chỗ nên bổ sung sớm.
Definition of Done là gì? Phân biệt DoD, DoR và AC | BAHUB.VN