رادمان پژوه هوشمند تهران

دوره توسعه نرم افزار چابک

1398-02-13 در 16:22

 

 

مدرک دوره توسعه چابک نرم افزار- ETH Zurich
دوره توسعه چابک نرم افزار ETH Zurich –قابل تایید از این لینک

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

چابک (Agile) مجموعه ای از ارزش ها و اصول جهت توسعه نرم افزار های کارا توسط تیم های خود سازمانده می باشد. ارزش ها و اصول چابک (Agile) در سال ۲۰۰۱ توسط ۱۷ نفر از اساتید معتبر جهانی صنعت توسعه نرم افزار طی یک بیانیه با عنوان بیانیه توسعه چابک تنظیم و ارائه گردید. اساس و هدف این اصول و ارزش ها ارائه نرم افزار کارا و یا محصول کارآ به مشتری می باشد.

اما چه نیازی به روش چابک بود؟!

به عبارتی چه شد که این ۱۷ نفر (بعلاوه چند ده نفر دیگر که به صورت غیر مستقیم در این بیانیه تاثیر داشتند) در سال ۲۰۰۱ اقدام به انتشار چنین روشی کردند!؟

جواب کاملا واضح است: ضعف های موجود در روش های سنتی باعث شد که این دوستان روش چابک را معرفی نمایند.

 

روش های سنتی و یا موجود چه مشکلاتی داشتند؟

روش های موجود آن زمان (و فعلی این زمان ایران) که بیشتر به صورتی فاز به فاز عملیات اجرا می شد و نتیجه کار از قبل به صورت یک طراحی اولیه دقیق (Up-front Design) پیش بینی می شد یک سری ایراد اساسی و کلی داشت :

  • صرف زمان زیاد و در واقع اتلاف زمان برای طراحی اولیه دقیق در فاز اولیه پروژه
  • مشخص نبودن و واضح نبودن نیازمندی ها بدلیل ارتباطات کاغذی به جای ارتباطات چهره به چهره و کج روی های متعاقب
  • بالا بودن هزینه تغییرات
  • به طول انجامیدن پروژه و گذر از زمان تعیین شده در حد بسیار زیاد در بسیاری از پروژه ها
  • عدم وجود زمان برای آزمایش محصول و متعاقبا محصولات پر از باگ و بدون کیفیت
  • عدم شفافیت در پروسه توسعه و تولید : هیچ کس حتی مدیر پروژه نمی دانست که چقدر از محصول مورد نظر تکمیل شده است؟ چه اهدافی باقی مانده است؟ و … .

بزرگترین مشکل این پروسه ها ناکارآ بودن محصولات اشان بود.  اما چرا محصولات این پروسه ها ناکارآ تشریف داشتند؟

به این دلیل که عملکرد این پروسه ها بر اصل Anticipation یا پیش بینی استوار بود. در پیش بینی یک سری موارد بر روی کاغذ و به عنوان قرار داد بسته جهت پیاده سازی تحویل تیم توسعه داده می شد و تیم توسعه موظف می شد در یک زمان مقرر و با یک منابع مشخص و ثابت این وظایف را پیاده سازی نماید. این اصل  همراه خود در بردارنده طراحی دقیق اولیه یا Big Design Up-Front بود (همان صحبت معروفی که شاید شنیده باشید :”ما اگر ۱ سال وقت داشته باشیم ۱۰ ماه آن را برای تحلیل و طراحی و  ۲ ماه آن را برای پیاده سازی صرف می کنیم).

طراحی اولیه دقیق (Big Design Up-Front) خوب است ولی در جایی که همه چیز ثابت باشد و نیازی به تغییر نداشته باشیم ولی آیا به راستی در جهان واقع و در اکثر پروژه هامان نیاز به تغییر نداریم؟!

زمانیکه در پروژه ای طراحی اولیه دقیق (Up-Front Design) می شود مسلما فاز تست آخرین فازی خواهد شد که بر روی محصول انجام می شود. ولی آیا این فاز تاثیر گذار می تواند باشد؟ محصولی که کامل ساخته شده است تزریق کیفیت به آن ساده نیست و در بعضی از موارد غیر ممکن خواهد بود. بهتر است به جای این , محصول با کیفیت ساخته شود و نه کیفیت به آن در آخر پروژه تزریق شود.

 

اصول چابک

چابک، بر ۱۲ اصل استوار است:

  • رضایت مشتری از طریق تحویل سریع نرم‌افزار مفید؛
  • استقبال از تغییرات نیازمندی‌ها، حتی در اواخر توسعه؛
  • نرم‌افزار کار زود به زود تحویل می‌شود (هفتگی به جای ماهانه)؛
  • نرم‌افزار کار مقیاس اصلی پیشرفت است؛
  • توسعهٔ پایدار، قادر به حفظ سرعت ثابت است؛
  • همکاری نزدیک و روزانه بین افراد کسب‌وکار و تیم توسعه؛
  • مکالمهٔ رو در رو بهترین شکل ارتباطات است (محل مشترک)؛
  • پروژه‌ها در اطراف افراد باانگیزه، که باید به آن‌ها اعتماد کرد، شکل می‌گیرند؛
  • توجه مستمر به برتری فنی و طراحی خوب؛
  • سادگی- هنر به حداکثر رساندن کارهای انجام‌نشده- ضروری است؛
  • تیم‌های خودسازمان‌دهی;
  • انطباق با تغییرات محدودیت‌ها به‌طور منظم;

در ادامه در مطالب بلاگ در رابطه با توسعه نرم افزار چابک بیشتر بحث می کنیم..