Thuật ngữ

Definition of Done là gì? Định nghĩa Xong cho đội phần mềm

Definition of Done là danh sách điều kiện chung để một việc được coi là xong: đã merge, đã kiểm thử, đã lên máy thử. Khác tiêu chí chấp nhận ở đâu, mẫu ba mức, ví dụ.

Khoảng 5 phút đọc

Trả lời ngắn

Định nghĩaDefinition of Done (định nghĩa Xong, viết tắt DoD) là danh sách điều kiện chung cho mọi việc để được coi là hoàn thành: đã merge, đã kiểm thử, đã lên môi trường thử, tài liệu đã cập nhật… Một việc chưa đạt đủ các điều kiện này thì chưa xong, dù code đã chạy trên máy của người làm.

DoD là chuẩn chất lượng của cả đội, áp cho mọi việc. Nó khác tiêu chí chấp nhận, thứ riêng cho từng story. Đội không có DoD sẽ có ba định nghĩa “xong” khác nhau của dev, tester và quản lý, và burndown, velocity, tiến độ đều thành con số vô nghĩa.

Vì sao cần: căn bệnh “xong 90%”

Không có DoD, việc được kéo sang Done khi người làm cảm thấy xong. Hai tuần sau, lỗi từ những việc “đã xong” quay lại chiếm nửa sprint mới, còn Review thì demo trên máy dev vì chưa lên máy thử. DoD cắt căn bệnh này bằng một câu hỏi duy nhất trước khi kéo thẻ: đã đủ điều kiện chưa? Nếu chưa, thẻ ở lại Review hoặc Đang làm, và tiến độ nói thật.

DoD khác tiêu chí chấp nhận ở đâu

Định nghĩa Xong và tiêu chí chấp nhận
Definition of DoneTiêu chí chấp nhận
Áp choMọi việc trong dự ánMột story cụ thể
Trả lờiĐã làm đúng cách chưa?Đã làm đúng thứ chưa?
Ai viếtCả đội, thống nhất một lần, nâng dần ở RetroNgười viết story cùng người dùng
Ví dụĐã merge vào nhánh chính, tester đã kiểm, đã lên stagingLọc được theo khoa, chạy dưới 30 giây

Một việc chỉ xong khi đạt cả hai. Cách viết tiêu chí chấp nhận ở User story là gì?.

Mẫu DoD theo ba mức

Ba mức Definition of Done cho đội nhỏ
MứcĐiều kiệnHợp với
Tối thiểuCode đã merge vào nhánh chính; tester đã kiểm theo tiêu chí chấp nhận; không còn lỗi mức Cao liên quan.Sprint đầu tiên của đội mới
ChuẩnBa điều trên, cộng: có kiểm thử tự động hoặc kịch bản test tay được lưu; đã triển khai lên môi trường thử; ghi chú phát hành đã cập nhật.Sau 3 sprint, đội đã quen nhịp
Nâng caoSáu điều trên, cộng: người khác đã review code; tài liệu người dùng đã cập nhật; đo hiệu năng với dữ liệu cỡ thật khi việc liên quan hiệu năng.Sản phẩm đã có người dùng thật, đội từ 6 người

Bắt đầu ở mức đội làm được, nâng ở Retro

DoD quá cao ngay từ đầu thì không việc nào xong và đội bỏ DoD sau hai tuần. Chọn mức tối thiểu, giữ nghiêm, rồi mỗi Retro thêm một điều kiện khi đội đã sẵn sàng. DoD chỉ có nghĩa khi không có ngoại lệ “lần này thôi”.

Ví dụ: đội 5 người viết DoD trong 20 phút

Ví dụ

Sprint 1 của đội làm cổng đăng ký học phần kết thúc với 9 việc Done, nhưng Review phải demo trên máy của một lập trình viên vì máy thử chưa có bản mới, và tester phát hiện 3 trong 9 việc chưa được kiểm. Retro dành 20 phút viết DoD mức tối thiểu, thêm một điều kiện riêng của đội: “đã lên máy thử của trường”.

Sprint 2, velocity giảm từ 22 xuống 17 điểm. Không ai hoảng: 17 là con số thật của việc xong hẳn, 22 là con số của việc “xong trên máy dev”. Sprint 3 lên 20, và Review từ đó luôn demo trên máy thử với tài khoản của phòng Đào tạo. Sprint 5, Retro thêm điều kiện “có kịch bản test được lưu”.

Bốn lỗi hay gặp

Đội mới hay mắc

  • DoD nằm trong đầu một người. Viết ra, treo ở nơi cả đội thấy mỗi ngày, ví dụ mô tả dự án hoặc đầu cột Done.
  • Ngoại lệ cuối sprint. Ngày cuối kéo Done hàng loạt “cho đẹp burndown”. Việc chưa đủ điều kiện ở lại, sang sprint sau, và velocity nói thật.
  • Nhầm DoD với tiêu chí chấp nhận. DoD không nói tính năng phải làm gì; nó nói mọi tính năng phải qua những bước nào.
  • DoD bất động. Sau sáu tháng vẫn ba điều kiện của sprint đầu. Mỗi Retro hỏi: có điều kiện nào nên thêm để bớt lỗi quay lại không?

Definition of Done trên Pentara

Trong PentaraBoardCột Done

Cột Done thuộc nhóm trạng thái Hoàn thành: khi việc được kéo vào, Pentara ghi thời điểm hoàn thành, và burndown, tiến độ, velocity đều tính từ mốc này. Kéo ngược ra khỏi Done thì xóa mốc. Vì thế DoD chính là quy tắc “khi nào được kéo sang Done”, và cột Review đứng trước Done là chỗ tester kiểm theo tiêu chí chấp nhận cộng DoD.

Nên ghi DoD vào mô tả dự án ở tab Tổng quan để ai cũng thấy, và đặt giới hạn WIP cho cột Review để việc không ùn ở bước kiểm. Quản lý dự án đổi tên, thêm cột và đặt nhóm trạng thái ở Cài đặt › Cột Kanban. Thử với đội của bạn: đăng ký gói Miễn phí, viết DoD mức tối thiểu ngay ngày đầu theo Bắt đầu nhanh; chi tiết định nghĩa Xong mẫu sáu điều kiện ở chương Sprint.

Hỏi đáp nhanh

Definition of Done khác tiêu chí chấp nhận thế nào?
Định nghĩa Xong áp cho mọi việc và trả lời “đã làm đúng cách chưa”: đã merge, đã kiểm thử, đã lên máy thử. Tiêu chí chấp nhận riêng cho từng story và trả lời “đã làm đúng thứ chưa”. Một việc chỉ xong khi đạt cả hai.
Đội mới nên bắt đầu với bao nhiêu điều kiện?
Ba là đủ: code đã merge, tester đã kiểm theo tiêu chí chấp nhận, không còn lỗi mức Cao liên quan. Giữ nghiêm ba điều này trong ba sprint, rồi mỗi Retro thêm một điều kiện như đã lên máy thử hoặc có kịch bản test được lưu. DoD quá cao từ đầu sẽ bị bỏ sau hai tuần.
Việc chưa đạt DoD cuối sprint thì sao?
Ở lại cột Review hoặc Đang làm và chuyển sang sprint sau, không kéo sang Done cho đẹp. Velocity sprint đó thấp hơn nhưng nói thật. Ở Retro hỏi vì sao chưa đạt: việc quá to, thiếu máy thử, hay tester quá tải, rồi sửa nguyên nhân.