خانه > Agile, Project Management, Scrum > خروجی کارآ در Agile

خروجی کارآ در Agile


در پست قبلی در تعریف Agile Software Development بیان شد که خروجی اصلی Agile نرم افزار یا محصول کارآ می باشد و منظور از محصول کارآ نرم افزاری می باشد که بتواند نیازهای کسب و کار مشتری را به بهترین نحو پاسخ گو باشد.

حال سوالی مهمی که قابل طرح است این می باشد که : در محیط های Agile یا چابک چگونه می توان به نرم افزار کارآ دست یافت؟ و پروسه های قدیمی چگونه بودند که نمی توانستد به این مهم دست یابند؟

شکل های زیر جوابگوی این سوالات خواهند بود :

https://sirasad.files.wordpress.com/2010/12/dsc00003.jpg?w=592

شکل بالا (به خاطر بی کیفیت بودن شکل عذر خواهی می کنم) نشانگر روند توسعه نرم افزار در متدهای قدیمی می باشد. همانطورکه قابل ملاحظه است مشتری در فاز ابتدایی پروژه اقدام به سفارش محصول A می کند و تیم توسعه بر حسب این سفارش اقدام به پیاده سازی بر اساس قرار داد مندرج می کند. بالاخره خروجی فاز توسعه بعد از مدت زمانی آماده و تحویل مشتری می شود. اما مشتری در هنگام استفاده از خروجی فاز توسعه متوجه می شود که «این آنی نیست که من می خواستم یا این آنی نیست که بتواند نیاز های من را رفع کند» . به طور خلاصه این محصول برای مشتری ناکارآمد می باشد.

شاید این ذهنیت به وجود بیاید که «باعث به وجود آمدن این خروجی ناکارآمد مشتری بوده است زیرا او در ابتدا نمی دانسته است چه می خواهد و این مشکل ربطی به تیم توسعه ندارد».  البته شاید در این مثال بدین گونه باشد ولی همیشه اینطور نیست و نخواهد بود. برای مثال شاید مشتری از اول B را در ذهن خود داشته ولی در ارتباطات و قرار داد بدلیل تعامل کم و کج فهمی تیم توسعه محصول ناکارآمد به وجود آمده است.خیلی دلایل می تواند باعث کج روی تیم بشود که این دلایل اصلا مهم نیستند و مهم این است که خروجی کارآ باشد.

اما در محیط Agile برای این که بتوانیم همان محصول را به گونه کارآ توسعه دهیم می توانیم به گونه زیر عمل نماییم:

https://sirasad.files.wordpress.com/2010/12/dsc00004.jpg?w=592

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

در این حالت هزینه تغییر بسیار و بسیار پایین تر و مقرون به صرفه تر خواهد بود. از همه مهم تر خروجی پروژه یک محصول کارآ خواهد بود و محصول کارآ مشتری را از ما خوشحال خواهد نمود و مشتری خوشحال یعنی دست یابی به سود بیشتر و مشتری دائم.

البته با مقایسه اشکال بالا به نکات موثرتری پی خواهید برد.

یاشیاسیز

  1. AmirGT
    دسامبر 13, 2010 در 6:57 ب.ظ.

    ممنون اسد جان
    دقیقا مشکلاتی که توسعه دهندگان ایرانی باهاش درگیرند
    و به نظر من هم تفکر Agile برطرف کننده این مشکلات اساسی است.
    راستی شکل ها خیلی باحال هستند.🙂

    • دسامبر 13, 2010 در 10:49 ب.ظ.

      مرسی . راستش یکمی می ترسیدم شکل ها چونکه دست نویس هستند مورد استقبال قرار نگیرند ولی باز خدا رو شکر.

  2. داریوش
    دسامبر 13, 2010 در 7:40 ب.ظ.

    سلام
    می‌خواستم اشاره کنم که کوبیدن روش‌های سنتی به این شکل، به دور از شان و اخلاق مهندسی و حرفه‌ای است.
    اولاً بماند که اجرای درست مهندسی نیازمندی در روش‌های سنتی می‌تواند از بروز مشکلی که
    شما مطرح نمودید جلوگیری نماید. اما حرف اصلی من در مورد «پر باگ» بودن محصول تولیدی است،
    که انصافاً بسیار بی‌ربط است🙂

    می‌توان این‌جوری نوشت که روش‌های چابک از «تغییر در نیازها» استقبال می‌کنند و همچنین این امکان را می‌دهند که با «نیازمندی‌های نادقیق» کار را با مخاطرات کم‌تری آغاز کنیم.

    • دسامبر 13, 2010 در 10:47 ب.ظ.

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

  3. AmirGT
    دسامبر 19, 2010 در 2:07 ب.ظ.

    سلام اسد جان
    می خواستم بگم اگر محصولی که قرار هست به روش چابک تهیه و آماده شود سفارشی نباشد یعنی توسط شرکت قرار هست تولید شود و بصورت تجاری فروخته شود چگونه تفکر agile و scrum می تواند به روند پروژه کمک کند؟
    مسئولیت product owner در این نوع پروژه به چه کسی واگذار می شود؟ و چگونه؟
    آیا باید تغییری در روند روش agile بدهیم؟ یا نه همانند همیشه پیش بریم؟

    • دسامبر 19, 2010 در 8:34 ب.ظ.

      مثل کارشناس های تلویزیونی : خیلی سوال خوبی پرسیدید ; ولی من جوابش رو نمی دونم (:

      در Agile فرق نمی کنه که کارفرمات کی باشه مهم ارزش آفرینیه. ارزش رو برای چه کسی می خواییم بیافرینیم ! مسلما برای مشتری محصول . پس محصول ما ارزش آفرین خواهد بود برای مشتری . اما چه چیزی برای مشتری ارزش آفرین است!؟ مشتری العلم . معمولا در محیط های کشورهای پیشرفته مانند آمریکای جهان خوار افرادی با عنوان Business Analyst وجود دارند که می تونند نقش نمایندگی PO را بازی نمایند.

      شما برای محصولتون دارای یک جامعه هدف خواهید بود. اما نمی توان همه آنها را به عنوان PO در نظر گرفت ولی می توان نمونه گیری کرد (بحث آماری) و نیازها و درخواست های جامعه نمونه را دریافت کرد و توسط یک Business Analyst به عنوان PO به تیم تزریق کرد.

      برای مثال : ما یک محصول فروش مویرگی را چند سال پیش کار می کردیم . جامعه هدف ما شرکت های پخش بودند. بنابراین از چند مدیر فروش که خود آنها درد کشیده این راه بوند و هم مشتری محصول به عنوان جامعه نمونه استفاده کردیم و نفری داشتیم که سرپرست این مدیران فروش بود و او وظیفه PO را برای ما بازی می کرد. محصول را بانظرات او (اما نه صرفا سفارشی) توسعه می دادیم و آنها نیز خروجی های ما را عملا در شرکت های پخش خود استفاده می کردند. بعد از مدتی آنها صاحب یک نرم افزار فروش مویرگی کاملی بودند که نیازهای آنها را برطرف می کرد و ما هم صاحب یک محصول . بازی برنده/برنده.

      موفق باشید

  1. دسامبر 31, 2010 در 6:10 ق.ظ.
  2. مارس 4, 2011 در 1:11 ب.ظ.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: