برای شروع یک پروژه تیم باید یک تصمیم مهم بگیرد. "ازکدام روش توسعه نرم افزارمی توان استفاده کرد؟" این یک موضوع مهمه.اگر برای اولین بار بر روی هر روشی کار می کنید، تعریف روشنی از روش توسعه نرم افزا مورد نیاز است.اعضای تیم باید این تعریف و دستور العمل ها را دنبال کنند.این یکی از بهترین راه برای سازماندهی کار توسعه نرم افزا در همه نوع است .
قبل از شروع استفاده از اسکرام ,ما باید کمی درباره پیشینه این ر وش و چرا اسکرام یاد بگیریم . چرا به وجود امد و مشکل روش های سنتی چه بود ؟
یکی از قدیمی ترین روش ها مدل آبشاری بود که تا همین اواخر استفاده می شد. محدودیت اولیه این مدل، "فرض" اشتباه است که تمام نیازمندی ها به وضوح در ابتدای پروژه درک شده است.
بیاید این موضوع را عمیق تر برسی کنیم.
مدل آبشاری به طور رسمی برای اولین بار در سال 1970 توسط وینستون دبلیو رویس (Winston W. Royce ) معرفی شد.
ایشون گفتن
"من به این مفهوم اعتقاد دارم، اما اجرای شرح داده شده مخاطره آمیز است و باعث شکست می شود."
در زیر تعدادی از نقاط ضعف احتمالی در روش ابشاری گفته شده است
معایب اسکرام
- در مدل ابشاری در صورتی میتوانیم به مرحله بعد بریم که مرحله قبل را به صورت کامل تکمیل کرده باشیم .جمع اوری نیازمندی ها مهم ترین و چالش برانگیز ترین مرحله در هر پروژه است . مشتری ممکنه جزئیات مهی را از دست بدهد، همچنین این برای مشتری سخت است که دید کلی نسبت به محصول نهایی فقط با مستندات نیازمندیها داشته باشد .
- اپدیت نیازمندی های پروژه برای تغییرات به وجود امده به دلیل ثابت بودن رویکرد سخت است. برای انجام تغییرات بوجود امده نیاز به اصلاحات مهم در جدول زمانی و بودجه بندی کلی داریم.
- در نهایت تمام تست ها (تست پذیرش کاربر و تست سیستم) زمانی انجام میشوند که پروژه به صورت کامل تکمیل شده باشد. خطا های شناسایی شده می تواند بدون تمدید بودجه و جدول زمانی پروژه، اصلاح شود. اگر هر گونه اشکالی در مراحل اولیه پروژه شناسایی و برطرف شود، نه تنها در زمان صرفه جویی می کند بلکه از تحت تاثیر قرار دادن کد ها نیز جلوگیری میکند .
اگر بخواهیم با این مشکلات روبه رو نشویم چیکار باید بکنیم ؟ یکی از راهکار ها این است که از اسکرام استفاده کنیم.
اسکرام یکی از محبوب ترین روش های اجایل است که در همه ابعاد در حال بهبود است. این یک روش تطبیقی "adaptive" ، سریع، انعطاف پذیر"flexible" ، افزایشی "incremental" ، تکرارشونده "iterative" و موثر"effective" است که برای ارائه سریع ارزش های مهم در طول پروژه طراحی شده است .اسکرام مسئول حفظ شفافیت "Transparency" ارتباطات در طول یک پروژه است.
کل پروژه به تکه های کوچکتر تقسیم میشود تا برخی از ویژگی ها را قبل از پایان چرخه توسعه به تیم های آزمایشی ارائه شود.
با روش اسکرام، ما میتوانیم محصول کوچک کار کننده را بعد از هر تکرار"iterate" براساس نظرات ذینفعان یا نیاز واقعی کاربران بهبود یا تغییردهیم که این مهم ترین ارزش از رویکرد اجایل هست.
در اخرباید در نظر داشته باشیم پروژه برای ما نیست، در واقع برای مشتری است. بنابراین ما باید بدانیم که آنها دقیقا به چه چیزی نیاز دارند و هیچ مشتری در ابتدا به تمام چیز های که نیاز دارد اگاه نیست .
مزایای استفاده از اسکرام :
- اسکرام همکاری مکرری را بین اعضای تیم ایجاد می کند که باعث روابط بین فردی و اعتماد بین آنها می شود.
- تکمیل کار با استفاده از تعریف انجام شده(DOD) به توسعه، ادغام، آزمایش و مستندسازی با تولید میپردازد.
- جلسات دیلی اسکرام (daily Scrum) به تیم برای بهبود بهروری با کار کردن روی فاکتورهای اسکرام کمک میکند.
- ارائه سریع محصول نرم افزاری در تکرارهای کوتاه.
- به روز رسانی و بازبینی طبق نیازمندی های مشتری.
- درک اسکرام ساده است اما دنبال کردن فرآیند ممکن است دشوار باشد.
- شرکت در جلسات بررسی (sprint review) با ذینفعان، خروجی تیم را بهبود می بخشد.
مزایای استفاده از اسکرام برای مشتری :
توجه به این نکته مهم است که اسکرام نه تنها به تیم ها و توسعه دهندگان کمک می کند، بلکه برای مشتریان نیز سود زیادی دارد. در واقع، به تولید محصولات و راهحلهای مشتری کمک میکند.
- ضعف ها را در مراحل اولیه بازیابی می کند تا رضایت مشتریان را جلب کند.
- مالک محصول با تعامل هرچه بهتر با مشتری در برابر هرگونه تغییر ازجمله فیچرها یا طراحی ها که منجر به رضایت بیشتر مشتریان حقیقی ما میشود مسئولیت دارد.
- تحویل "delivery" محصول در بازه های کوتاه باعث اعتماد و رضایت ذینفعان میشود.
- کیفیت رضایت مشتری را تضمین می کند که باعث حفظ مشتری میشود.
مزایا برای سازمان ها :
- اسکرام عملکرد خود را در برابر کیفیت، بودجه و زمان بندی که در سازمان اهمیت بیشتری دارند نشان می دهد.
- کیفیت بهتر منجر به افزایش فروش، کاهش هزینه ها در مشتریان و کاهش هزینه های پشتیبانی می شود.
- تشخیص زودهنگام خطاها در تجارت منجر به کاهش کار و بودجه بندی می شود.
- مشارکت ذینفعان در جلسات بررسی (sprint review) مسائل بالقوه غیر قابل پیش بینی در چرخه توسعه را کاهش میدهد
مزایا برای مدیرمحصول:
- مدیر محصول نقش حیاتی مالک محصول را در متدولوژی چابک ایفا می کند. اومتمرکز بر توسعه محصول است.
- مسئولیت مالک محصول اطمینان از رضایت مشتری با برآورده کردن نیازهای آنهاست.
- برنامه ریزی یک پروژه باید محدودتر باشد و با همکاری کل تیم انجام شود. این کار توسط مالک محصول و احتمالاً با کمک یک اسکرام مستر انجام می شود.
- مدیر محصول باید تأیید کند که همه اعضای تیم قبل از شروع کار، دید روشنی ازکاری که انجام میدهند داشته باشند.
- مدیر محصول باید در برقراری ارتباط با سهامداران، نظارت بر بودجه و منابع، به روز رسانی بر اساس بازخورد مشتری و بر اساس ارزش بازار مشارکت کند.
- مدیر محصول برای ارائه یک محصول موفق، الزاماتی که باید روی آن ها کار شود را اولویت بندی میکند.
- مدیر محصول می تواند در جلسات برنامه ریزی اسپرینت شرکت کند. او داستان های کاربر(user stories) را قبل از شروع اسپرینت بررسی می کند.
- مدیر محصول همچنین یک تسهیل کننده است و ابهامات فردی را در تیم خود روشن می کند.
مزایا برای مالک محصول (PO):
- اسکرام به PO در مدیریت پیشرفت و وضعیت بک لاگ محصول کمک میکند
- به حداکثر رساندن ارزش محصول که حاصل کار تیم توسعه است.
- مالک محصول ارتباط برقرارمیکند و اقلام بک لاگ محصول را اپدیت میکند تا تیم به اهدافش دست پیدا کند.
- مالک محصول کار تیم توسعه را به حداقل می رساند و اطمینان حاصل می کند که آنها آیتم های بک لاگ محصول را درک کرده اند.
- اسکرام به PO کمک میکند که مطمئن حاصل شود بک لاگ محصول برای همه واضح، قابل مشاهده و شفاف است تا به مرحله بعدی بروید.
مزایا برای تیم توسعه:
- تیم توسعه را قادر میسازد تا برای تحویل مداوم محصول در تکرارهای افزایشی "Incremental iterations" که برای هر اسپرینت انجام میشود، کار کند.
- کار تیم توسعه را از طریق جلسات بررسی (sprint review) بهبود می بخشد.
- به تیمهای توسعه که تیمهای چند جانبه (cross-functional) نیز هستند، با تمام مهارتهای لازم برای ایجاد محصول افزایشی کمک میکند.
- تیم های خودسازماندهی را ایجاد میکند که نیازمندی ها را از بک لاگ محصول برای ساخت ارزش در اسپرینت انتخاب کنند.
- به تیم توسعه کمک میکند تا موانع را حذف کند تا به تعهد اسپرینت عمل کنند.
- به تیم های توسعه کمک می کند تا کار خود را در یک الگوی ساختارمند مدیریت کنند که منجر به بهبود اثربخشی و کارایی شود.
مزایای مالی در اسکرام:
ما قبلاً در مورد مزایای استفاده از اسکرام برای تیم و مشتریان صحبت کردیم. این مزایا واقعی و قابل توجه هستند و خروجی مورد نظر را ارائه می دهند. اما جدا از مزایای اساسی و ضروری، اسکرام همچنین می تواند منافع مالی بالایی را برای سازمان ها به همراه داشته باشد. این حتی ممکن است شامل مزایای بازگشت سرمایه باشد که بخش بزرگی از تصمیم هر سازمان برای تعهد به بودجه و محدوده را تشکیل می دهد.
- دریافت بازخورد منظم از ذینفعان و مشتریان در جلسات بررسی به اصلاحات اولیه کمک می کند که منجر به هزینه کمتر و مصرف زمان کمتر می شود.
- اگر قرار است اسپرینت شکست بخورد، با تکرارهایی که دارد منجر به کاهش هزینه شکست می شود.
- اگر هزینه اجرای پروژه کم باشد، تیمها با بهرهگیری از منابع و کاهش سرمایهگذاری، بهبود مالی پروژه را ایجاد میکند. به عبارت دیگر، با کاهش هزینه و بهینهسازی استفاده از منابع، میزان سودآوری پروژه افزایش مییابد.
- مشارکت کارکنان نتایج بهتری را با خطاهای کمتر ایجاد می کند.
مترجم : سمیرا امینی