اسکرام (Scrum)، چارچوبی برای مدیریت پروژه است که بر توسعه ی تکرار شونده، همکاری گروهی، و بازخورد مستمر تاکید دارد. اسکرام به طور گسترده در توسعه نرم افزار استفاده می شود، اگرچه می تواند در زمینه های دیگر نیز کاربرد داشته باشد.
اسکرام بر اساس اصول توسعه نرم افزاری سریع (چابک) است و از سه نقش اصلی تشکیل شده است: مالک محصول، اسکرام مستر (Scrum Master)، و تیم توسعه. مالک محصول، مسئول تعریف و اولویت بندی بَکلاگِ محصول (Product Backlog) است، بک لاگِ محصول لیستی از ویژگی ها، وظایف و موارد مورد نیاز است که باید برای تکمیل و بهبود محصول استفاده شود. اسکرام مستر (Scrum Master) فرآیند اسکرام را آسان می کند و اطمینان حاصل می کند که تیم به اصول خود پایبند است. در نهایت، تیم توسعه، مسئول پیاده سازی موارد بک لاگِ محصول است که طی یکسری تکرار های کوتاه به نام اسپرینت (Sprint) (یک دوره زمانی مشخص که طی آن وظایف خاصی باید تکمیل شود) انجام می شود.
اسکرام، بر ارتباط و همکاری مکرر بین اعضای تیم و بهبود مستمر، طی یک دوره زمانی تاکید دارد. این امر اجازه می دهد تا انعطاف پذیری و سازگاری بیشتری در شرایط و الزاماتِ در حال تغییر، بوجود بیاید.
اسکرام روشی محبوب و موثر برای مدیریت پروژه های پیچیده در محیطی پویا و سریع است.
تاریخچه
اسکرام اولین بار در اوایل دهه 1990 میلادی توسط جِف سادرلند (Jeff Sutherland)، جان اسکامنیُتِلز (John Scumniotales)، جِف مَکِنا (Jeff McKenna) معرفی شد. آنها در شرکت ایزِل کُپِرِیشِن (Easel Corporation)، یک شرکت نرم افزاری، کار می کردند و سعی در بهبود فرآیند توسعه خود داشتند.
اصطلاح "اسکرام" از بازی راگبی گرفته شده است، اشاره به بازی ای دارد که در آن کل تیم با همکاری یکدیگر، توپ را به جلو حرکت می دهند. بنیانگذاران اسکرام شباهت هایی را بین این رویکرد مشترک و نحوه عملکرد تیم های توسعه نرم افزار مشاهده، و بر این اساس این نام را انتخاب کردند.
در سال 1995، کِن شوابِر (Ken Schwaber) و جِف سادرلند (Jeff Sutherland)، اسکرام را به عنوان چارچوبی برای توسعه نرم افزار در کنفرانس OOPSLA ارائه کردند. آنها مقاله ای را منتشر کردند که مفاهیم و شیوه های اصلی اسکرام را تشریح کرده و به سرعت در جامعه توسعه نرم افزار، محبوبیت شایانی پیدا کرد.
در طول این سال ها، اسکرام بر اساس بازخورد متخصصان و سازمان هایی که آن را اجرا می کنند، تکامل یافته و اصلاح شده است. در سال 2001، کِن شوابِر (Ken Schwaber) و دیگر رهبران توسعه سریع (چابک)، مانیفست سریع (چابک) را ایجاد کردند که اصول توسعه سریع (چابک) را ترسیم می کرد و بر اهمیت همکاری، انعطاف پذیری و بهبود مستمر، تاکید داشت. در نتیجه، اسکرام در حال حاضر به طور گسترده در توسعه نرم افزار استفاده می شود و همچنین برای زمینه های دیگر مانند بازاریابی، آموزش، بهداشت و درمان سازگار شده است.
نقش های اسکرام
اسکرام سه نقش اصلی را تعریف می کند:
مالک محصول:
مالک محصول، مسئولِ تعریف و اولویت بندی بَک لاگِ محصول که لیستی از ویژگی ها و وظایفی است که برای ارائه یک محصول موفق باید انجام شود، می باشد. مالک محصول از نزدیک با ذینفعان و مشتریان کار می کند تا اطمینان حاصل کند که محصول، نیاز های آنها را برآورده و سود مورد نیاز را فراهم می کند. آن ها تصمیم می گیرند که تیم، چه کاری را در اولویت قرار دهد و در چه زمانی باید آن را تکمیل کند.
اسکرام مستر (Scrum Master)
اسکرام مستر، تضمین می کند که چارچوب اسکرام به درستی پیاده سازی شده و تیم به اصول آن پایبند است. اسکرام مستر جلسات و همکاری بین مالک محصول، تیم توسعه و سهامداران (ذینفعان) را تسهیل می کند. اسکرام مستر همچنین در کمک به رفع موانعی که مانع پیشرفت می شوند کمک، و فرهنگ بهبود مستمر را ترویج می دهد.
تیم توسعه
تیم توسعه، مسئول پیاده سازی موارد بک لاگِ محصول است که طی یکسری تکرار های کوتاه به نام اسپرینت (Sprint) انجام می شود. تیم توسعه، خود سازمانده و چند کاره (تخصص های عملکردی مختلف برای رسیدن به یک هدف مشترک کاری را دارند) است و با تمام مهارت ها و تخصص های لازم برای ارائه توسعه ی یک محصول با قابلیت سود دهی می باشد. تیم توسعه همچنین مسئول ارائه ی کاری با کیفیت بالا و دستیابی به اهداف تعیین شده توسط مالک محصول است.
این سه نقش با همکاری هم می توانند محصولی موفق را از طریق همکاری، ارتباط و بازخورد مستمر ایجاد کنند.
رویدادهای اسکرام
اسکرام شامل چندین رویداد است که برای تسهیل ارتباطات، همکاری و پیشرفت در جهت اهداف پروژه، طراحی شده است. پنج رویداد اسکرام عبارتند از:
اسپرینت (Sprint)
تکرار زمان بندی شده ی یک تا چهار هفته ای، که طی آن ارائه ی توسعه ی یک محصول با قابلیت سود دهی، ایجاد می شود.
جلسه برنامه ریزی اسپرینت (Sprint Planning)
یک جلسه ی مشترک در ابتدای هر اسپرینت که در آن تیم توسعه با مالک محصول، کار می کند تا مشخص نماید کدام موارد بَک لاگِ محصول، در طول اسپرینت انجام شود.
اسکرام روزانه یا جلسه دیلی
یک جلسه مختصر روزانه (24 ساعته) که در آن تیم توسعه، کار خود را هماهنگ کرده، پیشرفت را مورد بحث قرار داده و موانع را شناسایی می کند.
جلسه بررسی اسپرینت (Sprint Review)
جلسه ای در پایان هر اسپرینت که تیم توسعه در آن کارهای تکمیل شده اش را به سهامداران (ذینفعان) ارائه داده و بازخورد آن ها را دریافت می کند.
جلسه رترو (Retrospective)
جلسه ای در پایان هر اسپرینت که این بار تیم توسعه، روند خود را بازتاب داده و فرصت های بهبود بخش را شناسایی کند.
این رویداد ها به تیم اجازه می دهد تا کار خود را بررسی، تطبیق و در صورت نیاز اصلاح، و اولویت ها را همسو و تنظیم کند، و اطمینان حاصل نماید که محصول، نیاز های ذینفعان را برآورده می کند.
مصنوعات اسکرام
مصنوعات اسکرام عناصر ملموس، شفاف و ضروری، در چارچوب اسکرام می باشند که اطلاعاتی را در مورد محصول، کار هایی که باید انجام گردد و پیشرفت تیم را ارائه دهند. سه مصنوع اسکرام عبارتند از:
بَک لاگِ محصول
بک لاگِ محصول، یک لیست سفارشی از تمام ویژگی ها، قابلیت ها، الزامات و پیشرفت های مورد نیاز برای ارائه یک محصول با کیفیت بالا است. بک لاگِ محصول، تنها منبع واقعی است که تیم توسعه در زمان انجام پروژه، بر روی آن کار خواهد کرد. بک لاگِ محصول به طور مداوم توسط مالک محصول اصلاح و اولویت بندی می شود تا اطمینان حاصل گردد، مهم ترین موارد در بالای لیست قرار دارند.
اسپرینت بَکلاگ (Sprint Backlog)
اسپرینت بکلاگ فهرستی از موارد انتخاب شده از بک لاگِ محصول است که تیم توسعه قصد دارد در دوره زمانی اسپرینت تکمیل نماید. موارد موجود در بک لاگ اسپرینت به وظایف کوچکتر تقسیم و تخمین زده شده، و به اعضای تیم داده می شوند. بک لاگ اسپرینت فهرستی مهم است که همواره در دوره زمانی اسپرینت در حال آپدیت شدن (به روز رسانی شدن) بوده، زیرا تیم توسعه، برای پیشرفت خود نیاز به بررسی و تطبیق وضعیت خود دارد.
افزایش توسعه
افزایش توسعه، مجموع تمام موارد، در بک لاگِ محصول است که در دوره زمانی اسپرینت و تمام اسپرینت های قبلی است. این نشان دهنده وضعیت فعلی محصول است و باید با تعریف انجام شده، مطابقت داشته باشد تا درک مشترک از این که یک آیتمِ "انجام شده" به چه منظوری در نظر گرفته می شود. افزایش توسعه در طول اسپرینت بررسی و ارزیابی می شود و به عنوان پایه ای برای اسپرینت ها و عرضه محصول، عمل می کند.
به طور کلی، مصنوعات اسکرام به تیم کمک می کند تا با یکدیگر همکاری، برقراری ارتباط، و شفافیت را در مورد محصول و کارِ انجام شده، حفظ کنند. مصنوعات اسکرام به وضوح، پیشرفت تیم را درک و امکان تصمیم گیری موثر و بهبود مستمر را فراهم می کند.
طرز فکر اسکرام (Scrum Mindsets)
طرز فکر اسکرام با چندین باور و ارزش جسورانه و ریسک پذیر، مشخص می شود که نحوه برخورد و تعاملِ دست اندرکارانِ اسکرام به کار را، نشان می دهد. این طرز فکر های اسکرام عبارتند از:
تجربه گرایی
چارچوب اسکرام مبتنی بر کنترل فرآیند تجربی است، به این معنی که تصمیمات، بر اساس مشاهده، تجربه و آزمایش، به جای فرضیات و پیش بینی ها اتخاذ می شود.
خود سازماندهی
تیم های اسکرام خود سازمان ده اند، به این معنا که آن ها در این که چگونه کار خود را به انجام رسانند مستقل اند، و نیز مسئول ارائه افزایش و توسعه محصول خود هستند.
همکاری
اسکرام بر همکاری بین اعضای تیم، سهامداران (ذینفعان) و مشتریان، تاکید شایانی دارد تا اطمینان حاصل گردد که همه در راستای رسیدن به اهداف یکسانی، کار می کنند.
تحویل توسعه افزایشی
اسکرام به تحویل توسعه افزایشی ویژگی های محصول کمک فراوانی می کند، تا امکان بازخورد های مکرر را فراهم کند، و تیم ها را قادر سازد با نیازهای در حال تغییر، سازگار شوند.
بهبود مستمر
تیم های اسکرام به طور مداوم به دنبال راه هایی برای بهبود روند و محصول خود هستند و از بازخورد ها و رتروها برای شناسایی زمینه های بهبود، استفاده می کنند.
تمرکز بر ارزش
اسکرام بر ارائه ارزش به مشتری، تاکید می کند و تیم ها را ترغیب می نماید تا کار را بر اساس ارزش آن، اولویت بندی کنند.
در مجموع، طرز فکر اسکرام متمرکز بر ارائه محصولات، با کیفیت بالا از طریق همکاری، تجربه و آزمایش، و بهبود مستمر است.
نتیجه
اسکرام یک روش محبوب، بر اساس اصول توسعه نرم افزاری سریع (چابک) بوده که برای مدیریت پروژه های توسعه نرم افزار بوجود آمده است و بر همکاری، توسعه تکرار شونده، و کنترل فرآیند تجربی، تاکید دارد. این امر چارچوبی انعطاف پذیر و سازگار ارائه می دهد که تیم ها را قادر سازد، تا محصولاتی با کیفیت بالا که نیازهای سهامداران (ذینفعان) را برآورده می کند ارائه دهند. علاوه بر این، تمرکز اسکرام، بر شفافیت، بررسی و تطبیق، باعث ارتقای بهبود مستمر می شود و تیم ها را ترغیب می نماید برای ارائه ی محصولی با کیفیت، با هم همکاری کنند.
موفقیت اسکرام، به اجرای موثر اصول و شیوه های آن، از جمله نقش ها، رویداد ها و مصنوعات، بستگی دارد. برای موفقیت با اسکرام، تیم ها باید طرز فکرِ یادگیری و بهبود مستمر را پیش گیرند و متعهد به همکاری با یکدیگر برای دستیابی به اهداف مشترک باشند.
در نهایت، اسکرام می تواند یک روش کارآمد و عملی برای مدیریت پروژه های توسعه ی نرم افزار باشد به طوری که سازمان ها به طور گسترده ای در سراسر جهان آن را پذیرفته اند. با این حال، مانند هر روش دیگری، اثر بخشی آن به زمینه و نیاز های پروژه، بستگی دارد و برای دستیابی به نتایج مطلوب، نیاز به اصلاح و انطباق مداوم است.