در آستانه شروع مقالات و مطالب مرتبط با رویکرد توسعه و تست نرم افزار، در این مطلب از وبسایت عصر تحول دیجیتال با نگاهی اجمالی به مفاهیم پایه نگرش توسعه چابک نرم افزار (Agile Software Development) در خدمت شما عزیزان بازدیدکننده هستیم. توسعه چابک نرم افزار یا توسعه نرم افزاری چابک، به مجموعهای از متدهای توسعهی نرم افزار اشاره میکند که تماما مبتنی بر روش تکرار بوده و از طریق آنها، خودسازماندهی و همکاری بین تیمهای مختلف کاری به انجام میرسد. موضوع این مقاله، تا حد بسیاری به مفاهیم مقدماتی مطلبی که پیشتر با عنوان گفتاری در باب مدیریت پروژه نرم افزاری منتشر شد مرتبط است. از این روی پیشنهاد میکنیم که اگر هنوز مقالات قبلی ما در دستهبندی مدیریت پروژه را مطالعه نکردهاید، در همین آغاز کار ذهن خود را برای یادگیری مطالب تخصصیتر آماده کنید.
توسعه نرم افزار چابک که به اختصار آن را به عنوان روش چابک (Agile) در توسعه نرم افزار مینامند، روشی از توسعه است که سطوح مورد نیاز برای انعطافپذیری نرم افزار را پیشبینی میکند. توسعه نرم افزار به این روش، نیازمند وقوع یک تغییر فرهنگی در بسیاری از شرکتها است؛ زیرا که در این نگرش سعی بر آن خواهد بود تا قسمتهای قابل ارائه از نرم افزار، در قالب نگارشهایی زودهنگام در اختیار مشتری قرار گیرد و لازمه این کار، انجام همزمان فرآیند توسعه و تست نرم افزار است.
به عنوان مهمترین مزیت متد چابک میتوان به توانایی آن برای کمکها به تیمها جهت تمرکز بر تحویل کارآمد ارزش تجاری سازمان اشاره کرد. این رویکرد، فرهنگ مشارکتی موثر و مفیدی را در سطح تیم پدید میآورد تا هریک از بخشها، از نقش مهم خود در این فرآیند یک دید واضح پیدا کنند. به طور کلی شرکتهایی که از توسعه نرم افزار چابک استفاده میکنند، محصولی بسیار باکیفیت را در اختیار مشتریان خود قرار میدهند؛ زیرا که در حین فرآیند تولید و توسعه محصول، فرآیند کنترل کیفیت نیز در مرحله درست آن به انجام میرسد و شرایط برای انعطاف و تغییر احتمالی محصول نیز مدنظر قرار خواهد گرفت. رویکرد چابک امروزه جایگزین بسیاری از روشهای سنتی توسعه در اغلب شرکتها شده است؛ اما اخیرا رویکرد توسعه محبوب دیگری نیز تحت عنوان دِوآپس (DevOps) مطرح شده که در مطالب آینده به شکل تخصصیتری به تشریح آن خواهیم پرداخت.
چهار ارزش توسعه چابک نرم افزار
در سال ۲۰۰۱، تعداد ۱۷ متخصص نرم افزار گرد هم آمدند تا درباره سهولت و سادهسازی فرآیند توسعه نرم افزار به گفتگو بپردازند. در پایان این رویداد، یک بیانیه گروهی منتشر شد که ۴ ارزش را برای توسعه چابک نرم افزار تشریح میکرد که به آن خواهیم پرداخت:
تعاملات فردی، مهمتر از فرآیندها و ابزار هستند. مشتریان مهمترین سرمایه هر کسب و کاری به شمار میروند. در صورتی که قرار باشد فرآیندها و ابزارها مسیر حرکت کسب و کار را تعیین کنند، احتمالا میزان انطباقپذیری محصول تولیدی با نیاز مشتری کاهش خواهد یافت؛ در نتیجه انتظارات مشتریان برآورده نمیشود.
به جای مستندات توسعه، بر روی نرم افزار در حال کار تمرکز کنید. پیش از رویکرد توسعه چابک، بخش قابل توجهی از زمان تیمها صرف مستندسازی محصول در حال توسعه میشد. لیسا الزامات مستندات به قدری زیاد بود که تاخیر بسیاری در روند توسعه به وجود میآورد. البته توسعه نرم افزار چابک، استفاده از مستندات را به کلی حذف نمیکند؛ بلکه فرآیند آن را به شکلی سادهسازی میکند که تنها اطلاعات مورد نیاز برای انجام کار در طول فرآیند تولید برای توسعهدهنده قابل دسترس باشد.
به جای مذاکره بر سر قرارداد، بر روی همکاری تمرکز کنید. توسعه چابک بیش از آنکه به جزئیات تحویل بپردازد، بر همکاری بین مشتری و مدیر پروژه تمرکز دارد. این همکاری بدان معناست که مشتریان در کل مراحل توسعه در جریان فرآیندها قرار دارند؛ بنابراین تیمها به خوبی میتوانند در پایان پروژه، نیاز آنان را پاسخگو باشند. به عنوان مثال، در رویکرد توسعه نرم افزار چابک، ممکن است مشتری چندین نسخه پیشنمایش (آزمایشی) از محصول نرم افزار مورد انتظار خود را از تیم توسعه تحویل گرفته و در ادامه پیشنهادات خود را نیز در رابطه با آن اعلام نماید. به بیان دیگر، مشتری میتواند در انواع جلسات روزانه مربوط به روند توسعه نرم افزار حضور پیدا کند تا از برآورده شدن انتظارات خود توسط محصول اطمینان یابد.
نحوه واکنش به تغییرات از اهمیت ویژهای برخودار است. توسعه نرم افزار به روشهای قدیمی، تا حد ممکن سعی میکرد تا از هرگونه تغییر ناخواسته جلوگیری کند؛ زیرا که هرگونه تغییر، پروژه را متحمل هزینههای بسیاری میکرد. توسعه نرم افزار چابک، این تصور را به کلی از بین میبرد؛ زیرا که تکرارهای کوتاه در چرخه توسعه چابک، اجازه میدهد تا تغییرات به راحتی انجام شود و تیم توسعه هم میتوانند روند جدید را به سادگی جایگزین رویکرد پیشین خود کنند. به طور کلی، توسعه نرم افزار چابک معتقد است که «تغییرم، راهی برای بهود پروژه و تولید ارزش برای محصول است.
رویکرد توسعه چابک بر ۱۲ اصل استوار است!
- مشتریان از تحویل زودهنگام و مداوم قابلیتهای خود از محصول نرم افزاری، رضایت کافی دارند.
- نسخههای قابل ارائه نرم افزار را به طور مکرر منتشر کنید. (ارائه هفتگی به جای ماهانه)
- باید این دیدگاه را پذیرفت که بهترین معماریها، الزمات و طرحها از تیمهای خودسازماندهی شده پدیدار میشود.
- با فراهمسازی نیازهای کارکنان در محیط هر بخش، از انگیزه آنها برای انجام کار حمایت کنید.
- فرآیندی را ایجاد کنید که تلاشهایی پایدار را از سوی کارکنان پدیدآور شود.
- سرعت ثابت کار خود را حفظ کنید.
- از تغییرات استقبال کنید؛ حتی در اواخر توسعه!
- تیم پروژه و صاحبان کسب و کار را در جلساتی منظم، گرد هم جمع کنید.
- از تیم بخواهید که در فواصل زمانی مشخص، درباره چگونگی کارآمدتر شدن تامل کرده و متناسب با آن رفتار کنند.
- پیشرفت را متناسب با حجم کاری انجام شده اندازهگیری کنید.
- پیوسته به دنبال تعالی و پیشرفت باشید.
- از تغییرات، برای مزیت رقابتی کسب و کار خود استقبال کنید.
توسعه چابک نرم افزار، این امکان را برای شرکتهای توسعه نرم افزار فراهم میکند که بتوانند بخشهای قابل ارائه از محصول را در بازههای زمانی کوتاهتر در اختیار مشتریان قرار دهند. از آنجا که مشتری با گروه پروژه در ارتباط مستقیم است، در این روش میتوان اطمینان حاصل کرد که محصول نهایی دقیقا با موارد مورد انتظار مشتریان تطابق خواهد داشت.

به بیان کلی، اجایل (Agile) یا روش توسعه نرم افزار چابک/چالاک، مجموعهای از ارزشها و اصول را تعریف میکند که با بهکارگیری آنها در محیطهای توسعه نرم افزار میتوان به نتایجی مانند محصولات کارآمد، مشتریان رضایتمند و نیروی کاری باانگیزه دست یافت. با معرفی توسعه نرم افزار چابک، متدولوژیهای مختلفی مطرح شدند که اصول و ارزشهای رویکرد چابک در آنها نهادینه شده است. در مقالات آینده، با معرفی برخی از مهمترین متدولوژیها در توسعه نرم افزار چابک در خدمت شما عزیزان بازدیدکننده خواهیم بود.