اسکرام یک چارچوب است یا یک فرایند یا متدولوژی؟
در این موضوع کاملاً بین متخصصان اسکرام دوگانگی وجود دارد. اشخاصی مانند کن شوئبر (Ken Schwaber) که جزو مبدعین اسکرام است دائماً از لفظ چارچوب(framework) استفاده میکنند و تاکید دارند که همه باید این مورد را قبول داشته باشند ولی بعضی دیگر از لفظ فرایند یا متدولوژی برای اسکرام استفاده میکنند.
اسکرام چیست؟
اسکرام در سال ۱۹۸۶ توسط ایکوجیرو نوناکا و هیروتاکا تاکوچی به عنوان یک خط مشی جدید برای تولید نرمافزارهای تجاری(Commercial) که باید قابلیت انعطافپذیری و سرعت در تولید را داشته باشند، عرضه شد. اسم اسکرام از یک نوع بازی در فوتبال راگبی گرفته شده است.
اسکرام (Scrum) یک متدولوژی افزایشی (Incremental) برای مدیریت پروژههای نرمافزاری است و از رده متدولوژیهای Agile محسوب میشود. این متدولوژی اولین بار در ژاپن اختراع شد.
اسکرام به جای اینکه جزئیات دقیق و مشخص در مورد اینکه کارها در پروژه چگونه باید انجام شوند, بیشتر آن را به تیم واگذار میکند. این کار عملی خواهد بود زیرا تیم خواهد دانست که چطور به بهترین شکل مشکل خود را حل نماید.
به عبارت ساده, در Scrum نسخه پیچی نداریم و بیشتر سعی در کشف و نمایان کردن مشکلات میکنیم.
رابطه بین اسکرام (Scrum) و اجایل (Agile)
متدهای Agile که از آن جمله میتوان به اسکرام, XP ,Kanban و… اشاره کرد, روشهایی برای دست یابی به تفکر Agile میباشند. Agile یک تفکر در زمینه توسعه نرم افزار است و اسکرام یک روش برای پیاده سازی این تفکر.
در حقیقت اسکرام یک چارچوب توسعه نرم افزار Agile میباشد که از روش iterative incremental بهره میبرد.
نقشها در اسکرام
- ScrumMaster که وظیفه حفظ و نگهداری فرایند را برعهده دارد.
- Product Owner که نماینده ذینفعان (Stakeholders) پروژه و business است.
- Team Member عضوی از یک گروه cross-function است که معمولاً کمتر از ۷ نفر هستند. این افراد عملیات طراحی، تحلیل، پیادهسازی، تست و... را انجام میدهند.
تعریف هر نوع نقش یا سمت به جز این سه در اسکرام ممنوع است. به عنوان مثال اعضای تیم نمیتوانند سمتهای متفاوتی داشته باشند.
اسپرینت (Sprint) در اسکرام چیست؟
در اسکرام دورههای زمانی یا iteration داریم که در آنها محصول نهایی پروژه به تدریج کامل میشود. این دورهها و سیکلهای زمانی را در به اصطلاح sprint مینامند.
اسپرینت در واقع یک محدودهی زمانی با هدف یا اهداف کوتاه مدت مشخص است. از مجموع اسکرامها یک اسپرینت (Sprint) بوجود میاد و از مجموع این اسپرینتها هم کل فرایند توسعهی نرمافزار.
روند کار اسکرام چگونه است
در طی یک Sprint که معمولاً یک دورهی دو تا چهار هفتهای هست (البته طول دوره را خود تیم مشخص میکند) اعضاء یک محصولِ قابل استفاده و قابل ارائه را به تدریج تولید میکنند.
Product Backlog نامی است که به بانک اطلاعاتی نیازمندهای عملیاتی و غیر عملیاتی کل پروژه داده میشود و در واقع مجموعهای اولویت بندی شده از نیازمندیها و وابستگیهای سطح بالای سیستمی است که در نهایت میبایست تحویل داده شود.
مواردی از Product Backlog که در دورهی یک sprint میبایست انجام شود در مدت جلسه طراحی اسپرینت یا Sprint Planning Meeting مشخص میشود. در طول این جلسه، Product Owner اعضاء تیم را دربارهی مواردی از Product Backlog آگاه میکند. بعد از آن اعضای تیم مشخص میکنند که به چه مقدار از موارد مشخص شده توسط Product Owner میتوانند برسند (در این sprint انجام دهند) و چه میزان از آن را در sprintهای بعدی انجام دهند.
مواردی از Product Backlog که قرار است در یک Sprint انجام شود را به اصطلاح Sprint Backlog مینامند. مفاد Sprint Backlog در واقع یک توافق است بین اعضا، که بعد از تصویب شدن مفاد یک sprint، هیچکس نمیتواند آنرا در طول sprint تغییر دهد.
مانند تمام متدولوژیهای iterative توسعه نرمافزار در اسکرام نیز Time Boxed است، به این معنی که sprint میبایست به طور مشخص در سروقت خود تمام شود و اگر نیازمندیهای اشاره شده در Sprint Backlog به هر علتی تکمیل نشده باشند آنها را کنار گذاشته و دوباره وارد Product Backlog میکنند.
بعد از خاتمه یک sprint، اعضای تیم با جلسهای به Product Owner و سایر ذینفعان پروژه نشان میدهند که چه انجام دادهاند و چطور از نسخه جاری میشود استفاده کرد.
در سادهترین روش معمولا از نرمافزارهای صفحه گستره (Spread Sheet) همچون Microsoft Excel برای نگهداری و ساختن Product Backlog و Sprint Backlog استفاده میشود.
سخن پایانی
هدف از این مطلب ارائه ساده از اسکرام بود. تلاش شد تا سادگی در بیان برای درک بهتر استفاده شود. دنیای اسکرام بسیار بزرگتر از یک مطلب است. رادوو در تلاش است آموزشی پروژه محور برای اسکرام تهیه کند. با ما همراه باشید..