اسکرام چیست؟ اجزای آن و روش توسعه دهنده شدن
اگر قصد دارید در زمینه توسعه نرم افزار مشغول به کار شوید، جای هیچ شکی باقی نمی ماند که آشنایی با چارچوب اسکرام (Scrum) به شما کمک می کند تا تبدیل به یک کاندیدای شغلی قوی و قابلی شوید. اگر از چند و چون روش اسکرام باخبر باشید بیشتر به کار تیمی و نحوه تعامل توسعه دهندگان با یکدیگر در پروژه های گروهی اتکا می کنید.
ما در این مطلب، راهنمای سریعی برایتان آماده کرده ایم که شما را به طور کامل با اسکرام آشنا می کند.
تاریخچه و تعریف از ویکی پدیا
چارچوب یا فرایند مدل اسکرام یک چارچوب تکرارپذیر و افزایشی برای کنترل پروژه (مدیریت نرمافزار) است که معمولاً در زیر شاخه مدل فرایند تولید نرمافزار چابک (agile) و سریع است؛ و یک نوع مدل تولید نرمافزار در مهندسی نرمافزار به شمار میآید.
اسکرام یک چارچوب تولید نرمافزار از سری روشهای تفکر چابک (Agile) میباشد.
اسکرام یک چارچوب یا فرایند؟ مسئله این است، دراین موضوع کاملاً بین متخصصان اسکرام دوگانگی وجود دارد. اشخاصی مانند کن شوئبر (مبدع اسکرام) دائماً از لفظ چارچوب (framework) استفاده میکنند و تأکید مینمایند که همه باید این مورد را قبول داشته باشند ولی بعضی دیگر از متخصصان از لفظ فرایند یا متدولوژی برای اسکرام استفاده میکنند. منبع
اسکرام و اجایل (Agile)
اگر قبلا اسم اسکرام به گوشتان خورده، به احتمال زیاد در ارتباط با توسعه نرم افزار با متد اجایل (Agile) بوده است. اما وقتی از اسکرام در مقاب اجایل صحبت می کنیم منظورمان چیست؟
اسکرام یک چارچوب یا فریم ورک توسعه نرم افزاری است که شامل اصول و ضوابط متد اجایل می شود. با اینکه اسکرام یکی از رایج ترین روش های اجایل است، اما تنها روش این متد محسوب نمی شود. به عبارت دیگر، همه پروژه های اسکرام شامل مفهوم اجایل می شوند اما همه پروژه های اجایل لزوما از روش اسکرام استفاده نمی کنند.
اجزای یک پروژه اسکرام
حالا که رابطه بین اجایل و اسکرام را متوجه شدید، بیایید با هم اجزای اصلی یک پروژه اسکرام را بررسی کنیم.
1- اسپرینت (The sprint)
اسپرینت یکی از بخش های اصلی پروژه اسکرام است. به طور خلاصه می توان گفت که اسپرینت یک بازه زمانی کوتاه مدت است -معمولا 2 هفته اما می تواند از یک هفته تا یک ماه نیز طول بکشد- که طی آن تیم توسعه نرم افزار، لیستی از به روزرسانی ها، بهبودها و ویژگی ها و قابلیت های جدید نرم افزار را تهیه می کند.
بر اساس فلسفه اجایل، اسپرینت ها به گونه ای طراحی می شوند که به جای اعمال تغییرات بزرگ، به روزرسانی ها و تغییرات نرم افزار به صورت کوچک و تدریجی انجام شوند.
وظایفی که باید در هر اسپرینت در نظر گرفته شود شامل بک لاگ (backlog) محصول، پالایش بک لاگ و تبدیل آن به بک لاگ اسپرینت (sprint backlog) است. از آنجایی که در اسکرام همه چیز منعطف و قابل تغییر خواهد بود، بنابراین، هم بک لاگ و هم بک لاگ اسپرینت ممکن است در هر زمانی و بسته به نیازهای کسب و کار، فعالیت رقبا و سایر عوامل خارجی دستخوش تغییر بشوند.
2- بک لاگ محصول (The product backlog)
وقتی یک تیم توسعه تصمیم می گیرد که با استفاده از متد اسکرام نرم افزاری را تولید کند، کاملا مشخص است که نسخه اولیه محصول کامل و بی نقص نخواهد بود. هر نوع ویژگی نرم افزاری که باید به روز رسانی شود، بهبود یابد، اضافه یا حذف شود در نسخه های بعدی یا بک لاگ محصول ارائه می شوند.
بک لاگ را می توانید مثل یک لیست بزرگ نرم افزاری برای انجام وظایف مختلف در نظر بگیرید. هر تسک یا وظیفه ای در بک لاگ، به عنوان یک اولویت تلقی می شود اما انتظار نمی رود که تیم توسعه دهنده نرم افزار یکدفعه و به یکباره به همه این موارد دست پیدا کند. به جای این کار، آیتم های موجود در بک لاگ محصول مورد بررسی قرار می گیرند و به بک لاگ اسپرینت تبدیل می شوند.
3- بک لاگ اسپرینت (The sprint backlog)
بک لاگ اسپرینت در واقع لیستی از تسک ها یا همان وظایفی است که تیم توسعه نرم افزار متعهد به انجام آنها در یک اسپرینت است. اینکه چه وظایفی در اسپرینت قرار بگیرند و به بک لاگ اسپرینت تبدیل شوند به عوامل مختلفی بستگی دارد، از جمله:
- تقاضای مشتری یا استفاده کنندگان برای ویژگی ها و پیشرفت های خاص
- مسائل فنی فوری که روی نحوه استفاده افراد از نرم افزار تاثیر منفی می گذارند
- ویژگی ها و قابلیت هایی که استراتژی های تجاری شرکت را پیش می برند
4- چارچوب زمانی اسپرینت (sprint timeframe)
نتیجه یک اسپرینت موفق، تهیه نسخه نرم افزاری جدیدی است که شامل همه به روز رسانی ها و ویژگی های وعده داده شده در اسپرینت بک لاگ می شود. این نسخه جدید از نرم افزار با عنوان اینکریمنت محصول (product increment) هم شناخته می شود.
هر چه اعضای تیم در مرحله برنامه ریزی اسپرینت (sprint planning) با یکدیگر شفاف تر عمل کنند، شانس بسیار بیشتری برای تولید یک اسپرینت موفق و مهمتر از همه تولید یک محصول نرم افزاری موفق وجود دارد.
5- تیم اسکرام (The Scrum team)
پروژه های اسکرام برای رسیدن به موفقیت به تیم های موفق و قوی نیاز دارند. سه نقش مهم در یک تیم اسکرام مالک محصول (the product owner)، توسعه دهنده (ها) (the developers) و اسکرام مستر (Scrum master) هستند.
مالک یا صاحب محصول
کاملا واضح است که مشتری توسعه نرم افزار را هدایت می کند، اما مشتری دقیقا چه می خواهد؟ وظیفه مالک محصول اساسا فهمیدن همین موضوع است.
صاحب محصول نیازها و خواسته های افرادی که قرار است از برنامه یا نرم افزار استفاده کنند را می فهمد و این مساله را به وسیله بک لاگ های محصول اعلام می کند. یکی از بزرگترین مسئولیت های مالک محصول، سازماندهی و اولویت بندی بک لاگ اسپرینت ها بر اساس اهداف تجاری و استراتژی کلی شرکت است.
معمولا مالکان محصول سابقه زیادی در بازاریابی، مدیریت محصول و توسعه تجارت دارند. این افراد زمان زیادی را صرف درک چشم اندازهای رقابتی و فضای بازار می کنند تا به تیم توسعه کمک کنند محصول نرم افزاری موفقی تولید نمایند.
توسعه دهنده (ها)
فرقی نمی کند مهارت های شما توسعه بک اند (Back-End) باشد یا فرانت اند (Front-End) و یا فول استاک (Full-Stack)؛ در هر صورت اینجا مرحله ایست که شما وارد پروژه اسکرام می شوید. توسعه دهنده یا تیم توسعه مسئول تبدیل لیست بک لاگ های محصول مالک محصول به واقعیت است.
قبل از شروع یک اسپرینت، توسعه دهندگان با صاحب محصول همکاری نزدیک دارند تا تعیین کنند که آیا الزامات تجاری واقع گرا و عملی هستند یا نه اینکه تکمیل این الزامات چقدر طول می کشد.
اسکرام مستر
وقتی مالک محصول روی موفقیت تجاری و تیم توسعه دهنده هم روی کدنویسی متمرکز شده اند، پس چه کسی باید حواسش به این باشد که همه به اصول اسکرام پایبند هستند و در جهت آن حرکت می کنند؟ اینجا همان جاییست که اسکرام مستر وارد عمل می شود.
اسکرام مستر علاوه بر مطمئن شدن از اینکه همه به متد اسکرام پایبندند، نقش انگیزه دهنده در طول تهیه اسپرنت ها را هم به عهده دارد. وقتی پای تولید یک اسپرینت با ضرب العجل و تغییرات مشخصی وسط می آید، این وظیفه اسکرام مستر است که از همه افراد بخواهد با تمام توانشان روی اهداف مناسب تیم کار کنند.
مراسم و رویدادهای اسکرام (Scrum ceremonies)
همانطور که احتمالا به ذهن خودتان هم رسیده، روش اسکرام شامل ارتباطات زیادی می شود. در حقیقت، اسکرام جلسات برنامه ریزی شده زیادی دارد که به آنها ceremonies گفته می شود. این جلسات انواع مختلفی دارند و هر کدام هدف متفاوتی را دنبال می کنند:
- پالایش بک لاگ: برای تعیین اینکه تیم توسعه چه کاری را با چه اولویتی باید انجام بدهد.
- برنامه ریزی اسپرینت برای مرور اهداف: برای تعیین اینکه تیم توسعه در اسپرینت بعدی چه کاری باید انجام بدهد و مشخص کردن طول دوره اسپرینت.
- استند آپ روزانه: جلسه ای که در آن همه اتفاقات روز گذشته و وظایف روز جاری را مرور می کنند.
- بررسی و مرور اسپرینت: برای ارزیابی نتایج اسپرینت و تایید اینکه آیا محصول جدید اهداف و الزامات تعیین شده در بک لاگ اسپرینت را محقق می کند یا خیر.
- مرور اتفاقات گذشته: برای مرور تجربیات و درسهای گرفته شده از آخرین اسپرینت در جهت مشخص کردن این مساله که استفاده کنندگان از نرم افزار در طول اعمال اسپرینت چه احساسی نسبت به نرم افزار داشته اند، چه چیزهایی خوب پیش رفته و چه مواردی باید در اسپرینت بعدی بهبود پیدا کند.
چگونه می توان یک توسعه دهنده اسکرام (Scrum developer) شد؟
حالا که با اصول اولیه اسکرام آشنا شدید یادتان باشد که برای عضویت در تیم های توسعه نرم افزار باید از به روزترین مهارت ها و دانش ها در زمینه زبان های برنامه نویسی مختلف برخوردار باشید.
این مهارت ها شامل زبان های برنامه نویسی اصلی مثل HTML ، CSS و JavaScript و همچنین زبان های پشتیبان مثل PHP ، SQL و Python و بسیاری دیگر است. موفق باشید. همه زبانهای برنامه نویسی را در اینجا به صورت رایگان می توانید به زبان ساده یاد بگیرید (کلیک کنید)
ویدیوی آموزش اسکرام در 10 دقیقه