در پست قبلی در تعریف Agile Software Development بیان شد که خروجی اصلی Agile نرم افزار یا محصول کارآ می باشد و منظور از محصول کارآ نرم افزاری می باشد که بتواند نیازهای کسب و کار مشتری را به بهترین نحو پاسخ گو باشد.
حال سوالی مهمی که قابل طرح است این می باشد که : در محیط های Agile یا چابک چگونه می توان به نرم افزار کارآ دست یافت؟ و پروسه های قدیمی چگونه بودند که نمی توانستد به این مهم دست یابند؟
شکل های زیر جوابگوی این سوالات خواهند بود :
شکل بالا (به خاطر بی کیفیت بودن شکل عذر خواهی می کنم) نشانگر روند توسعه نرم افزار در متدهای قدیمی می باشد. همانطورکه قابل ملاحظه است مشتری در فاز ابتدایی پروژه اقدام به سفارش محصول A می کند و تیم توسعه بر حسب این سفارش اقدام به پیاده سازی بر اساس قرار داد مندرج می کند. بالاخره خروجی فاز توسعه بعد از مدت زمانی آماده و تحویل مشتری می شود. اما مشتری در هنگام استفاده از خروجی فاز توسعه متوجه می شود که “این آنی نیست که من می خواستم یا این آنی نیست که بتواند نیاز های من را رفع کند” . به طور خلاصه این محصول برای مشتری ناکارآمد می باشد.
شاید این ذهنیت به وجود بیاید که “باعث به وجود آمدن این خروجی ناکارآمد مشتری بوده است زیرا او در ابتدا نمی دانسته است چه می خواهد و این مشکل ربطی به تیم توسعه ندارد”. البته شاید در این مثال بدین گونه باشد ولی همیشه اینطور نیست و نخواهد بود. برای مثال شاید مشتری از اول B را در ذهن خود داشته ولی در ارتباطات و قرار داد بدلیل تعامل کم و کج فهمی تیم توسعه محصول ناکارآمد به وجود آمده است.خیلی دلایل می تواند باعث کج روی تیم بشود که این دلایل اصلا مهم نیستند و مهم این است که خروجی کارآ باشد.
اما در محیط Agile برای این که بتوانیم همان محصول را به گونه کارآ توسعه دهیم می توانیم به گونه زیر عمل نماییم:
همانطور که کاملا واضح است پروژه با Vision محصول A شروع می شود ولی در انتها مشتری صاحب محصول B است زیرا تیم توسعه و مشتری طی تعاملات دائمی در طول Iteration ها دائما در حال یادگیری هستند (یادگیری اینکه Business Value در چه سمتی و با چه محصولی به حداکثر خود خواهد رسید؟). اگر در شکل دقت نمایید متوجه می شوید طی Iteration ها به جای اینکه به جلو برویم (به طرف A ) کم کم به طرف B متمایل می شویم (محصول کارآ) . حتی در Iteration های آخر شاهد یک ثبات حرکتی هستیم که فقط و بدون تغییر جهت به سمت هدف حرکت می کنیم(بالاترین حد یادگیری).
در این حالت هزینه تغییر بسیار و بسیار پایین تر و مقرون به صرفه تر خواهد بود. از همه مهم تر خروجی پروژه یک محصول کارآ خواهد بود و محصول کارآ مشتری را از ما خوشحال خواهد نمود و مشتری خوشحال یعنی دست یابی به سود بیشتر و مشتری دائم.
البته با مقایسه اشکال بالا به نکات موثرتری پی خواهید برد.
یاشیاسیز





پاسخ دادن به AmirGT لغو پاسخ