متدولوژی چابک یا چهارچوب نرم افزاری چابک با قانونمند سازی روند توسعه نرم افزار و ایجاد کار تیمی، همکاری و سازگاری، فرایند توسعه و نگهداری نرم افزار را در چرخه حیات خود بهبود می بخشد. در این مطلب در رابطه با اینکه متدولوژی چیست و متدلوژی چابک برای چه و با چه اصولی ایجاد شده است بحث میکنیم.
متدولوژی چیست و چه اهمیتی دارد
در اغلب اوقات، روند پیاده سازی پروژه های نرم افزاری بصورت یک فعالیت بدون ساختار و فاقد نظامندی پیش می رود که در آن طرح ریزی اصولی برای پیاده سازی نرم افزار صورت نمی گیرد. با رشد و گسترش سیستم، اشکالات این شیوه که اصطلاحا به روش “code and fix” معروف است نیز بطرز فزاینده ای گسترش می یابد. راه حلی که در این زمینه مطرح می شود، ارائه مفهوم متدولوژی است.
متدولوژی توسعه نرم افزار یا توسعه سیستم در مهندسی نرم افزار، چهارچوبی است که برای طرح ریزی، سازماندهی و کنترل فرآیند توسعه سیستم بکار می رود. هر چهارچوب متدولوژی توسعه نرم افزار به عنوان شالوده ای برای پیاده سازی دیدگاهی ویژه در جهت توسعه و نگهداری نرم افزار بکار می رود. از جمله این دیدگاه ها می توان به روش آبشاری، روش افزایشی، روش R.A.D و روش تکراری اشاره نمود. بطور مثال RUP، یک متدولوژی توسعه نرم افزار است که بر اساس روش تکراری کار می کند.
متدولوژی توسعه نرم افزار چابک Agile Software Development methodology
از جمله چهارچوبها یا روشهای سازمان یافته برای توسعه نرم افزار که در حال حاضر متداول و پرکاربرد است، روش چابک برای توسعه نرم افزار (agile software development) است. بطورکلی می توان گفت، متدولوژی چابک در توسعه نرم افزار به گروهی از متدولوژی های توسعه نرم افزار مبتنی بر روش تکراری و افزایشی اطلاق می گردد به گونه ای که نیازمندیها و راه حل ها از طریق همکاری و تعاملات بین افراد تیمی که غالبا خودسازمان یافته و دارای مهارتهای گوناگون هستند، تکامل می یابند.
agile در لغت به معنای فرز، چابک یا سریع است، بدین مفهوم که این چهارچوب، ارائه دهنده یک فرآیند توسعه نرم افزار سبک و در عین حال سریع است که توانایی ایجاد و پاسخ به تغییرات را نیز فراهم می کند. در واقع چابکسازی یک چارچوب مفهومی است که پیشبینی تعاملات در سراسر چرخهٔ توسعه را بهبود میبخشد.
تاریخچه متدولوژی چابک
متدهای توسعهٔ به اصطلاح چالاک و چابک نرمافزار اواسط دههٔ ۱۹۹۰ به صورت یک عکسالعمل در مقابل متدهای سنگین آبشاری مطرح شد، که توسط منتقدان آن به صورت یک مدل توسعهٔ به شدت منظم، دستهبندیشده، میکرو مدیریتی و آبشاری توصیف شده است. استدلالکنندگان متدهای چالاک و چابک ادعا میکنند، این متدها به منزلهٔ بازگشت به تجارب توسعهٔ نرمافزار در اوایل تاریخ هستند. پیادهسازیهای اولیهٔ متدهای چابک، شامل Rational Unified Process (1994)، Scrum (1995)، Crystal Clear، برنامهنویسیExtreme (1996)، توسعهٔ تطبیقی نرمافزار، توسعهٔ ویژگیمحور و متد توسعهٔ سیستمهای دینامیک (DSDM، ۱۹۹۵) میشود. بعد از انتشار مانیفست چابک در سال ۲۰۰۱، اکنون اینها به طور معمول به متدولوژیهای چابک برمیگردند.
در فوریهٔ ۲۰۰۱، تعداد ۱۷ توسعهدهندهٔ نرمافزار، در Snowbird یوتا ملاقاتی داشتند تا در مورد متدهای توسعهٔ چالاک یا چابک گفتگو کنند.
آنها برای توصیف رویکردی که اکنون به عنوان «توسعهٔ چابک نرمافزار» شناخته میشود، مانیفستی منتشر کردند. بعضی از نویسندگان این مانیفست اتحاد Agile را ایجاد کردند، یک سازمان غیرانتفاعی که توسعهٔ نرمافزار را بر اساس اصول مانیفست ترویج میدهند.
دوازده اصل متدولوژی چابک
Our highest priority is to satisfy the customer
۱ – رضایت مشتری: بالاترین الویت است که از طریق تحویل به موقع و مداوم محصول (نرم افزار) محقق خواهد شد.
Welcome changing requirements, even late in development
۲- استقبال از تغییر: تغییرات در پروژه های نرم افزاری اجتناب ناپذیر هستند، حتی تغییراتی که در اواخر کار توسط مشتری درخواست شده است. از آنها نیز استقبال می شود.
Deliver working software frequently, from a couple of weeks to a couple of months
۳ – تحویل مکرر و کوتاه: ترجیح بر آن است که در تفکر چابک، محصولات در بازه های زمانی کوتاه ( بین چند هفته تا چند ماه) و بصورت مکرر، به مشتری تحویل داده شود (رویکرد Iterative و Incremental).
Business people and developers must work together daily throughout the project
۴ – همکاری مشتری در پروژه: همکاری و مشارکت ذینفعان باید در طول چرخه حیات پروژه (بصورت روزانه) وجود داشته باشد.
Build projects around motivated individuals
۵ – انگیزه: پروژه ها را با استفاده از افراد با انگیزه بسازید، به اعضای تیم خود اعتماد کنید تا احساس مسئولیت پذیری داشته باشند تا کارها به خوبی انجام شود.
Face-to-Face Conversation
۶ – گفتگوی رو در رو: موثرترین روش انتقال اطلاعات به تیم پروژه می باشد.
Working software is the primary measure of progress
۷- در تفکر چابک، تحویل محصول (نرم افزار) کاربردی به مشتری، عامل نهایی است که پیشرفت پروژه را اندازه گیری می کند.
Agile processes promote sustainable development
۸- حفظ توسعه پایدار: فرآیندهای چابک باید به سمت توسعه پایدار حرکت کنند بطوری که ذینعان تجاری،حامیان و کاربران قادر باشند سرعت پیشرفت را با روند ثابت در طول چرخه حیات پروژه حفظ کنند.
Continuous attention
۹- نظارت و توجه منظم: نظارت و توجه منظم باعث افزایش چابکی شده و به برتری فنی و طراحی خوب محصول منجر خواهد شد.
Simplicity
۱۰- سادگی یک ضرورت است: همه چیز ها را ساده نگه دارید و از انجام کارهای کم اهمیت اجتناب کنید.
Self Organized Teams
۱۱- تیم خود هدایت: تیم های چابک، خود هدایت و سازماندهی می شوند و نیازی به گفتن آنچه باید انجام شود، نیست.
Review the Work Regularly
۱۲- لازم است تیم پروژه در فواصل منظم، کارهای خود را بررسی کند و اگر روشی برای موثرتر شدن و پیشبرد سریع تر پروژه وجود دارد، رفتار خود را مطابق آن هم سو کند، که این اصل یکی از حیاتی ترین اصول تفکر چابک می باشد.
منابع: ویکی پدیا، مقاله اشنایی با متودولوژی چابک توسط پریسا پرندین، کارشناس گروه درگاه پرداخت و bpmtraining.net