روش توسعه چابک نرم افزار (Agile Software Development) چیست؟

۳۱۲۸ بازدید
آخرین به‌روزرسانی: ۲۲ اسفند ۱۴۰۲
زمان مطالعه: ۴ دقیقه
روش توسعه چابک نرم افزار (Agile Software Development) چیست؟

در بخش قبلی با بحران نرم‌افزار آشنا شدیم و دانستیم که دنیای توسعه نرم‌افزار چه مسیری را طی کرد تا به دوران «مدیریت چابک» رسید. در ادامه به این موضوع خواهیم پرداخت که توسعه چابک چگونه صنعت نرم‌افزار را نجات داد. هنگام توسعه پروژه‌های نرم‌افزاری، تغییر اجتناب ناپذیر است و به دلایل مختلفی رخ می‌دهد. گاهی فناوری مورد استفاده برای توسعه منسوخ می‌شود، گاهی شرکت‌ها ادغام می‌شوند و یا حتی امکانات جدیدی به دست می‌آورند. گاهی هم چشم‌اندازهای رقابتی تغییر می‌کنند و یا حتی اعضای تیم پروژه را ترک می­‌کنند. به عبارت دیگر تنها اصل قطعی در این پروژه‌ها، همین تغییرات مداوم و پی‌در‌پی است؛ این امر موجب می‌شود فرایند توسعه، فرایندی بسیار پر ریسک شده و یک نیاز قوی برای امکان تغییر در برنامه‌ها، دریافت بازخورد از مشتریان و بهبود مستمر ایجاد شود.

فهرست مطالب این نوشته

برای مدیریت این چالش‌ها، توسعه دهندگان نرم‌افزار باید بسیار خلاق باشند و دانش بالایی داشته باشند. آن‌ها نمی‌توانند به طور کامل به برنامه‌ریزی‌ها و پیش‌بینی‌های قبلی تکیه کنند و مطابق چک لیست‌ها و فرایندهایی که توسط افراد دیگری تنظیم شده‌اند، پایبند بمانند. توسعه نرم‌افزار یک روند تجربی است که بر تجربیات واقعی و حقایق متکی است و توسعه دهندگان از آن استفاده می‌کنند تا به طور مداوم طرح‌هایشان را تغییر دهند و بهبود ببخشند.
agile_software_development_methodology

نرم افزارها در ابعاد کوچک و به صورت تکراری ساخته می‌شوند. هر مرحله خود شامل مراحل دیگری همچون بررسی نیازمندی‌ها، تحلیل و بررسی، کد زدن، سر هم کردن کدها، تست کدها و برطرف کردن خطاها است؛ در پایان هر مرحله ازین تکرارها یک محصول نرم‌افزاری قابل استفاده تولید می‌شود. چنین فرایندی به تیم‌های نرم‌افزاری این قدرت را می‌دهد که بهتر و قوی‌تر در مقابل ریسک‌ها و عدم قطعیت‌ها در فرایند توسعه محصول ظاهر شوند.

پیش از ادامه این مبحث لازم است یادآور شویم که می‌توانید توسعه نرم‌افزار را با استفاده از مجموعه آموزش توسعه نرم‌افزار، مقدماتی تا پیشرفته فرادرس یاد بگیرید.

مانیفست چابک

در دهه نود تکنیک‌های چابک فراوانی تکامل یافتند که سعی در حل چالش‌های کلیدی صنعت نرم‌افزار داشتند. از اولین این تلاش‌ها می‌توان به «مانیفست چابک» اشاره کرد که در آن گروهی از رهبران فکری در سال 2001 میلادی  به دنبال به رسمیت شناخته شدن رویکرد چابک بودند.

نویسندگان این مانیفست بیان کردند: «ما با توسعه نرم‌افزار و کمک به دیگران در انجام آن، در حال کشف راه‌های بهتری برای توسعه نرم‌افزار هستیم. در این راه:

  • افراد و تعاملات بالاتراز فرایندها و ابزارها هستند.
  • نرم‌افزاری که کار کند بالاتر از مستندات جامع است.
  • مشارکت مشتری در انجام کار برتر از قرارداد کاری است.
  • پاسخگویی به تغییرات بالاتر از پیروی از یک طرح ثابت است.

نویسندگان چهار اصل بالا بر این موضوع نیز تاکید کردند که با وجود ارزشمند دانستن موارد سمت چپ، موارد سمت راست نزد آن‌ها ارجحیت و ارزش بیشتری دارد.»

لازم است تاکید شود که مانیفست چابک بر علیه فرایندها و ابزارها، مستندسازی، قرادادها و یا طرح­‌ها نیست بلکه تنها به چهار اصل گفته شده اعتبار بیشتری می‌بخشد. این مانیفست بازتاب دهنده خرد جمعی رهبران بسیاری از صنعت تولید نرم‌افزار بوده و بیانگر مناسب‌ترین راه تولید محصولات پیچیده نرم‌افزاری در شرایط غیر قابل پیش‌بینی است؛ زیرا تیم‌های چابک با آغوش باز به استقبال تغییرات می‌روند.

دوازده اصل چابک

در همان حین که محبوبیت تکنیک‌های چابک در حال گسترش بود، اصول آن هم در حال شکل‌‌گیری بود. امروزه «دوازده اصل» را به عنوان اصول چابک می‌شناسیم که در وب سایت «مانیفست چابک» (Agile Manifesto) هم آمده‌اند؛ آن‌ها را در ادامه شرح خواهیم داد.

