متدولوژی Agile چیست؟
متدولوژی Agile (اَجایل) مجموعه روشهایی است که باعث می شود تا نرم افزار تولید شده کاملا با نیازهای مشتریان مطابقت داشته باشد. در این روش محصول به صورت فاز بندی به مشتری تحویل داده می شود. در واقع مشتری با تیم پروژه کاملا در ارتباط است. یکی از روش های Agile، اسکرام می باشد که در آن تیم توسعه در بازه های زمانی مختلف با مشتری ملاقات کرده و یک خروجی از نرم افزار را به آنها تحویل داده و بازخورد را مشاهده میکند.
متدولوژی Agile
متدولوژی Agile در سالهایی بوجود آمد که شرکت های نرم افزاری در تولید محصول خود با شکست مواجه می شدند. علت این شکست برآورده نشدن نیازهای مشتریان بود. به عنوان مثال روی یک پروژه نرم افزاری زمان و انرژی گذاشته میشد ولی در هنگام تحویل آن، نیازهای مشتری را مرتفع نمی کرد.
دلیل آن هم عمدتا این بود که آنها به نیازمندی و رضایت مشتری که یکی از اهداف اصلی پروژه است توجه کمتری می کردند. در این هنگام مدیران چند شرکت نرم افزاری در سال 2001 گرد هم آمدند و متد های مدیریتی را بوجود آوردند که باعث می شد محصول نهایی کامل مطابق نیاز مشتری باشد.
شکست در پروژه ها Agile را بوجود آورد!
طبق تحیقات انجام شده توسط سازمان IEEE، حدود نیمی از پروژه های نرم افزاری با شکست مواجه میشوند یا اصطلاحا Failed میشوند. عمده دلایل شکست پروژه های نرم افزاری عبارتند از :
1- زمانبندی نا مناسب
2- کیفیت پائین در تولید نرم افزار
3- ارتباط نداشتن با مشتری
4- تحلیل نادرست نیازمندی ها
5- کمبود در تست کردن نرم افزار
بعد از پیدا کردن دلایل شکست پروژه، Agile راه کارهای مناسب جهت توسعه مناسب آن را ارائه می دهد. از دیدگاه این متدولوژی، مشتری یکی از مهمترین افراد در تولید پروژه است، زیرا اصلا پروژه برای مشتری است و تنها کسی که از نیازمندی های واقعی نرم افزار مطلع است، در واقع خود اوست. برای رفع مشکل تحلیل نادرست نیازمندی ها، از دیدگاه Agile نیازمندی های مشتری توسط تیم توسعه باید به یک ویژگی در نرم افزار تبدیل شود تا بتوان بوسیله این ویژگی ها، امکان سنجی صحیحی برای آن انجام داد.
Agile برای چه پروژه هایی مناسب است؟
گاهی اوقات شرکت ها با پروژه هایی مواجه می شوند که هیچ تجربه ای در آن ندارند. به همین علت ممکن است تیم پروژه با خطاهای تکراری و غیر قابل پیش بینی مواجه شود و وقت آنها بیهوده به هدر برود. بنابراین استفاده از روشی مناسب که بتواند در این نوع پروژه ها تیم را یاری کند بسیار ضروری است. همچنین شرکت ها ممکن است با پروژه هایی روبرو شوند که نیازمند تغییر و ارتباط مداوم با مشتری است. پس استفاده از Agile در این گونه شرکت ها منجر به مشتری راضی، محصولی کارآمد و همچنین دادن انگیزه به تیم توسعه می شود.
نیاز به مستندات در روش Agile الزامی است.
یکی از موثرترین کارها در تولید نرم افزار، تهیه مستندات است که متاسفانه بسیاری از شرکت ها نسبت به تهیه آن کمتر اقدام می کنند. Agile به ما میگوید که فقط کد ابزار مناسبی برای تشریح محصول نرم افزاری نیست بلکه باید مستنداتی وجود داشته باشد که هم با تغییر نیازهای مشتریان و هم با هرگونه تغییری در کدها بتوان آن را به روز رسانی نمود. البته این مستندات نباید با حجم بالا تهیه شوند بلکه باید کاملا مختصر و مفید باشند.
همچنین مشتری باید کاملا نیازهای خود را به طور واضح و و روشن بیان کند و این نیازها ریز به ریز در مستندات ثبت می شود. ممکن است در طول تولید پروژه نیازهای مشتری تغییر کند، در این صورت باید حتما کدها دستخوش تغییر شوند. پس مستندات همیشه به روز، یکی از اصول این متدولوژی است.
اصول 12 گانه Agile
این اصول که در سال 2001 توسط مدیران شرکت های نرم افزاری جهت مقابله با شکست در پروژه های نرم افزاری تدوین شده اند عبارتند از :
1- بالاترین اولویت در این متدولوژی جلب رضایت مشتری با تحویل زود هنگام نرم افزاری توانمند است.
2- استقبال از تغییر نیازمندی ها، حتی در اواخر فرآیند توسعه.
3- تحویل نرمافزار قابل استفاده با فاصله زمانی سه هفته یک بار و یا سه ماه یک بار.
4- ذی نفعان و توسعه دهنده ها می بایست به صورت روزانه در طول پروژه با هم کار کنند.
5- پروژه ها به دست افراد با انگیزه سپرده شود ، فضای لازم به آنها داده شود تا کارها را به درستی انجام دهند.
6- کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم ، گفتگوی چهره به چهره است.
7- نرم افزار قابل استفاده اصلی ترین معیار سنجش پیشرفت است
8- فرآیند های Agile توسعه پایدار را ترویج می دهند. حامیان مالی، توسعه دهندگان و کاربران باید بتوانند سرعت پيشرفت ثابتی را براي مدت نامحدودی حفظ كنند.
9- توجه مداوم به برتری فنی و طراحی خوب باعث افزایش کیفیت تولید می شود.
10- باید ساده ترین راه که با هدف پروژه سازگار است را انتخاب نمود و از گذاشتن وقت بر روی مشکلاتی که ممکن است در آینده رخ دهد صرف نظر کرد.
11- بهترین مدیریت، تحلیل نیازمندی ها و طراحی از تیم های خود سازمان ده (هرفرد در تیم بر کل پروژه تاثیر دارد) پدید آور می شود.
12- در فواصل منظم، تیم نشان میدهد که چگونه میتواند در تولید نرم افزار موثرتر باشد و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو می نماید.
پی نوشت :
سازمان ها و شرکت های فعال در زمینه نرم افزار برای استفاده صحیح از این متدولوژی باید برخی از تفکرات سازمانی خود را تغییر دهند. بدین منظور که عادت های اشتباه در تولید نرم افزار را از بین برده و تغییراتی در مدیریت منابع انسانی خود بوجود آورند. تغییر نگرش و رعایت اصول دوازده گانه Agile به این موضوع کمک به سزایی خواهد کرد. در نهایت محصول در حال توسعه را در فواصل زمانی منظم به مشتری ارائه داده تا آنها خلا های نرم افزار را شناسایی کنند و به توسعه بهتر نرم افزار کمک کنند.
دیدگاهها
در خصوص متدلوژی اسکرام آیا شما پروژه ای در سطک کشور یا دنیا سراغ دارید که با این متدلوژی انجام شده باشد
و همچنین موفق هم بوده باشد
خیلی ممنون می شم
خوراک دیدگاهها