در توسعه نرمافزار و روشهای Agile (مثل اسکرام و کانبان)، Definition of Done (DoD) یا تعریف انجامشده یک معیار است که تعیین میکند چه زمانی یک وظیفه (Task)، داستان کاربر (User Story)، یا ویژگی (Feature) بهصورت کامل انجامشده و آماده تحویل یا انتشار است.
اهداف و اهمیت Definition of Done:
شفافیت: تیم توسعه دقیقاً میداند چه زمانی یک کار تمام شده است.
کیفیت: تضمین میکند که تمام جنبههای کیفیت (مثل تستها، مستندسازی، و رفع باگها) در نظر گرفته شدهاند.
یکپارچگی تیم: تعریف مشخص از "تمام شدن" باعث میشود همه اعضای تیم روی یک استاندارد واحد توافق داشته باشند.
موارد رایج در Definition of Done:
در DoD معمولاً چندین مرحله مختلف شامل میشود تا از تکمیل و کیفیت کار اطمینان حاصل شود. برخی از این موارد عبارتند از:
کدنویسی کامل شده باشد.
تمام تستهای واحد (Unit Tests) نوشته و پاس شده باشند.
کد بازبینی (Code Review) شده باشد.
کد در محیط آزمایشی (Staging) مستقر شده باشد.
تمام مستندات لازم (مثل راهنما یا مستندات API) بهروز شده باشند.
تستهای پذیرش کاربر (User Acceptance Testing) پاس شده باشند.
هیچ باگ بحرانی یا مهمی باقی نمانده باشد.
تفاوت Definition of Done و Acceptance Criteria:
Acceptance Criteria (معیارهای پذیرش) معیارهایی هستند که برای هر داستان کاربر یا ویژگی تعریف میشوند تا نشان دهند که نیازمندیهای آن داستان کاربر بهدرستی پیادهسازی شدهاند.
Definition of Done یک استاندارد عمومی است که روی تمام کارها یا ویژگیهای پروژه اعمال میشود و تعیین میکند که چه زمانی هر وظیفه به طور کامل انجام شده است.
مثال از یک Definition of Done:
یک تیم توسعه میتواند DoD خود را بهصورت زیر تعریف کند:
کد نوشته شده و بازبینی شده.
تمام Unit Test ها پاس شدهاند.
کد روی محیط stage یا sandbox مستقر شده و تستهای سیستمی پاس شدهاند.
مستندات بهروزرسانی شدهاند.
هیچ باگ بحرانی وجود ندارد.
محصول آماده انتشار است.
این تعریف باعث میشود که تمام تیم روی معیارهای کیفیت توافق داشته باشند و کارهای ناقص یا نیمهتمام به تحویل داده نشوند.