نرمافزار agile رویکردی در توسعه نرمافزار است که در آن محصول نرمافزاری در فازهای مختلف به مشتری تحویل داده میشود. Agile یک روش فکری در انجام و گردش کار نیز است و مجموعهای از ارزشهایی را شامل میشود که انتخابهای ما در مورد اینکه چه چیزی درست میکنیم و آن را چگونه میسازیم را مدیریت میکند. از نظر علمی، متدولوژیهای توسعه نرم افزاری Agile به دنبال تحویل سریع قطعات کوچک نرمافزاری برای بهبود رضایت مشتری هستند. این روشها از رویکردهای تطابقی و کار گروهی برای بهبود مستمر استفاده میکنند. معمولا نرم افزار متشکل از تیمهای کوچکی از توسعه دهندگان نرم افزار و نمایندگان کسب و کارهایی است که در طول عمر چرخه توسعه نرم افزار به طور مستمر با یکدیگر دیدار میکنند.
تاریخچه Agile به سال 2001 برمیگردد و در واکنش به رویکردهای آبشاری برای مدیریت پروژه به وجود آمد، که یک پروژه نرمافزاری را به صورت مجموعهای از توالیهای خطی سازماندهی میکند. به جای توسعه نرمافزار از یک فاز به فاز دیگر که روش آبشار کیفیت محصول را تضمین میکند، Agile میتواند توسعه و تست را به عنوان فرآیندهای همزمان و پیوسته ارتقا دهد. به عبارت دیگر توسعه آبشاری اعتقاد دارد که یک مرحله باید به طور کامل قبل از حرکت به مرحله بعدی تکمیل شود درحالی که Agile از چندین توالی که همزمان اتفاق میافتد پشتیبانی میکند. Agile اساس بسیاری از روندهای کاری امروز را تشکیل میدهد. رایانش ابری با زیرساختهای مقیاس پذیر و انعطاف پذیر خود به موازات نیازهای توسعه نرمافزار Agile رشد کرده است. توسعه cloud-native یک مفهوم Agile مانند از نرم افزار را به عنوان مجموعهای از خدمات بهم پیوسته که برای برآوردن نیازهای کسب و کار مقیاس میشوند را در بر میگیرد. SRE یک پیادهسازی از DevOps است که از نرم افزار به عنوان ابزاری برای مدیریت سیستمها و خودکارسازی وظایف استفاده میکند.
چارچوبهای Agile برای توسعه نرمافزار مانند اسکرام، کانبان پایه و اساس فرآیندهای توسعه نرمافزار محبوب مانند DevOps و یکپارچهسازی/استقرار مداوم (CI/CD) را تشکیل میدهند. اسکرام شاید محبوبترین چارچوب Agileای باشد که امروزه استفاده میشود. اسکرام به عنوان چارچوبی برای مدیریت کار تیمهای کوچک به اندازه 5 تا 9 نفره طراحی شده است که کار خود را به اقداماتی تقسیم میکند که میتواند در یک دوره زمانی ثابت به نام اسپرینت انجام شود. تیمهای اسکرام از اعضای تیم، کارشناس ارشد اسکرام و صاحب محصول تشکیل شده است. به طور معمول، اسکرام زمانی اجرا میشود که یک پروژه را بتوان به 2 تا 4 هفته اسپرینت تقسیم کرد.
اکثرا مواقع شرکتها با پروژههایی روبرو میشوند که به هر علت تیم پروژه دچار خطاهایی میشوند که باعث اتلاف وقت و هزینه میشود، به همین علت باید به دنبال روش مناسبی برای این موضوع باشند. همچنین ممکن است پروژههایی داشته باشند که نیازمند تغییر و ارتباط پیوسته با مشتری است که Agile برای اینگونه پروژهها باعث رضایت مشتری و انگیزه به تیم توسعه میشود.
این اصول ۱۲ گانه که در سال ۲۰۰۱ توسط شرکتهای نرمافزاری تهیه شده به شرح زیر است:
۱- در این رویکرد بیشترین اولویت جلب رضایت مشتری است.
۲- پروژهها باید به افراد با انگیزه و کاردان سپرده شود تا کارها به درستی انجام شود.
۳- تیم توسعه باید از تغییرات حتی در اواخر فرآیند توسعه محصول استقبال کند.
۴- توسعه دهندگان محصول باید به صورت روزانه با یکدیگر همکاری کنند.
۵- تحویل نرمافزار به مشتری با فاصله زمانیهای سه هفته یا سه ماه یک بار انجام شود.
6- رویکرد Agile توسعه پایدار را ترویج میکند.
۷- برای انتقال اطلاعات به تیم توسعه و ارتباط بین اعضا از گفتگوی چهره به چهره استفاده شود.
۸- باید سادهترین راه برای انجام پروژه انتخاب شود.
۹- طراحی مناسب و برتری فنی باعث افزایش کیفیت محصول میشود.
۱۰- نرمافزار قابل استفاده بهترین معیار سنجش پیشرفت است.
۱۱- برترین نوع مدیریت تحلیل نیازمندیها و طراحی از تیمهای سازمان است.
۱۲- تیم پروژه در فواصل زمانی مشخص نشان میدهد که چگونه میتواند در تولید نرمافزار موثر باشد و رفتار خود را با آن همسو کند.