اسکرام چیست؟ شاید برای شما هم پیش آمده که زمانی درگیر پروژه ای بزرگ باشید، اما با تبدیل کردن آن به بخشهای کوچکتر و تقسیم وظایف، بتوانید به خوبی از عهده آن بربیایید. در پروژههای بزرگ نرم افزاری، وجود روشهای منسجم مدیریتی و کنترل اوضاع توسط مدیران پروژه میتواند منجر به مزایای زیادی از جمله کاهش هزینههای تولید شده و همچنین باعث نتایج بهتری شود. در این مطلب با یکی از شیوههای توسعه نرم افزار یعنی اسکرام (Scrum) آشنا میشویم که استفاده از آن میتواند برای شرکتهای نرم افزاری بسیار سودمند باشد. پس با ما همراه باشید تا بدانید اسکرام چیست و چگونه به ما کمک میکند؟
متدولوژی چیست؟
متدولوژی که برخی آن را روش شناسی ترجمه کرده اند، مجموعه ای از مراحلی است که در کنار هم امکان توسعه و ارزیابی سیستم را به ما میدهند. یک متدولوژی شامل تکنیکها و روشهایی است که در وضعیتهای مختلف، پاسخگوی نیازمندیهای مدیران یا توسعه دهندگان برای پیاده سازی سیستم میباشند. به بیان دیگر متدولوژی، تفکری برای پیاده سازی و توسعه نرم افزار است که از چارچوبهای مختلفی تشکیل شده است.
متدولوژی Agile چیست؟
متدولوژی چابک (Agile) در توسعه سیستمهای نرم افزاری بسیار کاربردی است. یکی از اساسیترین اصول این متدولوژی، ارتباط مداوم با مشتری است و همین باعث اهمیت استفاده از آن در کسب و کارهای امروزی شده است. در این متدولوژی تیم نرم افزاری تلاش میکند تا محصول نهایی مطابق نظر مشتریان باشد و در هر فاز نتایج به دست آمده تست و بررسی شوند. اَجایل شامل ۴ مرحله اصلی یعنی شناخت نیازمندیهای مشتری، برنامه ریزی، پیاده سازی، تست و تحویل به مشتری است. اسکرام یکی از اصلیترین راهکارهای توسعه به سبک Agile است که در ادامه با آن آشنا میشویم.
اسکرام چیست و چگونه اجرا میشود؟
برای اینکه بدانید مهمترین مزیت استفاده از اسکرام چیست ابتدا باید به خوبی این متد را بشناسیم. اسکرام (Scrum) به زبان ساده، نوعی چارچوبی مدیریتی برای تیمهای نرم افزاری است تا به بهینهترین شکل ممکن، پروژههای بزرگ را پیاده سازی کنند. لازم به ذکر است برخی متخصصان اسکرام آن را یک فریم ورک یا چارچوب میدانند درحالیکه برخی دیگر، اسکرام را به عنوان یک متدولوژی معرفی میکنند. ما در اینجا اسکرام را به عنوان یکی از روشهای Agile معرفی کرده و ساختار آن را توضیح میدهیم.
اسکرام ۳ اصل اساسی دارد که قبل از شروع روند آن، باید بررسی شده و مورد توافق همه باشند:
- شفافیت موضوع (Transparency): یعنی تمام مسائلی که ممکن است بر نحوه انجام کار و خروجی آن اثر بگذارند باید ذکر شده و قابل بررسی و کنترل باشند.
- بررسی (Inspection): مراحل مختلف پیاده سازی باید به صورت مداوم چک شوند تا در صورت بروز مشکل، سریع آن را برطرف کرد.
- توانایی انطباق (Adaptation): ممکن است جنبه هایی از پروژه باعث ایجاد مشکلاتی در خروجی شده و محصول نهایی را دچار نقص کنند. بهتر است بلافاصله این موانع را شناخته و برای تصحیح و پیاده سازی آنها مجددا برنامه ریزی کرد.
اسکرام یک روش افزایشی (Incremental) است یعنی با گذشت زمان و طی شدن مراحل، روند تکامل پروژه نیز افزایش مییابد. Scrum شامل چرخههای متفاوتی است که با اطمینان از پیاده سازی صحیح پروژه در هر چرخه، به کاهش ریسکهای احتمالی و هزینههای مازاد کمک میکند. بدین ترتیب یک پروژه بزرگ، به وظایف کوچکتری تقسیم شده که هر بخش آن به عنوان اسپرینت (Sprint) تعریف میشوند.
بیشتر بخوانید: آشنایی با انواع بهترین فریم ورک های طراحی سایت
رویکرد اسکرام چیست؟
رویکرد اسکرام به طور کلی بدین صورت است که ابتدا با مشارکت مدیران تیم توسعه و مالکان یا سفارش دهندگان پروژه، جلسه ای تشکیل میشود. در طی این جلسه باید تمامی نیازمندیهای سیستمی و غیر سیستمی، اهداف و همه نیازمندیهایی که باید پیاده سازی شوند مطرح شده و به توافق طرفین برسند. سپس بخش یا فازهای کلی پروژه تعیین میشوند و همه این مراحل باید با حضور مشتری انجام شود. در این مرحله توسعه دهندگان با حضور مشتری بازه هایی را برای شروع پیاده سازی، هماهنگی و تحویل هر بخش از پروژه تعیین میکنند. چگونگی انجام و خروجی هر مرحله باید مشخص باشد.
پس از این مرحله نوبت مشخص کردن اسپرینتها است. افراد تیم در طی جلساتی باید حجم کار، زمان و وظایف هر عضو را در طول یک اسپرینت مشخص کنند. تهیه سند اسپرینت که شامل تعیین جلساتی برای بازبینی و کنترل کار، تعیین جزئیات نیازمندیها، شرح کتبی وظیفه افراد و ارائه گزارشی از وضعیت کلی پیشرفت هر اسپرینت و غیره است، ضروری به نظر میرسد. معمولا در انتهای اسپرینت افراد تیم به اسکرام مستر گزارشی از عملکردها و میزان پیشرفت کارها را ارائه میدهند تا از بروز مشکلات احتمالی در آینده جلوگیری شود.
ممکن است زمان تعیین شده برای یک اسپرینت تمام شود اما هنوز مشکلاتی وجود داشته باشد. در این شرایط تیم با برگزاری جلساتی شرایط را کنترل کرده و میتواند با بررسی مشکلات، اسپرینت دیگری برای تکمیل وظایف درنظر بگیرد. فرایند تعیین اسپرینتها تا زمانی طول میکشد که محصول نرم افزاری آماده تحویل باشد.
آشنایی با برخی مفاهیم و نقشها در اسکرام
- Product Backlog : سند محصول، سندی شامل اطلاعات، شرح اهداف و نیازمندیهای پروژه است که در ابتدای شروع فرایند اسکرام با نظارت صاحب محصول و توسعه دهندگان باید به طور دقیق شرح داده شود.
- Sprint Backlog : سند اسپرینت، سندی است که شامل جزئیات هر اسپرنیت، زمان اختصاص داده شده، افراد درگیر و نقش هر فرد در همان مرحله از پروژه میباشد.
- ScrumFlow : در یک جریان اسکرام، میزان پیشرفت در هر اسپرینت و روند کلی فرایند اسکرام توسط اسکرام مستر بررسی میشود.
- Scrum Board : برای اینکه افراد بدانند کار درچه مرحله ای است و اتمام وظایف خود را اعلام کنند یک تخته (Board) فیزیکی در محل استقرار تیم در نظر گرفته میشود. البته امروزه این کار بیشتر از طریق نرم افزارهای مدیریتی مانند Trello انجام میشود.
- Product Owner : صاحبان محصول و یا ذی نفعان پروژه، کسانی هستند که با تیم نرم افزاری وارد مذاکره شده و پیشنهاد تولید محصول را مطرح میکنند. مدیران پروژه باید به طور منظم با صاحبان محصول در ارتباط باشند.
- Scrum Master : متخصص اسکرام وظیفه نظارت و کنترل فرایند اسکرام را به عهده دارد. بررسی خروجی هر اسپرینت، ارائه گزارشات کتبی در جلسات و منعطف سازی فرایند با توجه به شرایط، از وظایف یک اسکرام مستر است.
- Software Team Membes : اعضای تیم نرم افزاری کسانی هستند که انجام پروزه را به عهده دارند. علاوه بر جلسات مدیران پروژه و صاحب محصول، لازم است جلساتی با حضور همه اعضای تیم نیز به طور ماهیانه یا هفتگی برگزار شود.
جمع بندی
در فرایند اسکرام، بررسی مداوم وضعیت اسپرینت و همچنین افراد درگیر در پروژه یکی از مهمترین اصول در موفقیت یک تیم نرم افزاری است. همچنین بهتر است همه چیز به صورت کتبی مستند شده و در اختیار صاحبان محصول و مدیران قرار داده شود. این کار علاوه بر آگاهی افراد به تسلط پیداکردن بر تمامی مراحل انجام کار کمک میکند.