الگوی اسکرام چیست و اسکرام مستر کیست؟

الگوی اسکرام برای چابک سازی توسعه نرم افزاری استفاده می شود اما می توان از این الگو برای سایر زمینه ها مانند بازاریابی، فروش، توسعه محصول، تحقیق و توسعه، تولید و... نیز استفاده نمود.الگوی اسکرام دارای خاستگاه ژاپنی است که تاکید فراوانی بر عملکرد تیمی دارد. الگوی اسکرام شامل مراحل زیر است:

  • تعریف ابتدایی اسکرام: در ابتدا برنامه ریزی و تعیین پروژه مطابق تمام آنچه که در مدیریت استراتژیک، تعیین هدف، نقشه راه و... بیان شده است توسط کارفرما انجام می شود (طراحی ابتدایی پروژه). درواقع در این مرحله، کارفرما باید به نتیجه برسد که چرا و برای انجام چه کاری نیاز به نرم افزار دارد.
  • ترکیب تیم اسکرام: شامل نماینده کارفرما، اسکرام مستر، و توسعه دهندگان خواهد بود که در ادامه به هرکدام پرداخته می شود:
    • الف- نماینده کارفرما: یک نفر بعنوان نماینده کارفرما مشخص می شود (فرض کنید که یک شرکت نیاز به نرم افزار داشته و به شرکتی که طراح نرم افزار است سفارش داده باشد. در این حالت باید نماینده کارفرما مشخص شده و در گروه حضور داشته باشد). هرگز این شخص نباید همان اسکرام مستر باشد. نماینده پیمانکار باید توانایی تنظیم RFP (سندی که شرح نیازها و راهکار رفع نیاز در آن بصورت دقیق ذکر شده است) را داشته باشد یعنی بتواند شرح نیاز (که معمولا متناسب با نیازهای کسب و کار است) را به صورت کامل و واضح به تیم اجرایی بگوید تا آنها بدانند که چه چیزی را باید فراهم کنند بنابراین نماینده پیمانکار باید حتما دانش کافی در دو حوزه تجارت شرکت و فنی را بصورت همزمان داشته باشد. این شخص باید به خوبی از ریسک ها، موانع، نیازهای وابسته با یکدیگر، و ملزومات غیر قابل چشم پوشی اطلاع داشته باشد.
    • ب- توسعه دهندگان: که شامل تمام افرادی است که در زمینه فنی فعالیت می کنند مانند معمار نرم افزار، برنامه نویسان، طراحان گرافیک و... که همگی زیر نظر اسکرام مستر فعالیت می کنند. این تیم باید حتما دارای دانش فنی کافی در هرکدام از حوزه هایی که مربوط به پروژه است باشند.
    • ج- اسکرام مستر: یک نفر متخصص که اصطلاحا اسکرام مستر نامیده می شود، بعنوان مسئول اجرای پروژه تعیین می گردد. این شخص باید مشخصاتی مانند: دانش مدیریت تیم اجرایی و پروژه، دانش فنی کافی، امکان ارائه راهکار، تنظیم برنامه و فازهای زمان بندی، رفع موانع، سنجش شاخص های پیشرفت پروژه، ارائه مشاوره به کارفرما جهت حل نیازها، تجربه اجرایی در مدیریت تیم، توانایی آموزش دادن و مربیگری، را داشته باشد تا بتواند تیم را راهنمایی کند. توجه شود که اسکرام مستر همان مدیر پروژه نیست زیرا در اسکرام از قابلیت خود سازمان دهی استفاده می شود و اختیار عمل با توسعه دهندگان است (زیرا ممکن است دانش فنی توسعه دهندگان در حوزه های مختلف فنی بسیار بیشتر از اسکرام مستر باشد و راهکارهای اجرایی بهتری سراغ داشته باشند که در صورت دیکته شدن یک عملکرد، نتوانند از آن راهکارها استفاده کنند.) درواقع اسکرام مستر باید نتیجه را مدنظر داشته باشد نه روش اجرا را.
  • مراحل اجرای اسکرام: فاز های اجرایی به دوره هایی بین 15 روز الی یک ماه تقسیم می شود که به هرکدام از این فازها اسپرینت گفته می شود. (هرچه زمان فرض شده برای فازهای اجرایی کوتاه تر باشد، چابک سازی بیشتری انجام شده است) در برنامه ریزی فازها یا اسپرینت به موارد زیر توجه می شود:
    • الف: در جلسه ای که توسط توسعه دهندگان و اسکرام مستر برگزار می شود، فاز های اجرایی پروژه بر اساس واقعیات تبیین می شود و سپس آنرا به نماینده کارفرما اطلاع می دهند. در این مرحله باید احتمال بروز مشکلات و اهمیت هرکدام بررسی و امتیاز دهی شوند که از 1 تا 10 متفاوت است. هرچه این امتیاز بالاتر باشد، اهمیت آن مشکل جدی تر می شود. سپس زمان احتمالی تحویل پروژه بعلاوه 10% الی 30% بیشتر به اطلاع کارفرما میرسد. (هرچه تجربه تیم در انجام آن کار و شناخت ایشان از یکدیگر بیشتر باشد، این زمان کاهش می یابد). مثلا می گویند که جمع آوری مستندات و معماری نرم افزار 10 روز، کدنویسی 20 روز، پیاده سازی 5 روز، تست و دیباگ 10 روز، جمعا 45 روز. تعیین اسپرینت ها بر عهده اسکرام مستر است که در جلسه ای با حضور توسعه دهندگان انجام می شود.
    • ب: حالا مراحل فوق به زیربرنامه هایی باتوجه به نظر فنی توسعه دهندگان تقسیم شده و برای هر مرحله شاخص هایی قابل اندازه گیری تعریف می شود. حداکثر زمان برنامه ریزی ابتدایی برای یک اسپرینت که قرار است چهار هفته طول بکشد هشت ساعت است.در مراحل طراحی یا اجرای اسپرینت ممکن است اسکرام مستر به این نتیجه برسد که هر فاز از اسپرینت ها نیاز به دانش خاص یا تعداد خاصی از توسعه دهندگان دارد. درواقع سرعت انجام اسپرینت ها وابسته به توانایی توسعه دهندگان است. مثلا اسکرام مستر تعیین می کند که یک اسپرینت نیاز به 100 نفرساعت کار دارد و اگر دو توسعه دهنده در اختیار داشته باشد، می تواند در عرض یک هفته آن اسپرینت را به پایان برساند. پس از پایان بررسی ها، اسپرینت ها به اطلاع نماینده کارفرما میرسد تا او با توجه به اولویت های کسب و کار انتخاب کند که چه مواردی اولویت بیشتری دارند.
    • ج: موارد عقب مانده از برنامه در جلسات 15 دقیقه ای که ابتدای هر روز تشکیل می شود، لیست شده و در همان جلسه تصمیم گرفته می شود که چه راهکاری برای رسیدن به برنامه مورد نیاز است. این جلسات باید هر روز و بصورت منظم برگزار شوند و از 15 دقیق تجاوز نکند. فراموش نشود که این جلسات محل بحث نیست و مشکلاتی که مطرح می شود بصورت فردی بین یکی از توسعه دهندگان و اسکرام مستر بررسی می شود تا سایر اعضا از برنامه روزانه خود عقب نمانند.
    • د: اگر تیم اجرایی (شامل توسعه دهندگان و اسکرام مستر) به این نتیجه برسند که مشکلی غیر قابل پیشبینی رخ داده است، تغییر در زمان تحویل را به نماینده کارفرما اطلاع می دهند. بهتر است قبلا احتمال تغییر در زمان تحویل (با درج زمان مشخص مثلا ذکر شود که 10 روز تاخیر در تحویل مجاز است) در قرارداد فیمابین ذکر شده باشد تا باعث نارضایتی کارفرما نشود.
    • ه: در هر جلسه روزانه اگر ایرادی در اجرای برنامه شناسایی شود، اهمیتی ندارد که دلیل بروز آن چیست (چون بروز ایراد اجتناب ناپذیر است و تمرکز بر شناسایی مقصر یا دلیل ایراد صرفا باعث هدر رفتن زمان می شود) اما باید راهکاری برای حل آن از طریق اظهار نظر تمام اعضا انتخاب شود.
    • و: در پایان هرکدام از اسپرینت ها، بررسی می شود که چه چیزهایی خوب پیش رفت؟، چه مواردی خوب پیش نرفت؟، دلایل هرکدام چیست؟، راهکار برای حل هرکدام چیست؟ چگونه می توان سرعت و کیفیت اجرا را ارتقا بخشید؟. در اینجا باید فرایند بهبود مستمر پیاده سازی شود تا بتوان از بروز مشکلات در اسپرینت های بعدی اجتناب کرد.
  • اجرای بک لاگ: ممکن است در پایان و یا اجرای هر اسپرینت مشخص شود که نیاز است اسپرینت های جدیدی تعریف شده و یا اسپرینت های قبلی به چند اسپرینت تقسیم شوند. همچنین ممکن است اصلاح نیازهای اعلامی کارفرما در حد یک پروژه جدید نباشد اما بقدری باشد که نیاز به تعریف اسپرینت های جدید شود. در این حالت باید تغییر زمان تحویل و تغییر هزینه نهایی به کارفرما اطلاع داده شود و در صورت توافق طرفین، اسپرینت های جدیدی تعریف شوند. حتی ممکن است در حین اجرای اسکرام، کارفرما به این نتیجه برسد که دیگر نیازی به برخی از اسپرینت ها ندارد بنابراین می توان آنها را لغو  و مجددا برنامه ریزی اسپرینت ها را انجام داد. همچنین ممکن است تاخیر در اجرای برخی اسپرینت ها آنقدر زیاد و جدی باشد که لازم باشد قبل از شروع اسپرینت جدید، ابتدا به آنها رسیدگی شود. تشخیص تمام این موارد بر عهده اسکرام مستر است.
  • پایان اسکرام: در پایان پروژه، دو جلسه برای ذینفعان برگزار شده و به بررسی موارد زیر پرداخته می شود:
    • الف: بررسی می شود که آیا آنچه که ساخته شده متناسب با نیاز اولیه که اعلام شده بود است یا خیر. اگر متناسب نباشد، برنامه اصلاحی برای اسکرام تعیین می شود.
    • ب: ممکن است کارفرما به این نتیجه برسد که نیاز به قابلیت های جدیدی در نرم افزار دارد که قبلا بیان نکرده است. در این صورت باید یک اسکرام جدید تعریف شود.
    • ج: تمام آنچه که انجام شده است و مستندات آن در اختیار کارفرما و پیمانکار قرار می گیرد تا بتوانند در فازهای بعدی گسترش نرم افزار از آن استفاده کنند.
    • د: مدتی برای بررسی محصول نهایی تحت عنوان دوره ی تست محصول تعیین می شود در این دوره، کارفرما اقدام به تست محصول می کند و ایرادات احتمالی را به اسکرام مستر می گوید تا توسعه دهندگان رفع کنند. پس از رفع تمام نقایص، پایان اسکرام اعلام می شود.

