Sprint planning đi được nửa buổi thì có người chỉ vào một ticket và hỏi nó đã ready chưa. Product owner nói goal đã đủ rõ. Engineer nói API dependency vẫn chưa biết. QA hỏi done sẽ nghĩa là gì với analytics và edge case. Căn phòng không thật sự cãi nhau về từ vựng. Căn phòng đang cãi nhau về khi nào một việc đủ an toàn để bắt đầu, và khi nào thành thật để gọi là xong.
Definition of Ready và Definition of Done là hai thỏa thuận nhỏ bảo vệ hai đầu khác nhau của cùng một workflow. Definition of Ready giúp team quyết định một việc đã đủ rõ để bắt đầu chưa. Definition of Done giúp team quyết định chữ xong có thật sự là xong không. Một cái bảo vệ điểm bắt đầu khỏi sương mù. Cái kia bảo vệ điểm kết thúc khỏi sự tự trấn an.
Một Definition of Ready hữu ích không đòi sự chắc chắn hoàn hảo. Nếu đòi vậy, không việc quan trọng nào bắt đầu được. Nó chỉ hỏi liệu team đã có đủ hiểu biết chung chưa: user need được gọi tên, outcome mong muốn rõ, dependency lớn đã biết, acceptance criteria có thể test, và việc đủ nhỏ để trao đổi. Ready nghĩa là team có thể bắt đầu mà không lập tức rơi vào những mơ hồ đáng lẽ tránh được.
Ready cũng nên chừa chỗ cho discovery. Một số việc ready vì bước học tiếp theo đã rõ, không phải vì mọi câu trả lời đã có. Một spike, prototype, hoặc technical investigation có thể ready khi câu hỏi, timebox, và decision cần sau đó được viết rõ. Vấn đề không phải uncertainty. Vấn đề là giả vờ uncertainty không tồn tại.
Definition of Done nằm ở đầu kia. Nó mô tả quality bar trước khi một story, feature, hoặc increment được xem là hoàn tất. Code đã merge. Test đã cập nhật. Accessibility basics được kiểm. Analytics event được wire nếu surface cần tracking. Documentation hoặc release note được cập nhật khi liên quan. Feature đã được review, deploy, và thấy được ở environment mà team đã thống nhất. Done nghĩa là công việc có thể rời khỏi team với niềm tin.
Nguy hiểm là cả hai definition đều có thể thành diễn kịch. Definition of Ready có thể thành bức tường chặn những việc lộn xộn nhưng có giá trị khỏi sprint. Definition of Done có thể thành checklist được tick mà không nghĩ. Mục đích không phải tạo thêm giấy tờ. Mục đích là làm kỳ vọng ẩn trở nên nhìn thấy được trước khi chúng tạo rework.
Team tốt giữ danh sách ngắn. Một Ready checklist hai mươi mục sẽ bị bỏ qua hoặc được dùng như vũ khí. Một Done checklist bao hết mọi mối quan tâm sẽ thành tiếng ồn nền. Definition tốt nhất gọi tên vài điều mà team thường đau khi bỏ sót. Nếu acceptance criteria mơ hồ làm churn, thêm nó vào Ready. Nếu analytics hay bị quên, thêm nó vào Done. Để nỗi đau thật định hình thỏa thuận.
Hai definition này cũng giảm thương lượng cá nhân. Không có chúng, quality phụ thuộc vào ai review, ai đang mệt, và deadline gần đến mức nào. Có chúng, team có một standard chung để chỉ vào. Điều này tử tế hơn cho mọi người. Developer không khó tính khi hỏi acceptance criteria. QA không soi mói khi hỏi case sẽ được verify thế nào. Product không đổi goalpost khi mong có release note, nếu team đã thống nhất customer-facing change cần điều đó.
Chúng không nên thuộc riêng một role. Ready không chỉ là trách nhiệm của product owner, và Done không chỉ là trách nhiệm của engineering. Product, design, engineering, QA, data, support, security đều có thể giữ một phần standard tùy sản phẩm. Thỏa thuận hoạt động tốt nhất khi team xem nó như operating system chung, không phải form một người điền cho người khác.
Definition cũng cần được bảo trì. Sau một incident, một tracking event bị quên, một release gây hiểu nhầm, hoặc sprint spillover lặp lại, team có thể hỏi Ready hoặc Done có cần đổi không. Có thể dependency risk cần được gọi tên sớm hơn. Có thể feature flag nên nằm trong Done cho rollout rủi ro. Có thể performance check quan trọng với một loại việc nhưng không phải tất cả. Một definition sống hữu ích hơn một definition đẹp mà không bao giờ đổi.
Bài test bình tĩnh rất đơn giản. Definition of Ready nên giúp team bắt đầu việc với ít bất ngờ tránh được hơn. Definition of Done nên giúp team kết thúc việc với ít nợ ẩn hơn. Nếu một trong hai chủ yếu tạo thêm họp, trì hoãn, hoặc đổ lỗi, nó đã trôi khỏi mục đích ban đầu.
Lần tới khi một ticket mắc kẹt giữa gần ready và gần done, hãy hỏi lời hứa nào đang chưa rõ. Ta đã biết đủ để bắt đầu có trách nhiệm chưa? Ta đã làm đủ để kết thúc thành thật chưa? Hai câu hỏi đó rất bình thường, nhưng cứu team khỏi nhiều hiểu nhầm nhỏ. Phần lớn vấn đề delivery không bắt đầu từ ý xấu. Chúng bắt đầu khi mọi người dùng cùng một từ, ready hoặc done, nhưng âm thầm hiểu khác nhau.