23. Definition of Done

Definition of Done

Definition of Done là một danh sách tất cả các dấu hiệu phải thỏa mãn trước khi một product increment, hoặc một user story, được coi là hoàn thành.  Chừng nào một trong những dấu hiệu đó còn chưa đáp ứng thì lượng công việc của user story tương ứng không được cộng vào velocity của Sprint. Khi một item trong Product Backlog hoặc một Increment được gọi là “Done” thì tất cả mọi bên liên quan phải hiểu “Done” nghĩa là thế nào. Giữa các team Agile khác nhau khái niệm “Done” có thể khác nhau đáng kể. Nhưng trong từng dự án Agile thì mọi thành viên của team phải có chung một định nghĩa “Done” là gì: một hạng mục công việc như thế nào thì gọi là hoàn thành.

Nếu định nghĩa “Done” đối với một increment đã được qui định trong tài liệu tiêu chuẩn của tổ chức thực hiện dự án thì team phải tuân theo định nghĩa đó như là điều tối thiểu phải đáp ứng. Trái lại thì Development team phải xây dựng và thống nhất Definition of Done phù hợp với sản phẩm đang phát triển trong dự án.

Definition of Done là một trong số những khái niệm căn bản của Agile liên quan đến thiết lập một tầm nhìn chung của dự án. Tạo ra và nhất trí về Definition of Done thống nhất trong team dự án là điều then chốt giúp cho thỏa mãn kỳ vọng của các bên liên quan.

Ví dụ chẳng hạn một Definition of Done thống nhất cho từng level của một dự án Agile có thể bao gồm:

  • User Stories: “Đối với user story, Done nghĩa là user story được phát triển, được lập tài liệu và được kiểm thử UAT thành công.”
  • Releases: “Đối với Release đầu tiên Done nghĩa là hệ thống Alpha được thay thế và không có yêu cầu thay đổi nào và không có một defect cấp độ 1 nào phát sinh trên Production.”
  • Final project deliverables: “Đối với toàn bộ dự án Done nghĩa là tất cả các feature có độ ưu tiên High và Medium được hoàn thành, và có 2 tháng vận hành không phát sinh lỗi, và dự án nhận được điểm hài lòng trên 70% từ cộng đồng end users.”

Một ví dụ khác về Definition of Done của một dự án IT: James Shore giới thiệu một checklist gồm các yếu tố sau đây nên được kiểm tra, thảo luận và xác nhận trước khi chúng ta tuyên bố một cái gì đó là “Done”.

  • Tested: Tất cả các phép test như unit test, integration test, và UAT test đã hoàn thành và pass hay chưa?
  • Coded: Toàn bộ code được viết xong chưa?
  • Designed: Các đoạn code đã được refactor chưa và team hài lòng với kết quả refactor không?
  • Integrated: Có phải user story này đã chạy thông suốt từ đầu đến cuối không (từ end-user interface đến database ví dụ thế) và trơn chu ăn khớp với phần còn lại của hệ thống phần mềm?
  • Builds: Có phải build scrip đã bao gồm mọi module mới phát triển không?
  • Installs: Có phải build scrip đã bao gồm user story đó trong automated installer?
  • Migrates: Có phải build scrip đã cập nhật database schema (nếu cần thiết) hay không? Có phải Installer đã bao gồm việc data migration (chuyển đổi dữ liệu) cần thiết rồi?
  • Reviewed: Khách hàng đã review user story này chưa? Và đã xác nhận rằng nó đáp ứng đúng yêu cầu hay chưa?
  • Fixed: Tất cả các bug được tìm ra đều đã được fix xong? Hoặc các bug đã được lên lịch để fix (như thể là mỗi bug là một user story)?
  • Accepted: Khách hàng đã đồng ý rằng user story đã hoàn thành phải không?

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

error: