اسکرام یکی از روشهای مدیریت پروژه چابک است که در توسعه نرمافزار بر اساس فرآیندهای تکراری و افزایشی کاربرد دارد. اسکرام یک چارچوب چابک سازگار، سریع، انعطافپذیر و موثر است که به منظور ارائه ارزش به مشتری در طول توسعه پروژه طراحی شده است. هدف اولیه اسکرام، پاسخگویی به نیازهای مشتری در محیطی شفاف، تقسیم کار صحیح و پیشرفت مستمر است. توسعه، از یک ایده کلی در مورد آنچه باید ساخته شود، شروع میشود و با فهرستی از ویژگیهای مرتب شده بر اساس اولویت که صاحب محصول میخواهد به دست بیاورد، ادامه مییابد. این رویکرد بر اهمیت توانمندسازی تیمهای خودسازمانده تاکید میکند.
تاریخچه اسکرام
واژه Scrum اولین بار در سال 1986 توسط دو استاد ژاپنی به نام هیروتاکا تاکوچی و ایکوجیرو نانوکا به کار برده شد. تاکوچی و نانوکا در مقالهای که Harvard Business Review منتشر شد، اسکرام را به عنوان یک مفهوم مدیریتی معرفی کردند. در سال 1993، جف ساترلند و تیمش در شرکت Easel با ترکیب مفاهیم مقاله تاکوچی و نانوکا با مفاهیم توسعه شیءگرا، کنترل فرآیند تجربی و فرآیندهای نرمافزاری، فرآیند اسکرام را برای استفاده در توسعه نرمافزار ایجاد کردند. هدف از توسعه این روش، بهبود بهرهوری و همچنین توسعه سیستمهای پیچیده و پویا بود. اکنون شرکتهایی مانند هوندا، کانن، و فوجی زیراکس با استفاده از رویکرد مقیاسپذیر و مبتنی بر تیم برای توسعه محصول، محصولات جدید را برای ارائه در سراسر جهان تولید میکنند.
روش و فرآیند اسکرام
اسکرام دقیقاً تکامل یافته مدیریت چابک است. متدولوژی اسکرام بر مبنای مجموعهای از اقدامات و نقشها تعریف شده که در طول فرآیند توسعه نرمافزار رخ میدهند. اسکرام در بلوکهای موقت کوتاه و دورهای تحت عنوان Sprint اجرا میشود که معمولاً بین 2 تا 4 هفته در نظر گرفته میشوند. هر اسپرینت به خودی خود یک موجودیت است، یعنی یک نتیجه کامل را ارائه میکند؛ نسخهای از محصول نهایی که با کمترین تلاش ممکن به مشتری تحویل داده میشود.
فرآیند Scrum در نقطه شروع، فهرستی از اهداف و نیازهای مشتری است که طرح پروژه را تشکیل میدهند. این مشتری پروژه است که این اهداف را با در نظر گرفتن ارزش و هزینه آن اولویتبندی میکند. دورههای تکرار و تحویل محصول هم بر اساس همین اولویتها تعیین میشوند.
بازار، خواستار کیفیت بالا و تحویل سریع با کمترین هزینه است. برای تامین این خواسته، شرکت تولیدکننده باید در توسعه محصولات بسیار چابک و انعطافپذیر عمل کند تا بتواند به چرخههای توسعه کوتاهی دست پیدا کند و تقاضای مشتریان را بدون افت کیفیت برآورده کند. اسکرام یک روش بسیار کاربردی است که خواستههای بازار، مشتری و تولیدکننده محصول را برآورده میکند.
روش Scrum عمدتاً برای توسعه نرمافزار استفاده میشود، اما سایر بخشها نیز با پیادهسازی این متدولوژی در مدلهای سازمانی مانند تیمهای فروش، بازاریابی و منابع انسانی و غیره، از مزایای آن بهره میبرند.
اسکرام در واقع اصطلاحی است که از بازی راگبی گرفته شده است و به نحوه شروع مجدد بازی پس از خطا یا زمانی که توپ از بازی خارج میشود اشاره دارد
نقشهای مختلف در اسکرام
در اسکرام، تیم طراحی، بر ساخت نرمافزار با کیفیت تمرکز میکند و مالک پروژه اسکرام، تمرکز خود را متوجه تعیین ویژگیهایی میکند که محصول باید داشته باشد. تیم اسکرام از نقشهای زیر تشکیل شده است:
رهبر اسکرام
اسکرام مستر (Scrum Master) یا رهبر اسکرام، شخصی است که تیم را هدایت میکند و اعضا را برای رعایت قوانین و فرآیندهای متدولوژی راهنمایی میکند. اسکرام مستر کاهش موانع پروژه را مدیریت میکند و با مالک محصول برای به حداکثر رساندن میزان بازگشت سرمایه همکاری میکند و مسئول به روز نگه داشتن اسکرام، هدایت، راهنمایی و آموزش تیم است.
مالک محصول
مالک محصول (Product owner) نماینده ذینفعان و مشتریانی است که از نرمافزار استفاده میکنند. او بر بخش تجاری تمرکز میکند و مسئولیت بازگشت سرمایه پروژه را بر عهده دارد. مالک محصول چشمانداز پروژه را به اعضای تیم منتقل میکند، نقاط مثبت هر استوری را مشخص میکند تا در بکلاگ محصول گنجانده شوند و آنها را به طور منظم اولویتبندی میکند.
تیم اجرایی
به گروهی از متخصصان با دانش فنی لازم اطلاق میشود که پروژه را به طور مشترک توسعه میدهند و استوریهایی را که در شروع هر اسپرینت به آنها متعهد هستند، انجام میدهند.
رویدادها در اسکرام
در اسکرام رویدادهایی تعریف شدهاند که انطباق برخی از جنبههای فرآیند، محصول، پیشرفت یا روابط را تسهیل میکند. در ادامه رویدادها و جلسههای اسکرام را مرور میکنیم.
اسپرینت (Sprint)
اسپرینت واحد اصلی کار برای تیم Scrum است. این ویژگی اصلی است که تفاوت بین اسکرام و سایر مدلها را برای توسعه چابک نشان میدهد. اسپرینت یک بازه زمانی مشخص است که با جلسه برنامهریزی شروع میشود و اعضای تیم باید وظایف خود را تا پایان این بازه زمانی انجام دهند.
جلسه برنامهریزی (Planning)
هدف از برنامهریزی اسپرینت این است که مشخص کند چه کاری قرار است در اسپرینت انجام شود و چگونه باید انجام شود. این جلسه در ابتدای هر اسپرینت برگزار میشود و با در نظر گرفتن مراحل و مهلتهای بکلاگ محصول، وظایف هر یک از اعضای تیم را در ان اسپرینت مشخص میکند.
جلسه روزانه (Daily Scrum)
هدف از اسکرام روزانه، ارزیابی پیشرفت و روند تا پایان اسپرینت، همگامسازی فعالیتها و ایجاد برنامهای برای 24 ساعت آینده است؛ یک جلسه کوتاه که در هر اسپرینت، به صورت روزانه برگزار میشود. در جلسات روزانه به سه سوال پاسخ داده میشود:
- دیروز چه کار کردم؟
- امروز قرار است چه کار کنم؟
- به چه کمکی نیاز دارم؟
اسکرام مستر باید سعی کند مشکلات یا موانعی را که اعضای تیم با آن مواجه هستند، حل کند.
جلسه مرور اسپرینت (Sprint Review)
هدف از برگزاری جلسه مرور اسپرینت این است که بدانیم آیا کارهایی در طول اسپرینت انجام شده، ما را به هدفی که در جلسه برنامهریزی مشخص کرده بودیم، رسانده یا خیر. به علاوه در جلسه مرور اسپرینت، دمویی از محصول به ذینفعان ارائه میشود و بازخوردهای آنها برای استفاده در اسپرینتهای بعدی، دریافت میشود. هر اسپرینت پس از پایان بررسی میشود و باید یک پیشرفت واضح و ملموس در محصول برای ارائه به مشتری وجود داشته باشد.
جلسه بازنگری اسپرینت (Sprint Retrospective)
تیم اجرایی اهداف تکمیل شده اسپرینت قبلی را بررسی، و موارد خوب و بد را یادداشت میکند تا اشتباهات تکرار نشوند. این مرحله، فرآیند توسعه را تسهیل میکند. هدف از بازنگری در اسپرینت، شناسایی بهبودهای احتمالی فرآیند و ایجاد طرحی برای اجرای آنها در اسپرینتهای بعدی است. در جلسه بازنگری مشخص میشود که چه فرایندهایی نباید در اسپرینتهای بعدی تکرار شوند.
مصنوعات اسکرام
مصنوعات اسکرام برای تضمین شفافیت اطلاعات کلیدی در تصمیمگیری طراحی شده و موارد زیر را شامل میشود:
بکلاگ محصول (PB)
بکلاگ محصول لیستی از مواردی است که محصول برای جلب رضایت مشتریان بالقوه باید داشته باشد. این لیست توسط مالک محصول تهیه و بر اساس آنچه که برای کسبوکار بیشتر اهمیت دارد، اولویتبندی میشود. از آنجا که لیست نیازمندیهای پروژه ثابت نیست، بک لاگ محصول هم ماهیتی پویا دارد و با توسعه محصول، تغییر میکند و مواردی به آن افزوده میشود.
بکلاگ اسپرینت (SB)
بکلاگ اسپرینت به زیرمجموعهای از آیتمهای بکلاگ محصول اطلاق میشود که توسط اعضای تیم انتخاب، و در طول اسپرینت انجام میشوند. معمولاً بک لاگ اسپرینت، بر روی بردهایی به نام برد اسکرام نمایش داده میشود و باعث میشود فرآیند توسعه، برای همه کسانی که وارد پروژه میشوند، قابل مشاهده و درک باشد.
اینکریمنت
واژه اینکریمنت به معنی ارتقاء و رسیدن به سطح بعدی است. در روش اسکرام، اینکریمنت عبارت است از مجموع تمام وظایف، استوریهای کاربر، بکلاگ محصول و هر عنصری که در طول اسپرینت، توسعه یافته و در قالب نرمافزار در اختیار کاربر نهایی قرار می گیرد.
اسکرام مستر تیم را به سمت بهبود مستمر هدایت کند و به طور مستمر به این پرسش پاسخ میدهد: چگونه میتوانیم این کار را بهتر انجام دهیم؟
مزایای روش اسکرام
اسکرام مزایای زیادی نسبت به سایر روشهای توسعه چابک دارد و پرکاربردترین و قابل اعتمادترین چارچوب مرجع در صنعت نرمافزار است. در زیر برخی از مزایای شناخته شده اسکرام آورده شده است:
مقیاسپذیری
فرآیندهای Scrum تکراری هستند و در دورههای کاری خاص انجام میشوند. این فرایند، تمرکز تیم را بر روی عملکردهای مشخص برای هر دوره آسانتر میکند. این امر نهتنها دستیابی به نتایج بهتر مطابق با نیازهای کاربر را ممکن میکند، بلکه به تیمها این توانایی را میدهد که ماژولها را از نظر عملکرد، طراحی، وسعت و ویژگیها به صورت منظم، شفاف و ساده مقیاسبندی کنند.
انطباق انتظارات
مشتری انتظارات خود را مشخص میکند و ارزش نیازهای خود را برآورد میکند؛ مالک محصول با اطلاعاتی که مشتری به او میدهد، اولویتهای خود را تعیین میکند؛ و تیم اجرایی آنها را برآورد میکند. به طور منظم، در دموهای اسپرینت، مالک محصول تأیید میکند که الزامات برآورده شده است و بازخورد را به تیم ارسال میکند.
انعطافپذیری در برابر تغییرات
یکی از مزیتهای دیگر روش اسکرام، امکان واکنش سریع به تغییرات نیازهای مشتری یا تحولات بازار است. این روش بهترین ابزار برای انطباق با الزامات متغیری است که در پروژههای بزرگ و پیچیده رخ میدهند.
کیفیت بالای محصول
روش کار اسکرام و نیاز به دریافت نسخه کاربردی پس از هر اسپرینت، باعث میشود ایرادات محصول به تدریج خود را نشان بدهند و محصول نهایی با کمترین ایراد به مشتری ارائه شود. به علاوه محصول در زمان کوتاهتری به مشتری یا بازار هدف ارائه میشود.
پیشبینی به موقع
با استفاده از روش اسکرام، میانگین سرعت تیم با بررسی سرعت پیشرفت اسپرینتها برآورد میشود. در نتیجه، میتوان تخمین زد که چه زمانی یک عملکرد خاص که هنوز در بکلاگ قرار دارد، در دسترس مشتری قرار خواهد گرفت.
کاهش ریسک
در هر پروژه ریسکهایی از قبیل هزینه، زمان و عملکرد، کیفیت محصول را تهدید میکنند. در روش اسکرام، باارزشترین عملکردها تعیین میشوند و سرعت پیشرفت پروژه نیز به خوبی قابل پیشبینی است. این عوامل در کنار هم، از بروز ریسکهای احتمالی جلوگیری خواهند کرد.
اکنون که بهتر میدانید متدولوژی Scrum چیست و چگونه میتواند به شما کمک کند، آیا علاقهمند به اعمال آن در شرکت خود هستید؟ روش اسکرام چطور میتواند برای کسب و کار شما مفید باشد؟
منبع: digite