تعریف انجام شده یا Definition of Done در رویکرد اجایل که به اختصار به آن DOD هم گفته میشود، یک توافق کاری خاص است. این مفهوم درک مشترک از یک تیم درباره معنای “انجامشده” یا done را برای آنها نشان میدهد. مفهوم DOD از طریق چارچوب اسکرام شناخته شده است.
در کتاب راهنمای اسکرام گفته شده است:
تعریف DOD در رویکرد اجایل با فراهم کردن یک فهم مشترک برای افراد از اینکه چه کار مشخصی برای به ثمر رسیدن قسمتی از افزونه (Increment) انجام شده است، باعث ایجاد شفافیت می شود. اگر یک کار در بکلاگ محصول (Product Backlog) ویژگیهای تعریف شده در DOD را نداشته باشد، نمیتوان آن را منتشر یا حتی در بررسی اسپرینت ارائه کرد، بلکه به Product Backlog برمیگردد تا بعدا درباره آن تصمیمگیری شود.
بسیاری از تیمها تعریف DOD را به عنوان یک چک لیست در نظر میگیرند تا مطمئن شوند همه الزامات لازم را قبل از اعلام این که یک آیتم انجام شدهاست، پوشش داده باشند. همچنین به این معنی است که DoD در نهایت نشاندهنده چک کردن کیفیت کار تیم توسط خودشان است.
چرا Definition of Done مهم است و چه اهدافی را دنبال میکند؟
لحظهای که فرد در یک تیم شروع به کار میکند، خیلی مهم است که به او کمک کنید درباره ابعاد مختلف پروژه درک مشترکی با بقیه افراد تیم پیدا کند. هر تیم باید با چشمانداز و ماموریت آن تیم همسو باشد. هر تیمی باید توافقات کاری مشترکی داشته باشد و به عنوان بخشی از توافقات کاری هر تیمی باید با آن چه که برای تیم به عنوان “انجامشد” معنی میدهد، همسو باشد.
با کمک این درک مشترک از “انجامشد“، افراد مختلف میتوانند روی آیتمهای مختلف کار کنند و در عین حال کیفیت و تجربه کاربری یکسانی ارائه کنند. همچنین این کار باعث سادهتر شدن فرآیند آنبوردینگ (Onboarding) اعضای جدید در تیم میشود. این کار همکاری بین تیمی را در یک محیط مقیاسپذیر بسیار آسانتر میکند. و در نهایت، تضمین میکند که کار هر تیم و اعضای آن با الزامات سازمان مطابقت دارد.
چه زمانی محتوای تعریف یا DoD در رویکرد اجایل تعریف میشود؟
توصیه میشود که تیمها تعریف خود از DoD را در اسرع وقت و حتی قبل از برنامهریزی برای اولین اسپرینت انجام دهند. بدون رسیدن به درک مشترک از معنای “انجام شد” غیرممکن است که میزان کاری را که اعضای یک تیم میتوانند در یک اسپرینت انجام دهند را هماهنگ کنند. اگر تیمی نخواهد قبل از برنامه ریزی اولیه برای اسپرینت DoD را تعریف کند، در طول اسپرینت یا درنهایت در طول بررسی اسپرینت متوجه میشود که کیفیت کارها با الزامات سازگاری ندارند و به احتمال زیاد انتظارات ذینفعان را برآورده نمیکنند.
چه کسی در متد اسکرام Definition of Done را تعریف میکند؟
افراد مختلفی در تعریف کردن Definition of Done دخالت دارند. در نهایت مسئولیت ایجاد این درک مشترک بر عهده تیم اسکرام است. آنها باید نظرات ذینفعان مختلف را در نظر بگیرند تا بتوانند انتظارات آنها را برآورده کنند.
محتوای تعریف انجام شده چیست؟
به طور معمول تعریف انجام شده شامل پاسخ به سوالات زیر است:
- چگونه میتوانیم مطمئن شویم که نیازهای کسبوکار را برآورده میکنیم؟
- چگونه میتوانیم مطمئن شویم که کیفیت ثابتی داریم؟
به عنوان مثال یک تعریف DoD میتواند به این صورت باشد:
- تمام معیارهای پذیرش برآورده شدهاند.
- تمام تستهای مورد نیاز با موفقیت انجام شده است.
- ما چندین بار کار را بررسی کردهایم.
- تمام اسناد و مدارک لازم ایجاد شدهاند.
- مالک محصول کار را بررسی کرده و خوشحال است.
بسته به حوزه کاری مختلف تیمها میتوانند تعاریف طولانیتر، جزئیتری، کوتاهتر و سطح بالایی از Definition of Done داشته باشند. در بیشتر مواقع Definition of Done در طول یک پروژه تکمیل شده و جزئیات بیشتری پیدا میکند.
تفاوت Definition of Done و Definition of Ready در چیست؟
Definition of Done در رویکرد اجایل به آیتمی اشاره دارد که به طور کامل توسعهیافته است. برخلاف آن، Definition of Ready توضیح میدهد که نیازمندیهای یک آیتم چقدر باید خوب باشد تا روی آن کار شود. Definition of Done در فریمورک اسکرام آورده شده است اما Definition of Ready هنوز اضافه نشده است. انجام این کار گزینهای است که تیم ها میتوانند، انجام دهند و مزایا و معایب خودش را دارد.
اصطلاح Definition of Ready در اسکرام چیست؟
Definition of Ready درک مشترکی از گامهایی که یک تیم باید بردارد تا مطمئن شود که یک نیاز به خوبی تعریف شدهاست و تیم در اسپرینت بعدی روی آن کار میکند. خیلی از تیمها از مفهوم INVEST برای Definition of Ready استفاده میکنند:
I = Independent – مستقل
این مورد برای تشخیص این که کار مستقل است یا وابستگیهایی به کارهای دیگر دارد که باید آن را در فرایند اولویت بندی ما در نظر گرفته شود، استفاده میشود.
N = Negotiable – قابل مذاکره
آیا راجع به این موضوع صحبت کردهایم؟
V = Valuable – ارزشمندی
آیا درکی از ارزشی که برای کاربران خود ایجاد میکنیم، داریم؟
E = Estimable – تخمین زدن
آیا می توانیم میزان تلاشی که برای تحویل این آیتم مورد نیاز است، تخمین بزنیم؟
S = Sized appropriately – اندازه مناسب
آیا اندازه تسک با اسپرینت مطابقت دارد یا امکانی برای شکستن تسکها و کوچکتر کردن آنها وجود دارد؟
T = Testable – قابلیت تست
آیا میدانیم چه انتظاری از ما دارند؟ آیا معیارهای پذیرش را ضبط، یا مستند کردهایم؟
این روش یکی از راههایی است که با کمک آن میتوان Definition of Ready را آماده کرد. نباید این نکته مهم را فراموش کرد که هیچ کاری تا وقتی که اعضای تیم راجع به آن صحبت کنند، شروع نمیشود.
چارچوب چابک مقیاسپذیر SAFe و سایر چارچوبهای Scaling چگونه هستند؟
Scaled Agile Framework که به اختصار SAFe نامیده میشود، توصیف بیشتری از آن چه در تعریف DOD وجود دارد، ارائه نمیکند. SAFe تعداد بیشتری تیم اسکرام / چابک را دارد. بنابراین اصلیترین اصول اسکرام را ترویج میکند. برای هر رویکرد scale (مقیاس بندی شده) که برای توسعه یک محصول تعریف شده است، وقتی چند تیم به صورت همزمان روی یک محصول کار می کنند. توصیه میشود که این تیمها به شیوهای هماهنگ کار کنند و بخشهای ضروری تعریف DOD ( کار انجام شده) را به اشتراک بگذارند. هر تیمی میتواند آیتمهای بیشتری را به DoD اضافه کند، اما هیچ تیمی نباید آیتمهایی را تحویل دهد که تیمهای دیگر آن را done در نظر نمیگیرند.
چرا Definition of Ready مهم است؟
Definition of Ready هم مثل Definition of Done به تیم کمک میکند تا با هم همکاری بهتری داشته باشند. برای مالک محصول مهم است که بداند وقتی تیم یک الزام را ایجاد میکنند، چه انتظاری دارند؟ برای تیم مهم است که بدانند در کدام بخش از فرآیند میتوانند از مالک محصول برای ارائه الزامات بهتر پشتیبانی کنند.
چه زمانی Definition of Done را تغییر میدهید؟
Definition of Done و Definition of Ready باید به طور منظم بازبینی و بروزرسانی شوند. یعنی ما باید در هر اسپرینت آنها را اصلاح کنیم؟ نه اما با گذشت زمان تیم ها متوجه خواهند شد که باید DoD خود را بروز کنند. چند سال پیش ما شروع به ساخت یک پورتال شغلی کردیم. در ابتدا فقط روی دسکتاپ قابل استفاده بود. ما متوجه شدیم که ۷۰ درصد ترافیک ما از طریق موبایل است. بنابراین ما یک اسپرینت کامل به بروزرسانی صفحهها پرداختیم تا تمام صفحات موجود برای نمایش در موبایل هم مناسب باشد. بعد از این اتفاق این نیاز وارد Definition of Done ما شد، به طوری که هر بار که ما یک سایت جدید ساختیم بلافاصله آن را برای نمایش در موبایل هم توسعه دادیم.
راهنمای اسکرام ۲۰۲۰ در مورد Definition of Done چه می گوید؟
در نهایت، توصیه میکنیم که راهنمای اسکرام که در سال ۲۰۲۰ منتشر شد را مطالعه کنید. در راهنمای اسکرام (scrumguides.org) مهمترین جنبههای Definition of Done توضیح داده شده است.
نتیجه گیری
Definition of Done یک توصیف رسمی از وضعیت Increment است که معیارهای کیفی مورد نیاز برای محصول را برآورده میکند. به محض این که یک آیتم در بکلاگ محصول Definition of Done را بدست میآورد، یک Increment ایجاد میشود. Definition of Done با ارائه درک مشترک از کارهایی که به عنوان بخشی از Increment تکمیل شده است، شفافیت ایجاد میکند. مواردی در بکلاگ محصول که Definition of Done آنها کامل نشدهاند، نمیتوانند هنگام انتشار محصول یا بازبینی اسپرینت ارائه شوند. در عوض برای بررسی بیشتر در آینده به بکلاگ محصول منتقل میشوند.
اگر Definition of Done برای یک Increment بخشی از استانداردهای سازمان باشد، حداقل تمام تیمهای اسکرام باید از آن پیروی کنند. اگر Definition of Done جزو استانداردهای سازمانی نیست، تیم اسکرام باید یک Definition of Done مناسب برای محصول آماده کند. توسعه دهندگان باید با Definition of Done را تایید کنند. اگر چند تیم اسکرام با هم روی یک محصول کار میکنند، باید به تعریف یکسانی و متقابلی از یک Definition of Done در رویکرد اجایل رسیده باشند.
دیدگاهتان را بنویسید