توسعه نرمافزاری چابک یا Agile زمانی مطرح شد که بسیاری از پروژههای نرم افزاری یا تولید محصول با شکست مواجه میشدند. زمانبندی نامناسب، کیفیت پایین در تولید نرم افزار، عدم ارتباط با مشتری، تحلیل نادرست نیازمندیها، عدم بررسی کافی نرم افزار، از عمدهترین دلایل شکست پروژههای نرم افزاری بود.
در فوریه سال ۲۰۰۱، گروهی از توسعهدهنده نرمافزار دور هم جمع شدند تا تجربیات خود را از علل ناکامی پروژههای نرم افزاری به اشتراک بگذارند. آنها معتقد بودند که این صنعت نیازمند یک تغییر اساسی در رویکرد توسعه نرمافزار است. آنها برای توصیف رویکردی که اکنون به عنوان «توسعه چابک نرمافزار» شناخته میشود، مانیفستی برای توسعه چابک نرمافزار منتشر کردند که بر ۱۲ اصل استوار است:
۱. بالاترین اولویت، جلب رضایت مشتری با تحویل به موقع و مستمر نرم افزاری ارزشمند است.
۲. استقبال از تغییر نیازمندیها، حتی در اواخر فرآیند توسعه. فرآیندهای چابک، تغییر را در جهت مزیتِ رقابتی مشتری مهار میکنند.
۳. تحویل به موقع بخشهایی از نرمافزار قابل استفاده (با فواصل زمانی کوتاهتر هفتگی نسبت به ماهانه)
۴. ذینفعان کسب و کار و توسعه دهندهها میبایست به صورت روزانه در طول پروژه با هم کار کنند.
۵. پروژهها به دست افراد با انگیزه سپرده شود، فضا و امکانات لازم به آنها داده شود تا کارها را بهدرستی انجام دهند.
۶. کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم، گفتگوی چهره به چهره است.
۷. نرم افزار قابل استفاده، اصلیترین معیار سنجش پیشرفت است.
۸. فرآیندهای چابک توسعه پایدار را ترویج میدهند؛ حامیان مالی، توسعه دهندگان و کاربران باید بتوانند سرعت پیشرفت ثابتی را برای مدت نامحدودی حفظ کنند.
۹. توجه مستمر به برتری فنی و طراحی خوب
۱۰. سادگی – هنر به حداکثر رساندن مقدار کار انجام نشده – ضروری است.
۱۱. گروههای خودسازماندهی شده.
۱۲. انطباق با تغییرات و محدودیتها بهطور منظم.
متدولوژی Agile مجموعه روشهایی است که باعث میشود تا نرمافزار تولیدشده کاملاً با نیازهای مشتریان مطابقت داشته باشد. در این روش محصول بهصورت فازبندی به مشتری تحویل داده میشود. در واقع مشتری با گروه پروژه کاملاً در ارتباط است. از دیدگاه این متدولوژی، مشتری یکی از مهمترین افراد در تولید پروژه است، چراکه پروژه برای مشتری است و تنها کسی است که از نیازمندیهای واقعی نرمافزار مطلع است. در نهایت باید گفت که محصول نهایی دقیقاً همان چیزی خواهد بود که مدنظر اوست.
اجایل (Agile) یا تفکر چابک مجموعه ای از ارزشها و اصول معرفیشده است که با به کار بستن آنها در محیط توسعه محصولات نرمافزاری میتوان به نتایجی مانند محصولات کارآمد، مشتری خوشحال و نیروی کار با انگیزه دستیافت. با معرفی اجایل متدهایی مطرح شدند که اصول و ارزشهای اجایل در آنها نهادینه شده بود؛ از متدهای رایج و پرطرفدار توسعه چابک نرمافزار میتوان به اسکرام اشاره نمود.
در اسکرام گروهها با همکاری خود مشتری چند هفته یکبار یک خروجی از نرمافزار را بیرون میدهند و بازخورد ذینفعان را دریافت میکنند و طبق بازخوردها، محصول را در مسیر درست قرار میدهند و اینگونه میشود که محصولات مشتریپسندی به وجود میآید.