اصل اول-رضایت مشتری: بالاترین اولویت ما، راضی نگه داشتن مشتری‌­ها از طریق تحویل زود به زود و پیوسته بخش­‌های کوچک شده پروژه اصلی است. تاکید می­‌کنیم که میزان موفقیت تیم به تهیه محصولی بستگی دارد که بتواند ارزشمند و تاثیرگذار باشد. در یک تیم چابک نوعی، باید سندی از نیازمندی‌های مشتری تنظیم شده و بر اساس ارزش‌های تجاری او، اولویت بندی شود. به این سند اصطلاحا بک‌لاگ (backlog) گفته می‌شود و تیم توسعه بر اساس اولویت‌های از بالا به پائین بک­‌لاگ کار خواهد کرد. می‌دانیم که امروزه بر خلاف دوران گذشته، مشتری­‌ها برای خرید محصولات مورد نیازشان، امکان انتخاب میان فروشندگان مختلف دارند؛ در نتیجه رقابت سختی در جریان است و تنها راه برای موفقیت سازمان این است که همیشه رضایت مشتری را جلب کنیم.

12 principle

اصل دوم-گشاده‌رویی در مقابل تغییرات: استقبال از تغییراتی که مشتری مطرح می‌کند بر اساس این اصل ضروری است، این مورد حتی در مراحل پایانی پروژه نیز الزامی محسوب می‌شود؛ اعمال چنین تغییراتی در نهایت منجر به رضایت بیشتر مشتری خواهد شد و این نگاه مثبت به تغییرات مزیت رقابتی تیم‌های چابک به شمار می­‌رود.

اصل سوم-تحویل زود به زود: تیم‌های چابک باید محصول درخواستی مشتری را به تناوب در چندین بخش قابل استفاده حاضر کرده و تحویل ­دهند. هرچه این بازه‌­های زمانی کوچک‌تر باشند، بهتر است؛ البته این بازه‌ها می‌­توانند از چندین هفته تا چندین ماه متغیر باشند.

اصل چهارم-تعامل زیاد با مشتری: تیم‌های چابک به طور متناوب و پیوسته باید از مشتری بازخورد دریافت کنند تا محصول نهایی تولیدی را با بیشترین میزان نزدیکی به درخواست مشتری تحویل دهند. در این حالت مشتری نیز دسترسی زود به زود به سفارش در حال تکامل خود را دارد و به خوبی در جریان روند پیشرفت کار قرار می‌گیرد. امروزه کمپانی‌های مدرن فراوانی هستند که مشتری را به طور روزانه و یا حتی چندین بار در طی روز، در جریان پیشرفت توسعه محصول قرار می‌دهند.

اصل پنجم-تیمی از افراد با انگیزه: تیم چابک باید از افراد با انگیزه تشکیل شود، از ایده‌های آن‌ها حمایت شود و فضای لازم برای پیشرفت در اختیارشان قرار بگیرد. به اعضای تیمتان اعتماد کنید تا در نهایت کارها را به بهترین شکل به انجام برسانند.

اصل ششم-مکالمات رو در رو: کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و نیز بهترین روش انتقال اطلاعات در میان اعضای تیم ، گفتگوی چهره به چهره است.

اصل هفتم-نرم افزار قابل استفاده: تحویل یک نرم افزار قابل استفاده، اصلی‌ترین معیار سنجش پیشرفت پروژه است.

اصل هشتم-توسعه پایدار: تیم‌های چابک مروج توسعه پایدار هستند. لازم است که حامیان مالی، مشتری‌ها، توسعه دهندگان و کاربران نرم‌افزار شاهد سرعت پیشرفت ثابتی در طول زمان باشند.

اصل نهم-حرکت دائمی در لبه تکنولوژی:  اگر به چابکی تیم خود اهمیت می‌­دهید باید به طور مداوم به برتری فنی و نیز طراحی بهتر محصولات خود توجه داشته باشید.

اصل دهم-سادگی: هنر تیم‌های چابک از اجتناب از هرگونه پیچیدگی در طراحی و توسعه محصولات است.

اصل یازدهم-تیم­‌های خودسازمان‌ده:  این تیم‌ها بهترین ایده‌­ها، نیازمندی‌­ها، معماری‌ها و طراحی ها را پدید می‌آورند.

اصل دوازدهم-بحث و تبادل نظر: لازم است اعضای تیم‌های چابک در بازه­‌های زمانی مشخص و منظم، در مورد روش‌های بهتر شدن با همدیگر بحث و تبادل نظر داشته باشند و در نهایت رفتار تیمی بر اساس برایند این تفکرات و تصمیمات تیمی، جهت‌دهی شود.

محبوب­‌ترین فریم‌­ورک چابکی که امروزه وجود دارد، «اسکرام» (Scrum) است که در نوشته‌­های بعدی به آن خواهیم پرداخت.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۲۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
مانیفست چابک
۴ دیدگاه برای «روش توسعه چابک نرم افزار (Agile Software Development) چیست؟»

اولا ممنونم
Agile در صنعت نرم افزار در مسیر توسعه نرم افزار rup قرار داره ولی میشه ظلع مقابلش
که نرم افزار هارو برا اساس نیازمندی هایی از قبیل زمان
هزینه
کاربران و غیره در نظر میگیره
مثال: کارخانه خودرو سازی هرسال میاد یک تعداد خودرو شبیه هم وارد بازار میکنه با قیمت مشخص
ولی agileیعنی کارخانه خودرو سازی با توجه به نیاز مشتری های خاص خودش
همان خودرو رنگ دیگه ای در بیاره یا امکانات خاصی براش بزاره
و اینا مستلزم اینه که شاید حتی هزینه ها بالا بره
در زمان کوتاهی خودرو تولید بشه
خط تولید کاهش پیدا میکنه
ولی هزینه فروش محصول برای مشتری های خاص کارخانه
سود آوره
البته بستگی داره چه خودرویی در بخش rup تولید شده باشه

تشکر از شما عالی بود

بسیار عالی بود

عالی بود.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *