اسکرام چارچوبی برای توسعه، ارائه و نگهداری محصولات پیچیده است. اساساً اسکرام چارچوبی است که در آن افراد می توانند به مشکلات پیچیده و سازگاری با یکدیگر رسیدگی کنند. در عین حال، آنها می توانند محصولاتی با بالاترین ارزش ممکن را به شیوه ای سازنده و خلاقانه در زمان مشخص شده ارائه دهند.
تعریف اسکرام:
Scrum یک ساختار تکرار شونده (iterative) و افزایشی (incremental) برای مدیریت پروژه است که عمدتاً در توسعه نرم افزار چابک استفاده می شود. روش اسکرام، تطبیق پذیری تغییرات همراه با ارتباطات، همکاری مداوم و واقعیت های تجاری در حال ظهور را نشان می دهد.
در زیر دیاگرام اسکرام یا چهارچوب اسکرام آمده است
متدولوژی اسکرام چیست ؟
اسکرام یک چارچوب ساده برای کار بر روی محصولات پیچیده است، درواقع اسکرام همکاری موثر بین اعضا تیم را تسهیل می کند. بنابراین، عملکرد و بهره وری تیم را چندین برابر افزایش می دهد. اغلب اوقات، اسکرام به عنوان یک "روش شناسی" شناخته می شود. اما معمولاً توصیه می شود به آن به عنوان چهارچوبی برای مدیریت فرآیندهای پیچیده فکر کنید.
خالقان اسکرام، جف ساترلند "Jeff Sutherland" و کن شوابر"Ken Schwaber" مفهوم اسکرام را در راهنمای اسکرام به بهترین شکل توضیح داده اند. تعریف اسکرام در راهنمای اسکرام شامل سه دسته می شود که عبارت است از تیم اسکرام، رویدادها، مصنوعات و همچنین قوانینی که آنها را به هم پیوند می دهد.
اسکرام یک چارچوب افزایشی تکرارشونده برای مدیریت موثر توسعه محصول است.
مفهوم تکرار شوندگی در اسکرام (Iterative) : اسکرام به عنوان یک چارچوب تکراری شناخته می شود زیرا از طریق اصلاحات متوالی به سمت هدف پیشرفت می کند. تیم توسعه اولین قدم بزرگ را در یک پروژه برمی دارد. بر اساس نیازهای جمع آوری شده، آنها کد را می نویسند و می دانند که ممکن است در برخی زمینه ها ضعیف باشد. پس از این، تیم به طور مکرر آن مناطق خاص را تا زمانی که محصول رضایت بخش باشد، اصلاح می کند. در هر تکرار متوالی، جزئیات بیشتر اضافه می شود و نرم افزار بهبود می یابد. معمولاً کار هر تکرار در تکرارهای بعدی بهبود می یابد.
مفهوم افزایشی در اسکرام (Incremental) : اسکرام را یک فرآیند افزایشی مینامند زیرا در اینجا نرم افزار به صورت تکه تکه ساخته و ارائه می شود. هر افزایش (increment) نشان دهنده یک زیرمجموعه کامل از نرم افزار نهایی است که باید تحویل (delivery) داده شود. در یک محیط معمولی اسکرام، هر افزایش به طور کامل کدگذاری و آزمایش می شود. به عبارت ساده، کار "تکمیل شده" در سراسر پروژه تحویل داده می شود.
تکرارها (iterations) در چرخه های زمان بندی (time-boxed) به نام اسپرینت (sprint) انجام می شوند. هر اسپرینت مدت زمان مشخصی دارد که در راهنمای اسکرام بین 2 الی 4 هفته پیشنهاد شده است.
ویژگی های اسکرام
اسکرام چند ویژگی منحصر به فرد دارد که آن را محبوب کرده است. اینها ویژگی ها متغیرهایی هستند که اسکرام را از بقیه متدولوژی های رایج متمایز می کند.
- فریمورک سبک: اسکرام یک چهارچوب سبک وزن شامل قوانین و شیوه هایی است که تعداد کمی دارند و به راحتی قابل پیروی هستند.
- سادگی: یک هویت منحصر به فرد اسکرام سادگی قابل درک آن است، این باعث می شود که درک چهارچوب حتی برای مبتدیان هم آسان باشد.
- تسلط دشوار: تفاوت زیادی بین درک اسکرام و پیاده سازی آن در پروژه های بلادرنگ (real-time) وجود دارد. بنابراین تسلط بر اسکرام تا حدودی دشوار است. شما باید در زمان واقعی تمرین کنید و مفاهیم را عمیقاً یاد بگیرید. در حین کار با اسکرام، باید به درستی درک کرد که چرا هر مؤلفه در جای خود قرار دارد، چگونه به عنوان یک عنصر مجزا و همچنین در رابطه با عناصر دیگر ارزش ارائه می کند.
حوزه های کاربردی اسکرام:
اسکرام در ابتدا برای سازماندهی و توسعه محصولات ایجاد شد سپس در اوایل دهه 1990بود که محبوبیت جهانی به دست آورد.
1- تحقیق و شناسایی بازارهای خاص، فناوری ها و پتانسیل های محصول؛
2- توسعه محصولات و انجام پیشرفت های لازم؛
3- محصولات و پیشرفت ها را به طور مکرر منتشر کنید.
4- توسعه و حفظ محیط های ابری (آنلاین، امن، بر اساس تقاضا) و سایر محیط های عملیاتی برای استفاده از محصول.
5- حفظ (Sustain) و تجدید محصولات (renew products).
در ابتدا اسکرام کاربرد گسترده ای در حوزه های مختلف پیدا کرد. در توسعه نرمافزار، نرمافزار تعبیهشده، سختافزار، مدارس، وسایل نقلیه خودمختار، دولت، تعامل با عملکردهای شبکه، کسبوکار، مدیریت عملیات سازمانها و بیشتر هر چیزی که بهطور معمول از آن استفاده میکنیم استفاده میشد.
با افزایش مداوم فناوری، بازار و پیچیدگیهای محیطی، اسکرام کاربردهای خود را تقریباً در همه حوزهها ثابت کرده است.
اکنون اسکرام به طور گسترده برای تمام خدمات، محصولات و مدیریت سازمان ها استفاده می شود.
اسکرام با تیم کوچکی از افراد سر و کار دارد. تیم های انفرادی جداگانه سازگار و بسیار انعطاف پذیر، این نقاط قوت با هم ترکیب می شوند تا به فعالیت در شبکه های منفرد و چند تیمی که در توسعه، عملیات، انتشار و حمایت از کار و محصولات کاری هزاران نفر مشارکت دارند، بپردازد. آنها از طریق ساختارهای توسعه پیشرفته تعامل و همکاری می کنند و محیط های انتشار را هدف قرار می دهند.
در سند راهنمای اسکرام (Scrum Guide)، کلمات "develop" یا "development" به معنی (توسعه) برای اشاره به کارهای پیچیده، مانند انواعی که در بالا مشخص شده است، استفاده می شود.
نظریه اسکرام (Scrum Theory) :
اسکرام بر اساس نظریه کنترل فرآیند تجربی (empirical process control theory) ساخته شده است که به عنوان تجربه گرایی (Empiricism) نیز شناخته می شود.
تجربه گرایی در اسکرام می گوید که دانش از تجربه در تصمیمگیری بر اساس آنچه می دانیم به دست می آید.
اسکرام در مورد نحوه کنترل ریسک و بهینه سازی قابلیت پیش بینی چنین عمل می کند .
سه ستون دارد که هر یک از اجرای کنترل تجربی فرآیند پشتیبانی می کنند: سازگاری، شفافیت و بازرسی.
1- شفافیت در اسکرام (Transparency) :
ما جنبههای مهم بسیاری برای تمام فرآیندهای اسکرام داریم که باید برای کسانی که مسئولیت محصولات تحویلی (deliverables) را بر عهده دارند مشخص باشد. این امر مستلزم آن است که تمام بخش ها (parts) با استانداردهای مشترک تعریف شوند. بنابراین، بینندگان (viewers) درک مشترکی از آنچه مشاهده می شود خواهند داشت.
مثلا:
- یک زبان مشترک برای اشاره به فرآیندی استفاده می شود که باید توسط همه شرکت کنندگان به اشتراک گذاشته شود.
- کسانی که کار را انجام می دهند و کسانی که نتیجه افزایش را می پذیرند باید تعریف مشترکی از "انجام شده" (Done) داشته باشند.
2- بازرسی در اسکرام (Inspection) :
کسانی که روی اسکرام کار می کنند باید به طور منظم مصنوعات (artifacts) اسکرام را بررسی کنند و به سمت هدف اسپرینت پیشروی کنند تا تغییرات نامطلوب در جدول زمانی (timeline) را تشخیص دهند. این بازرسی باید بیشتر انجام شود تا زمان کار سازنده (productive work time) را مختل نکند.
نکته اینکه، بازرسی زمانی منافع (profits) را تضمین می کند که توسط بازرسان بسیار ماهر به دقت انجام شود.
3- انطباق پذیری در اسکرام (Adaptation) :
با دنبال کردن مراحل بالا، بازرسی نشان میدهد که یک یا چند قسمت در داخل فرآیند از معیارهای پذیرش خارجی (outside acceptance criteria) منحرف میشوند. بنابراین، محصول تحویل داده شده قابل قبول نخواهد بود، در نتیجه تیم باید تنظیماتی را در فرآیند یا مواد در حال پردازش انجام دهد. هرچه تنظیمات (adjustments) زودتر انجام شود، انحراف (deviation) هم بیشتر به حداقل می رسد.
نحوه کار اسکرام و اهمیت آن
سازمانی که اسکرام را پیادهسازی میکند، اطمینان حاصل میکند که اعضای تیم برای رسیدگی به مشکلات پیچیده حاضر میشوند. اسکرام به روش های زیر کار می کند:
- توسعه نرمافزار در اسکرام با فهرستی از ویژگیهای اولویتبندی شده آغاز میشود - Backlog محصول. این تیم در مورد:
- backlog (لیستی از نیازمندی های محصول)
- What is not yet completed (چیزی که هنوز تکمیل نشده است)
- The duration required to complete the task (مدت زمان لازم برای تکمیل کار)
- Sprint قلب اسکرام است و دارای ویژگی های زیر است:
- The goal of each Sprint is to create a quality product. (هدف هر اسپرینت ایجاد یک محصول با کیفیت است.)
- Each Sprint ends with a Sprint Review. (هر اسپرینت با یک بررسی اسپرینت به پایان می رسد.)
- Once the first Sprint is over, the team selects the work items to develop a new Sprint. (پس از پایان اولین اسپرینت، تیم موارد کاری را برای توسعه یک اسپرینت جدید انتخاب می کند.)
- Sprint is continued till the project deadline is met. (اسپرینت تا پایان مهلت پروژه ادامه دارد.)
- Sprint is a timeboxed activity when the actual product is developed. (Sprint یک فعالیت جعبه زمانی است که محصول واقعی توسعه می یابد.)
- The duration of Sprint is from one week to one month to finish items from the product backlog. (مدت زمان اسپرینت از یک هفته تا یک ماه برای تکمیل اقلام از پس مانده محصول است.)
- در اسکرام روزانه، تیم ها برای بحث در مورد پیشرفت کار ملاقات می کنند.
- The Daily Scrum should be no longer than 15 minutes. (اسکرام روزانه نباید بیشتر از 15 دقیقه باشد.)
- Each team member should be prepared to discuss the status of the work. (هر یک از اعضای تیم باید برای بحث در مورد وضعیت کار آماده باشد.)
- The Scrum Master facilitates the meeting for the team members to achieve the common goal. (اسکرام مستر جلسه را برای اعضای تیم برای دستیابی به هدف مشترک تسهیل می کند.)
چه کسانی در Scrum دخیل هستند (نقش های اسکرام) ؟
در توسعه نرم افزار، سه نقش در چارچوب اسکرام به شرح زیر تعریف می شود:
The Scrum team ( تیم اسکرام) : متشکل از افرادی است که با هم در Sprint برای رسیدن به هدف پروژه کار می کنند
The Scrum Master (اسکرام مستر): یک رهبر خدمتگذار برای تیم اسکرام است و مطمئن می شود که تیم از قوانین اسکرام پیروی می کند.
The Product Owner (مالک محصول) : نماینده مشتری است. PO موارد عقب افتاده را اولویت بندی می کند و تلاش های تیم اسکرام را هماهنگ می کند.
راهکار هایی برای بهبودهای اسکرام
تیم توسعه میتواند با پیروی از روشهای اسکرام که در زیر ذکر شده است، محصولات با کیفیت ایجاد کند:
برای مرتبطتر نگه داشتن ویژگیهای محصول، الزام «در زمان» را تعریف کنید.
بازخورد صاحب محصول را روزانه دریافت کنید.
بررسیهای منظم اسپرینت باید شامل ذینفعان باشد
تیم اسکرام باید رویدادی به نام Sprint Retrospective ترتیب دهد تا نحوه کار خود را بهبود بخشد.
تشکیل جلسات آفلاین برای انجام مکالمات رودررو.
اعضای تیم را خسته نکنید.
به اعضای تیم اعتماد کنید.
برای سهولت کار، به تعادل بین زندگی شخصی و حرفه ای اعضای تیم احترام بگذارید.
مترجم و نویسنده : علی امینی