متدولوژی Agile چیست؟
متدولوژی Agile مجموعه ای از فعالیت هاست که در نهایت باعث میشود که مشتری به خواسته واقعی خود برسد.
شاید جمله باید کمی عجیب به نظر برسد و این سوال را بوجود بیاورد که “چطور ممکن است که مشتری چیزی را بخواهد و در نهایت به چیز دیگری برسد؟”، قاعدتا مشتری آن چیزی را بدست می آورد که خواسته، اما در واقعیت و در دنیای ساخت نرم افزار و محصولات کامپیوتری همیشه اینطور نیست. چرا که طبق روشهای قدیمی، محصول نهایی در آخرین مرحله به مشتری تحویل داده میشود و فقط در آن مرحله است که مشتری یک محصول واقعی را میبیند و میتواند در مورد آن نظر بدهد.
فقط یک لحظه تصور کنید که بخشی از کار مورد قبول مشتری نباشد، آن وقت چه هزینه و زمان زیادی لازم است تا این اشتباهات جبران شوند 😶🤐
تاریخچه
دردسرهای تولید پروژه و مراحل پیچیده آن همیشه و حتی از اولین پروژه ها وجود داشته اند و وجود خواهند داشت. پس ما اولین نسلی نیستیم که با این مشکلات روبرو میشویم و نسلی از مدیران در سال ۲۰۰۱ تصمیم به ایجاد روشهایی برای حل کردن چنین مشکلاتی گرفتند.
طبق تحقیقات سازمان IEEE ، بیش از نیمی از پروژه ها شکست (Fail) میخورند و به عبارت دیگر، محصول نهایی چیزی نیست که انتظارش را داشتیم و نتوانسته رضایت مشتری را جلب کند. و اما چه عواملی باعث این شکست ها میشده:
۱- زمانبندی نامناسب
۲- کیفیت پائین در تولید نرم افزار
۳- ارتباط نداشتن با مشتری
۴- تحلیل نادرست نیازمندی ها
۵- کمبود در تست کردن نرم افزار
پس نیاز است تا راهکارهایی برای رویارویی با این عوامل بوجود آیند تا بتوان هرچه بیشتر محصول را به نیاز مشتری نزدیک کرد. متدولوژی Agile راهکارهایی را ارایه میکند که مشتری و نیازهایش را در اولویت و محوریت همه چیز قرار داده و تمامی تحلیل ها و اعتبارسنجی ها حول محور مشتری و نیازهایش صورت میگیرد.
مزیت متدولوژی Agile، انعطاف و مطابقت پذیری آن است. ممکن است شرکتی پروژه ای را شروع کند که هرگز در آن سابقه نداشته و یا حتی محصولی نیاز به تولید داشته باشد که قبلا هرگز مشابه آن ساخته نشده. راهکارهای ارایه شده، با حفظ ارتباط با مشتری و تمرکز بر روی نیازمندیها، از هدر رفت زمان و بیهوده کاریها جلوگیری میکند تا در نهایت محصولی کارآمد تولید شود.
مستندات
یکی از اصول متدولوژی Agile تولید و گسترش مستندات است به این صورت که در کنار کدهایی که نوشته میشوند، مستندات به صورت مختصر و مفید (بدون اضافه گویی های بی مورد)، تولید میشوند تا در صورت نیاز به بخشی از پروژه، از انچه قبلا تولید شده استفاده شود و یا در صورت تغییر، با رجوع به مستندات، همه چیز قابل فهم شود.
اصول ۱۲ گانه Agile
این اصول که در سال ۲۰۰۱ توسط مدیران شرکت های نرم افزاری جهت مقابله با شکست در پروژه های نرم افزاری تدوین شده اند عبارتند از :
۱- بالاترین اولویت در این متدولوژی جلب رضایت مشتری با تحویل زود هنگام نرم افزاری توانمند است.
۲- استقبال از تغییر نیازمندی ها، حتی در اواخر فرآیند توسعه.
۳- تحویل نرمافزار قابل استفاده با فاصله زمانی سه هفته یک بار و یا سه ماه یک بار.
۴- ذی نفعان و توسعه دهنده ها می بایست به صورت روزانه در طول پروژه با هم کار کنند.
۵- پروژه ها به دست افراد با انگیزه سپرده شود ، فضای لازم به آنها داده شود تا کارها را به درستی انجام دهند.
۶- کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم ، گفتگوی چهره به چهره است.
۷- نرم افزار قابل استفاده اصلی ترین معیار سنجش پیشرفت است
۸- فرآیند های Agile توسعه پایدار را ترویج می دهند. حامیان مالی، توسعه دهندگان و کاربران باید بتوانند سرعت پیشرفت ثابتی را برای مدت نامحدودی حفظ کنند.
۹- توجه مداوم به برتری فنی و طراحی خوب باعث افزایش کیفیت تولید می شود.
۱۰- باید ساده ترین راه که با هدف پروژه سازگار است را انتخاب نمود و از گذاشتن وقت بر روی مشکلاتی که ممکن است در آینده رخ دهد صرف نظر کرد.
۱۱- بهترین مدیریت، تحلیل نیازمندی ها و طراحی از تیم های خود سازمان ده (هرفرد در تیم بر کل پروژه تاثیر دارد) پدید آور می شود.
۱۲- در فواصل منظم، تیم نشان میدهد که چگونه میتواند در تولید نرم افزار موثرتر باشد و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو می نماید.
تفسیر از منبع