Definition Of Done

Definition Of Done

DOD یک چک لیستی از فعالیتهای ارزشمند مورد نیاز برای یک پروژه می‌باشد که معمولا معیارهای کلی که در تمام user story ها و taskهای یک پروژه دخیل است در این مستند آورده می‌شود و معیارهایی که خاص یک task می‌باشد در قالب Acceptance Criteria در داخل آن task مربوطه نوشته می‌شود. اگر این مستند خوب نوشته شود هم باعث تسریع در روند پروژه می‌شود و هم باعث بالا بردن کیفیت کد و پروژه ها می‌شود. چون در این شرایط است که توسعه دهندگان بر روی کارهای تعریف شده و کارهای مورد نیاز برای تکمیل کارها و محصول مورد نیاز متمرکز می‌شوند و مقدار کارهای برگشتی کاهش پیدا می‌کند.در حوزه نرم افزار این فعالیت‌ها می‌تواند شامل: رعایت استانداردهای کد نویسی، نوشتن تست اتوماتیک (Unit Test) و تجمیعی(Integration Test)، یکپارچه سازی مداوم، مستندسازی، آماده سازی و استقرار بر روی سرور تست، نوشتن Release note و … باشد. این مستند DOD در واقع معیاری برای تایید انجام شدن یک کار می‌باشد.

مرور و Verify کردن کارها و user storyها باید بر اساس این چک لیست انجام شود. سطوح مختلفی را برای این مستند می‌توان در نظر گرفت، بعضی از معیارها خاص کارهای انجام شده در اسپرینت‌ها می‌باشد، بعضی‌ها مربوط به کارهایی می‌شود که در آخر اسپرینت جهت ارائه دموی محصول به مشتری باید انجام شوند و بعضی ها مربوط به کارهایی است که جهت ارائه محصول قابل ارائه یا release به مشتری باید انجام شود. می توان در قالب یک مستند با سطوح مختلف نوشته شود و یا اینکه در قالب مستندهای جدا گردآوری شود. این مستند بعد از جلسه Retrospective در صورت نیاز به روزرسانی می‌شود.

معمولا تیم‌ها در اجرای فعالیت‌ها و معیارهای مطرح در این مستند دچار مشکلات اساسی می‌شوند، این مشکلات علت‌های مختلفی دارد:

  • اعضای تیم توانایی و مهارت لازم در اجرای این معیارها برای ویژگی‌ها و کارهای اسپرینت را ندارند
  • ابزارهای مناسبی جهت اجرای این معیارها وجود ندارد برای مثال (محیط یکپارچه سازی مداوم، ساختارهای اتوماتیک مناسب، سرورهای مناسب و …)

اینجاست که بحث cross functional بودن اعضای تیم اسکرام مطرح می‌شود و فرصت مناسبی است که تیم‌ها به سمت cross functional شدن پیش روند. اینجاست که بحث به اشتراک گذاری دانش، کسب دانش، آموزش و … مطرح می‌شود. در این مرحله است که کارهای مربوط به فراهم ساختن زیرساخت مناسب و مطالعه و دوره های آموزشی هم در کنار کارهای یک اسپرینت قرار داده می‌شود تا در سریعترین حالت ممکن بتوانیم بستر مناسب و ابزارهای مناسب را فراهم کنیم. پس وجود این مستند حتی اگر مهارت و دانش موارد مطرح شده در آن وجود نداشته باشد، ضروری است و تمرکز را به سمت انجام کارهای درست و اصولی معطوف می‌کند. این مستند استاتیک نیست و با پیشرفت تکنولوژی‌ها و دانش افراد و بهبود فرآیندهای یک شرکت می‌تواند تغییر پیدا کرده و یا تکامل یابد.

بسته به پروژه‌ها این مستند می‌تواند واحد باشد یا هر پروژه DOD مخصوص خود را داشته باشد. به طور کلی تنظیم یک DOD واحد که مناسب هر موقعیت و هر پروژه‌ای باشد غیر ممکن است، هر تیمی باید  با مشورت و تجربه مستند مناسب موقعیت و محیط خود را بنویسد. نوشتن مستند با سطح بلوغ مناسب نیز در ابتدا دشوار است و رفته رفته با کسب تجربه در اسپرینت‌های مختلف این مستند بهبود می‌یابد. چند نمونه چک لیست ساده برای DOD در سطوح مختلف در ادامه آمده است.

نمونه DOD برای user story:

 

Produced code for presumed functionalities-

Assumptions of User Story met-

Project builds without errors-

unit test written and passing-

Project deployed on the test environment identical to production platform-

Tests on devices/browsers listed in the project assumptions passed-

Feature ok-ed by UX designer-

QA performed & issues resolved-

Feature is tested against acceptance criteria-

Feature ok-ed by Product Owner-

Refactoring completed-

Any configuration or build changes documented-

Documentation updated-

Peer Code Review performed-

 

نمونه DOD برای اسپرینت:

DoD of each single User story, included in the Sprint are met-

“to do’s” are completed-

All unit tests passing-

Product backlog updated-

Project deployed on the test environment identical to production platform-

Tests on devices/browsers listed in documentation passed-

Tests of backward compatibility passed-

The performance tests passed-

All bugs fixed-

Sprint marked as ready for the production deployment by the Product Owner-

 

نمونه DOD برای Release:

Code Complete-

Environments are prepared for release-

All unit and functional tests are green-

All the acceptance criterias are met-

QA is done & all issues resolved-

All “To Do” annotations must have been resolved-

Ok from the team: UX designer, developer, software architect, project manager, product owner, QA, etc-

Check that no unintegrated work in progress has been left in any development or staging environment-

Check that TDD and continuous integration is verified and working-

در کل نوشتن دو مستند در این متد خیلی مهم است یکی از آنها DOR(Definition Of Ready) است که باید برای هرکدام از تسک‌هایی که در بک لاگ اسپرینت قرار داده می‌شود آماده باشد که در آن یک ویژگی با task به طور واضح و کامل توضیح داده شده است و تمام ابهامات آن مرتفع شده است و دیگری DOD می‌باشد که مستندی جهت مهر تایید زدن به کارهای انجام شده در آخر اسپرینت می‌باشد.

“سمیرا نقی‌لو”

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *