اجزا اسکرام و نحوه کار با اسکرام
PO یا Product Owner یا مالک محصول نماینده گروه ذینفعان محصول است. PO به عنوان یکی از نقش های اصلی در محیط اسکرام به حساب می آید . مسلما هر نقشی باید یک سری وظیفه داشته باشد که وظایف PO عبارت است از :
- تعیین هدف و چرایی آن برای تیم؟ (او مقصد نهایی را نشان می دهد ولی به این کار نخواهد داشت که چگونه تیم می خواهد به آنجا دست یابد)
- اولویت بندی نیازمندی ها موجود در بک لاگ محصول(جایی که نیازمندی های محصول نگه داری می شوند)
تمامی درخواستهای ذینفعان در یک لیست به نام Product Backlog جمع آوری می شوند. به عبارت ساده تر Product Backlog شامل تمام خواسته ها و ویژگی های مورد نظر مالک محصول برای گنجاندن در محصول مورد نظر است. این لیست باید مرتب شود ولی بر چه اساسی ؟ اینکار نیز به مالک محصول محول شده است تا او درخواستها را بر اساس اولویت های کسب و کار و یا ذینفعان خود تعیین کند. شاید سوال مطرح شود که چه نیازی به اولویت بندی است؟
از آنجایی که فقط ۲۰% (قانون بیست-هشتاد)از ویژگیهای ارائه شده در قالب محصول برای مشتری، مهم و با ارزش هستند چرا نباید این ویژگی ها را قبل از دیگر ویژگی های غیر ضروری ارائه داد. به این عمل در واقع تضمین بازگشت سرمایه می گویند. هر چقدر زودتر نیازهای اصلی مشتری را رفع کنید برگشت سرمایه زودتر انجام خواهد شد.
اما علاوه بر مالک محصول نقشی به نام تیم توسعه وجود دارد که کار او توسعه محصول مورد نظر خواهد بود. این تیم می تواند شامل تمام نقش های توسعه نرم افزار مانند برنامه نویس , تحلیل گر و طراح DBA و … باشد. تیم در صورت وجود نفرات زیاد می تواند به چندین تیم مجزا نیز تقسیم شود. تعداد ۳-۹ نفر برای هر تیم ترجیح داده می شوند.
تیم های اسکرام بر خلاف دیگر تیم ها دو ویژگی اساسی دارند :
- Self-Organize یا خود سازمانده هستند: از متد مدیریت Micromanagement یا مدیریت دستور-کنترل برای این تیم ها استفاده نمی شود و این تیم ها خود-سازمانده است. در واقع به این تیم ها فقط گفته می شود که می خواهیم چه کاری انجام دهیم و چگونگی نحوه انجام به خود تیم سپرده شده است.
- Cross-Functional کار می کنند : تمامی تخصص های لازم در تیم وجود دارند که بدون وابستگی به بیرون از خودشان بتوانند یک محصول کارکننده را تولید، تست و ارائه کنند.
از جمله وظایف این نقش می توان به موارد زیر اشاره کرد :
- تعیین مقدار کاری که باید در طی یک اسپرینت (۲-۴ هفته) انجام دهند .
- چگونه باید کارها را انجام دهند .
اسپرینت در اسکرام همان چرخشهایی هست که بالاتر گفته شد. طول این چرخشها معمولا در اسکرام بین ۲-۴ هفته است. در شروع هر اسپرینت مقداری درخواست مشتری (که معمولا به اسم User Story شناخته می شوند) با توجه به ظرفیت تیم (سرعت تیم یا Velocity) انتخاب می شوند و در لیست بک لاگ اسپرینت قرار می گیرند. این لیست شامل تمام درخواست های مشتری می شود که تیم متعهد شده تا در این اسپرینت پیاده سازی کند.
برای اینکه بتوان میزان ظرفیت تیم را سنجید میتوان به هر داستان کاربر یک وزن داده شود . واحد این وزن Story Point است. اما درباره نحوه وزن دادن به هر داستان : ساده ترین درخواست مشتری را انتخاب کنید . به آن Story Point 3 بدهید. موارد دیگر باید بر اساس رابطه سختی آن ها با این داستان وزن دهی شوند. مورد بعدی را انتخاب کنید اگر دو برابر سخت تر از این داستان بود به آن ۵ و اگر کمی سخت بود به آن ۳ بدهید.
همانطور که در بالا ذکر شد “در شروع هر اسپرینت مقداری درخواست مشتری (User Story) با توجه به ظرفیت تیم انتخاب می شوند” . ظرفیت تیم همان سرعت تیم خوانده می شود . به عبارت ساده تر تیم در طی اسپرینت ۴ هفته ای چند Story point می تواند انجام بدهد؟ تعیین این میزان برای هر تیم به دو روش امکان دارد :
- تعیین ظرفیت اسپرینت با توجه به عملکرد تیم در اسپرینت های قبلی
- تعیین ظرفیت تیم بر اساس توان نیروی کار موجود و میزان توجه آن ها به کار
به طور خلاصه تیم بر اساس ظرفیت و یا سرعت خود و رعایت اولویت های مالک محصول تعدادی User Story را از داخل بک لاگ محصول انتخاب و به داخل بک لاگ اسپرینت انتقال می دهد. این فعالیت در طی جلسه برنامه ریزی اسپرینت انجام و جلسه در ابتدای هر اسپرینت برگزار می شود.
در گام بعدی تیم شروع به پیاده سازی هر یک از اقلام موجود در بک لاگ اسپرینت خواهد کرد . برای اینکه اعضای تیم اعلام کنند که چه کاری را انجام داده اند و چه کاری را می خواهند انجام دهند جلسه ای با عنوان جلسه روزانه اسکرام و یا جلسه سرپایی روزانه در هر روز معمولا در شروع روز کاری به مدت حداکثر ۱۵ دقیقه برگزار می شود . در این جلسه هر کس ۳ سوال اصلی مطرح و به آن ها جواب می دهد :
- با توجه به هدف اسپرینت، دیروز چه کاری انجام دادم؟
- امروز چه کاری می خواهم انجام بدهم
- چه موانعی در پیش رو دارم و با چه موارد پیش بینی نشده ای برخورد کرده ام؟
طرح این سوالات برای ایجاد شفافیت و وضوح عملکرد تیم می باشد . این عمل باعث ژل شدن بیشتر تیم میشود.
در نهایت در زمان اتمام زمان اسپرینت، تیم اقدام به آماده سازی یک دمو از موارد تکمیل شده طی اسپرینت می کند . در این جلسه که با عنوان Sprint Review شناخته می شود خروجی تیم در این اسپرینت مورد بازبینی و بررسی توسط ذینفعان کلیدی قرار میگیرد. هدف این جلسه دریافت بازخوردهای نفرات حاضر درجلسه است. تیم بازخورد های دریافتی را مغتنم شمرده و آن ها را در بک لاگ محصول اعمال می نماید و این راهی برای دریافت و کنترل تغییرات میباشد.
آخرین جلسه بعد از اتمام هر اسپرینت , جلسه Scrum Retrospective یا بازبینی عملکرد است. این جلسه فرصتی با ارزش برای بهبود عملکرد تیم می باشد. در این جلسه عملکرد اسپرینت بررسی و برای آینده توافقی از نقاط بهبود استرخاج می شود. در این جلسه معمولا سوال هایی مانند زیر مطرح می شود :
- چه مواردی در اسپرینت قبل خوب بود؟
- کدامیک از عملکردهای ما نیاز به اصلاح دارد؟
- چه بهبودهایی را می توان برای آینده در نظر گرفت؟
بهبود های کشف شده در این جلسه ۲ ساعته به مرور در اسپرینت های بعدی اعمال می شوند.
علاوه بر خود تیم نقشی به نام Scrum master در داخل تیم اسکرام وجود دارد . همانطور که از عنوان این نقش قابل ملاحظه است کار این نقش مدیریت پروسه اسکرام است. اولا او پروسه اسکرام را در سازمان کلید می زند و ثانیا کنترل می کند که آیا تیم و مالک محصول ,اسکرام را درست انجام می دهند؟ علاوه بر این ها وظیفه حذف موانع از سر تیم در راه فرآیند اسکرام نیز بر عهده اسکرام مستر است .برای هر تیم باید یک SM و یک PO مجزا وجود داشته باشد .