توی مقاله قبلی با عنوان "تیم خودسازماندهی شده از دید اسکرام" به DoD اشاره کرده بودم و قرار بود که درباره اون با هم بیشتر صحبت کنیم، بریم جلو ببینیم چی میشه . . .
تا به حال شده یه کاری از دید خودتون تموم شده به نظر برسه ولی وقتی به مشتری نشون میدین بگه چیزی نیست که من میخواستم؟
میدونیم اسکرام طبق تعریف خودش یه چارچوب سبک (Light Weight) ارایه داده و چون متدولوژی نیست، توی جزییات انجام کار کمتر وارد میشه و به اصطلاح نسخه نمیپیچه که همین کار باعث میشه هر کسی بخواد از منظر خودش تفسیری روی موضوعات داشته باشه و بنابراین با توجه به جایی که اسکرام در اون استفاده میشه و نفرات متفاوتی که دارن اون رو پیاده سازی می کنند بلوغ های متفاوتی خواهد داشت.
به همین خاطر تو این نوشته سعی می کنم بررسی کنم از دید اسکرام برای رفع این موضوع چه چیزهایی پیش بینی شده و چه کار باید بکنیم تا این مشکل که خیلی وقت ها هم اتفاق میفته به حداقل برسه؟
میدونیم اسکرام بر مبنای پنج رویداد که شامل "اسپرینت پلنینگ، دیلی اسکرام، اسپرینت رویو، و رترو اسپکتیو" هست برنامه ریزی میشه. البته این ها رو که بشمریم میشه چهار تا، اون یکی کجاست؟
- اولین و در حقیقت اصلی ترین اون ها که بقیه تو دل اون هستند در حقیقت همون اسپرینت هست و با اون، پنج رویدادی که گفتیم کامل میشه:
بزارین از آخر بیایم اول؛ در اسپرینت رویو که توی اون دولوپر ها (تیم توسعه دهنده)، مالک محصول، مشتری ها و البته اسکرام مستر حضور دارن نتیجه تلاش تیم اسکرام در یک اسپرینت بررسی میشه (تمام فتنه ها و مشکلات تیم هم از همین جا شروع میشه :))
- خوب بیارین ببینیم چی کردین؟ خروجی دو هفته کارتون چی بوده؟ ما بی صبرانه منتظر این جلسه هستیم . . .
-ببینیم . . .
یک نفر از اعضای تیم محصول رو ارایه می کنه . . .
-این چرا این جوریه؟ کی گفته بود این طوری تحویل بدین؟ آقای Product Owner ما به شما اعتماد کردیم، سرمایه گذاری کردیم و دو هفته وقت دادیم که آخرش این رو به ما تحویل بدین؟
-نه این چیزی نیست که میخواستیم. نه درست کار می کنه و نه مطابق طرحی بوده که بهتون گفته شده، فکر می کنیم باید در توانایی شما برای جمع کردن این پروژه تجدید نظر کنیم و شاید داریم جای نادرستی سرمایه گذاری می کنیم؟
این گوشه ای از مکالمات در یک اسپرینت رویوی ناموفق بود که کم و بیش همه مون باهاش آشنایی داریم . . .
[یادم باشه بعدا راجع به این که چطور اسپرینت رویوی موفقی داشته باشیم هم صحبت کنیم]
اسکرام اولین چیزی رو که برای تیم اسکرام در چارچوب خودش پیشنهاد می کنه و حتی ضروری میدونه رعایت تایم باکس هایی هست که گفته برای یک اسپرینت حداکثر میتونه یک ماه باشه، یه جدول خوب براتون میزارم که نیاز به توضیح اضافی نباشه (درباره تایم باکس ها بعدا خیلی مفصل تر با هم صحبت خواهیم کرد):
فرض کنیم یه تیم شش نفره دولوپری هستیم (دو تا بک اند، یه فرانت، دو تا اندروید و یه دیزاینر) که یه PO و یه اسکرام مستر هم داریم (تیم اسکرام هشت نفره) و یه اسپرینت دو هفته ای رو برنامه ریزی کردیم (هر نفر در طول هفته 44 ساعت باید کار کنه رندش می کنیم 40 ساعت، بنابراین در طول دو هفته یا نصف ماه 2*40*8 نفر ساعت 640 نفر ساعت کار انجام شده) و این زمان ارزش این رو داره که هر کاری کنیم تا نتیجه اش به بهترین نحو ارایه داده بشه و از اون طرف تیم بتونه برای اسپرینت بعدیش انرژی لازم رو کسب کنه.
برای این که اسپرینت رویوی درستی داشته باشیم، تا نتیجه تلاش های یک تیم که بالا زمانش رو محاسبه کردیم و به میزان اهمیتش کم و بیش پی بردیم لازم هست که از اول درست برنامه ریزی کرده باشیم.
کجا برنامه ریزی کردیم؟ تو اسپرینت پلنینگ.
ورودی های ما چی بوده؟
میبینیم دومین ورودی ما برای برنامه ریزی اسپرینت مون "تعریف کار انجام شده" یا DoD هست و بنابراین یکی از ابزارهای مهم کارمون هست، چون برنامه ریزی از اون جا شروع میشه؛ حالا ببینیم اساسا DoD چیه؟
وقتی بیان میشه یک PBI یا یک Increment تمام شده یا انجام شده (یا دان شده)، همه اعضای تیم اسکرام باید فهم مشترکی از این موضوع داشته باشن (که یکی از اجزای شفافیت یا Transparency در اسکرام هم هست که بعدا بهش خواهیم پرداخت).
اساس تعریف کار انجام شده برای رسیدن به کیفیت هست؛ یعنی ما با تعریف DoD داریم برای کار خودمون یه حد کیفی در نظر می گیریم بنابراین کارمون خیلی با ارزش هست. میدونیم که کیفیت چند بعدی هست (مثلا وقتی میگیم فلان لباس خوبه مجموعه عواملی مثل رنگ، جنس پارچه، دوخت، . . . و حتی یه وقت هایی با توجه به جایی که میخوایم ازش استفاده کنیم خوبیش یا همون کیفیتش سنجیده میشه) بنابراین لازمه که معیار های مختلفی برای کارمون در نظر بگیریم و تا به اون ها نرسیم یعنی کار مون دان نشده و هنوز کار داره، حتی اگه %99.999 هم انجام شده باشه.
تعریف کار انجام شده با بلوغ تیم توسعه نرم افزار به طور تدریجی تکامل می یابد.
و اما بریم سراغ این که چه کسی DoD رو ایجاد می کنه و چه حالت هایی داره؟
از اون جایی که این مقاله کمی طولانی شد سعی می کنم توی مقاله بعدی که در همین خصوص مینویسم به اجزای DoD با ارایه مثال بپردازم؛ امیدوارم مطالب گفته شده براتون مفید بوده باشه و بی صبرانه منتظرم تا ایده و دیدگاه های ارزشمندتون رو در خصوص این مطالب تو کامنت ها بزارین تا من هم بتونم درک خودم از مسایل اسکرام رو بهبود بدم.