محدودیت های اسکرام:

جدی ترین محدودیتهای تیم های اسکرام معمولا شامل موارد زیر است:

  1. فاصله جغرافیایی
  2. در تیم های با اعضای بسیار متخصص نیاز است که این اعضا درمورد فعالیت در سایر شاخه ها نیز تشویق شوند.
  3. وقتی اسکرام در بین چند گروه تقسیم شده است، هماهنگی این گروه ها ممکن است سخت باشد. در این زمان می توان از الگوی اسکرام-اسکرام استفاده کرد یعنی از هر اسکرام، نماینده ای در سطح بالاتر وجود داشته باشد. مثلا فرض کنیم که چهار تیم هرکدام به یک اسکرام مشغولند ولی در همگی شامل یک پروژه می شوند. در این زمان باید از هر تیم یک نماینده در اسکرام اصلی حضور داشته باشند و به صورت روزانه همان مراحلی که در اسکرام انجام می شود را انجام دهند تا چهار گروه با یکدیگر هماهنگ باشند.
  4. در مواردی که محصول نهایی دارای تست های پیچیده است (مانند نرم افزار های پزشکی)

بر اساس نظریات: شوبر، تاکوچی، نوناکا، ساترلند، اسلیگر، هیروتاکا، شوابر، جانسون، گونتر ورهین، ماکسیمینی