اسکرام یک فریمورک است که به تیمها و گروهها این امکان را میدهد تا از این طریق با همدیگر همکاری داشته باشند.
اسکرام مانند یک تیم راگبی برای یک بازی بزرگ تمرین میکند، اعضای تیم را تشویق میکند تا از تجربیات یکدیگر بیاموزند، طی انجام کار بر روی مشکلات تمرکز و آنها را سازماندهی کنند و در مورد نقاط قوت و نقاط ضعف خود فکر و آنها را بهبود بخشند.
البته اسکرامی که درمورد آن صحبت میکنیم بیشتر توسط تیمهای توسعه نرمافزار استفاده میشود، اما میتوانید اصولی از آن را برای انواع کار گروهی به کار ببرید. این یکی از دلایل محبوبیت اسکرام است.
اسکرام که اغلب به عنوان یک فریمورک برای مدیریت پروژه اجایل استفاده میشود، مجموعهای از جلسات، ابزارها و نقشهایی را تعریف میکند که به تیمها برای هماهنگ عمل کردن در ساختار و مدیریت کارشان کمک میکند.
اسکرام و اجایل (agile)
اکثر مردم فکر میکنند که اسکرام و چابکی (agile) یک چیز هستند. استدلال آن دسته از افراد این است که میگویند «اسکرام حول محور بهبود مستمر است که خود این مبحث، یکی از اصول چابکی است.»
اما این باور غلطی است؛ زیرا اسکرام یک فریمورک است که به شما کمک میکند کارهایتان را بهتر انجام دهید و در این روند، چابکی ذهنیت پشت انجام کارهاست.
هیچ یک از کارمندان به تنهایی نمیتواند اصل «چابکی» را به درستی اجرا کند، زیرا برای ارائه ارزش به مشتری و طرز تفکر آنها، تعهد کل تیم به این اصول الزامی است.
اما میتوانید از چارچوبی مانند اسکرام استفاده کنید تا به شما کمک کند تا اینگونه فکر کنید و اصول چابکی را در ارتباطات و کار روزمره خود تمرین کنید.
روش کار اسکرام چیست؟
این فریمورک، یک چارچوب اکتشافی مبتنی بر یادگیری و سازگاری با عوامل دارای نوسان است. این برنامه با ذهنیت این که تیم در زمان شروع پروژه اطلاعات کامل از تمامی جوانب کار ندارد، شروع به فعالیت میکند.
اسکرام برای کمک به تیمها برای سازگاری طبیعی با شرایط در حال تغییر و نیازهای کاربر، با اولویتبندی مجدد در فرآیند و چرخههای انتشار کوتاه ساخته شده است تا تیم شما بتواند دائماً یاد بگیرد و بهبود یابد.
یکی از مزیتهای اسکرام این است که قابل استفاده هر سازمانی میباشد. البته افراد مختلف نظرات متفاوتی درمورد چگونگی کار با این فریمورک دارند.
در حالی که اسکرام ساختار یافته است، کاملاً سفت و سخت نیست و اجرای آن متناسب با نیازهای هر سازمانی میتواند باشد.
اصطلاحات اسکرام
در فریمورک اسکرام سه اصطلاح اساسی وجود دارند:
product backlog
بکلاگ شامل لیست اولیهای از کارهایی است که توسط مالک یا مدیر محصول تهیه میشود. گفتنی است که این لیست، یک فهرست پویا است و مواردی مانند ویژگیها، نیازمندیها، پیشرفتها و اصلاحات را شامل میشود. این موارد عموما جزو لیست کارهای ToDo هر تیمی محسوب میشود.
لیست product backlog معمولا توسط مالک و مدیر محصول به صورت مکرر مورد بازبینی، اولویتبندی و نگهداری قرار میگیرد. زیرا، همانطور که بیشتر درباره جزییات در فرآیند اسکرام یاد میگیریم یا با تغییرات بازار هدف، ممکن است مواردی از بکلاگ دیگر مرتبط نباشند یا مشکلات به روش های دیگر حل شوند.
sprint backlog
Sprint Backlog فهرستی از آیتمها، استوری یوزر یا باگهایی که باید رفع شوند میباشند که توسط تیم توسعه برای پیاده سازی در اسپرینت فعلی انتخاب شده است.
قبل از هر اسپرینت، در جلسه sprint planning تیم انتخاب میکند که روی چه مواردی برای این اسپرینت از بکلاگ محصول کار کند.
یک بک لاگ اسپرینت ممکن است انعطافپذیر باشد و در طول یک اسپرینت تکامل یابد.
Increment (Sprint Goal)
منظور خروجی و محصول نهایی قابل استفاده از یک اسپرینت هست.
این اصطلاح اشاره دارد به مایل استونی که توسط تیم Done میشود. البته این بستگی به این دارد که در تیم شما Done و اهداف اسپرینت را به چه ترتیبی برای اسپرینت و محصولتان تعریف میکنید.
مثلا بعضی از تیمها پایان اسپرینت را انتشار نسخهای جدید از محصول برای مشتریان هدف در نظر میگیرند.
اما در تیم دیگر که انتشار نسخه محصول 3 ماه طول میکشد در اسپرینت دو هفتهای خروجی اسپرینت تکمیل بخشی از کار میباشد.
جلسات و رویدادهای اسکرام
برخی از اصولی که از فریمورک اسکرام میشناسیم، مجموعهای از جلساتی است که تیمهای اسکرام به صورت منظم برگزار میکنند.
برخی از تیمها اجرای این جلسات را دست و پا گیر میدانند در حالی که برخی تیمهای دیگر به آنها پایبند هستند و به صورت منظم آنها را اجرا میکنند.
پیشنهاد میشود در ابتدای کار بر طبق اصول اسکرام اقدام نمایید و سپس با توجه به شرایط تیمتان جلسات را بهینه نمایید.
لیستی از تمام مراسمهای کلیدی که یک تیم در اسکرام ممکن است در آن شرکت کند را آوردهایم:
backlog grooming
مسئولیت این جلسه بر عهده صاحب محصول (product owner) میباشد. شغل اصلی این شخص هدایت محصول به سمت چشمانداز محصول میباشد. بنابراین صاحب محصول، با توجه به فیدبکهای کاربران و تیم توسعه محصول لیست کارهایی که باید برای توسعه محصول انجام شود تهیه مینماید.
Sprint planning
کاری که باید در طی فرایند این اسپرینت انجام دهید در جلسه توسط کل تیم توسعه، برنامه ریزی میشود. این جلسه توسط اسکرام مستر هدایت میشود و جایی است که تیم در مورد هدف اسپرینت (sprint goal) تصمیمگیری میکند.
در طی این جلسه استوریهایی که باید در اسپرینت توسعه داده شود از بکلاگ پروداکت به اسپرینت اضافه میشود.
این استوریها همیشه با هدف هماهنگ هستند و توافق میشود تا در طول اسپرینت اجرا شوند.
همچنین هر عضو اسکرام باید در این جلسه مشخص نماید در پایان اسپرینت چه مواردی را به عنوان خروجی خواهد داشت.
Sprint
اسپرینت مدت زمانی است که یک تیم با هم کار میکنند تا یک هدف را به پایان برسانند. به طور معمول اسپرینتها دو هفتهای میباشد ولی بعضی از تیمها با طول یک هفتهای و بعضی یک ماهه برای رسیدن به اهداف مدنظر راحتتر هستند.
Dave West از scrum.org توصیه میکند که هر چه کار پیچیدهتر و ناشناختهتر باشد، دوره اسپرینت باید کوتاهتر باشد. اما به طور کلی، همه چیز به تیم شما بستگی دارد.
تمام جلسات از برنامهریزی تا بازنگری (retrospective) در طول اسپرینت برگزار میشود.
سه نقش اساسی برای موفقیت اسکرام
به طور کلی تیمی که از اسکرام استفاده میکند به سه رکن اصلی در پروسه خود نیازمند است.
- مالک محصول (product owner)
- اسکرام مستر (scrum master)
- تیم توسعه (development team)
تیم توسعه شامل طراح UX، برنامه نویس، مهندس نرمافزار و… میباشد.