آشنایی با حقایق کارکردی رویکرد Agile و مدیریت پروژه چابک
رویکرد Agile : کسانی که در صنعت تولید نرم افزارهای مهندسی یا نزدیک به آن کار میکنند، میدانند که تولید نرم افزارهای خاص و کمی متفاوت برای پروژههای مهندسی هنر بزرگی محسوب میشود.
نرم افزارهای مهندسی نیاز به مراقبت و توجه تیمی قابل انعطاف دارند و افرادی را میطلبند که مایل به پاسخگویی سریع به تغییرات موجود باشند. این همان خواستهای است که در رویکرد Agile معروف به روش شناسی چابک نهادینه شده است.
تعریف رویکرد Agile یا روش چابک:
متدولوژی چابک یا رویکرد Agile نوعی فرایند مدیریت پروژه است که عمدتا برای توسعه نرم افزار مورد استفاده قرار می گیرد، جایی که خواستهها و راه حلها با تلاش مشترک تیمهای خودسازمانده و عملکردی متقابل بین آنها و مشتریانشان تکامل مییابد.
این ارزشها و اصول رویکرد Agile، به عنوان پاسخی به نارساییهای روشهای توسعه سنتی مانند مدل آبشاری(the Waterfall method) ایجاد شده است. صنعت نرم افزار به دلیل این واقعیت که نرم افزار چیزی است که میتواند به طور مداوم ارتقا یابد، یک بازار کاملاً رقابتی است.
این بدان معناست که توسعه دهندگان باید دائماً محصولات خود را بهبود بخشیده و به روز کنند تا در رتبه بالای بازی قرار بگیرند و از سوی دیگر روش خطی و متوالی مدل آبشاری گزینه مناسبی برای این منظور نیست.
تاریخچه مختصری از رویکرد Agile یا توسعه نرم افزار چابک
در دهه 1990، توسعه نرم افزار با بحران روبرو شد. این مقطع که با عنوان “بحران توسعه برنامه” یا “تأخیر تحویل برنامه” شناخته میشود، قادر به پاسخگویی سریع به خواستهها و نیازهای مشتری نبود و زمان تخمینی بین نیاز تجاری و تحویل برنامه واقعی حدود سه سال به طول میانجامید.
بهتر است بدانید که مدلهای توسعه سنتی بر اساس یک رویه زمانی بنا شده بودند، در این وضعیت توسعه به ترتیب اتفاق میافتاد و محصول نهایی تا آخرین مرحله برای مشتریان آشکار نمیشد.
این مسئله وقتی که صحبت از پیشرفتها و تغییرات بود، فضای کمی برای انعطاف پذیری باقی گذاشت. بنابراین، با پایان یافتن یک برنامه واقعی، به احتمال زیاد الزامات و سیستمهای اهداف اصلی پروژه تغییر میکرد.
با هدر رفتن پول و تلاش، بسیاری از پروژهها در نیمه راه لغو میشدند، رهبران حرفهای جامعه نرم افزار گمان کردند که زمان ایجاد رویکردهای تازه رسیده است.
همه آنها آرزو داشتند تا فرایندی را ایجاد کنند که انعطاف پذیری کاملی با محدودیتهای زمانی داشته باشد و بنابراین، اینگونه رویکرد Agile ایجاد شد.
بیانیه چابک چیست؟
بیانیه چابک اعلان ارزشها و اصولی است که در روش شناسی چابک یا رویکرد Agile بیان شده است. این بیانیه با چهار ارزش و 12 اصل ساخته شده است، هدف آن کمک به کشف راه های بهتر توسعه نرم افزار با ارائه یک ساختار واضح و قابل اندازه گیری است که باعث توسعه مجدد، همکاری تیمی و تشخیص تغییر میشود.
ارزشهای”مانیفست برای توسعه نرم افزار چابک یا رویکرد Agile ” عبارتند از:
-
افراد و تعاملات بیش از فرایندها و ابزارها
در گذشته، بسیاری از تیمهای نرم افزاری تمرکز خود را برای داشتن بهترین ابزارها یا فرایندهای ممکن برای ساختن نرم افزار خود متمرکز میکردند. مانیفست چابک پیشنهاد میکند که گرچه این موارد مهم هستند، اما افرادی که فرایندها را پشت سر میگذارند بیشتر اهمیت دارند.
داشتن یک گروه مناسب از افراد در تیم نرم افزار برای موفقیت حیاتی است. بهترین ابزار موجود در دستان اشتباه هیچ ارزشی ندارد. حتی چگونگی رفتار این افراد با یکدیگر بسیار مهم است. تعاملات درست بین اعضای تیم همان موردی است که به آنها در همکاری و حل مشکلات پیش آمده کمک میکند.
-
روند اصلی نرم افزار بر روی اسناد جامع
پیش از این، توسعه دهندگان نرم افزار مدت زمان زیادی را برای ایجاد اسناد دقیق صرف میکردند. این امر حتی به زمان قبل از شروع نوشتن یک خط کد مربوط میشود.
گرچه اسناد و مدارک چیز بدی نیستند، اما نکته اصلی این است که باید بر تهیه نرم افزارهای مفید برای مشتریان خود تمرکز کنید.
یکی از بالاترین اولویتهای رویکرد Agile، ارسال نرم افزار حمل و نقل به مشتریان است. با این کار میتوانید بازخورد جمع آوری کنید تا به شما در بهبود نسخههای بعدی کمک کند.
-
همکاری مشتری بر سر مذاکره در مورد قرارداد
می توانید با مشتریان خود قراردادهایی تنظیم کنید که محصول نهایی را به تفصیل شرح دهد. اغلب بین آنچه که در قرارداد گفته شده، آنچه که محصول انجام داده و آنچه که مشتری واقعاً نیاز دارد، تضاد وجود دارد.
طبق رویکرد Agile، تمرکز تیم بایستی بر روی توسعه مداوم باشد. باید با مشتریان خود یک حلقه بازخورد ایجاد کنید تا بتوانید به طور مداوم اطمینان حاصل کنید که محصول شما برای آنها کارساز باشد.
-
در اولویت بودن پاسخ به تغییر نسبت به پیروی محض از برنامه
آیا میتوانید زمانی را تصور کنید که یک نقشه راه تهیه کرده باشید و به فکر تغییر هیچ چیز نبوده باشید؟ در گذشته دقیقاً این اتفاق رخ داده است.
مشکلی که در نقشههای ایستا وجود دارد این است که ما در یک جهان ثابت زندگی نمیکنیم. نیازها و اولویتها همیشه در حال تغییر هستند. نقشه راه ثابت به زودی قدیمی میشود.
به همین دلیل رویکرد Agile پیشنهاد میکند که یک تیم نرم افزاری باید توانایی ایجاد چرخش و تغییر جهت در زمان لازم را داشته باشد و دارای یک نقشه راه انعطاف پذیر باشد.
یک نقشه راه پویا میتواند سه ماه به سه ماهه، یا حتی گاهی ماه به ماه تغییر کند و تیمهای چابک قادر به همراهی با این تغییرات هستند.
اصول”مانیفست برای توسعه نرم افزار چابک یا رویکرد Agile ” عبارتند از:
1. رضایت مشتری به خاطر تحویل به موقع و مداوم
- در طول فرایند توسعه، برآورده نمودن نیازهای در حال تغییر
- تحویل مکرر نرم افزارهای فعال
- همکاری بین سهامداران و توسعه دهندگان در طول پروژه
- از افراد درگیر حمایت کرده و در آنها اعتماد و ایجاد انگیزه کنید
- تعاملات رو در رو را فعال کنید
- نرم افزار در حال کار معیار اصلی پیشرفت است
- فرآیندهای چابک برای پشتیبانی از سرعت توسعه مداوم
- توجه به جزئیات فنی و طراحی باعث افزایش چابکی میشود
- سادگی
- تیمهای خود سازمانده، معماری و طراحیهای عالی را تشویق میکنند
- تأملات منظم در مورد چگونگی موثرتر شدن
کسانی که از هر نوع رویکرد Agile یا روش چابک استفاده میکنند به این ارزشها و اصول پایبند هستند. این مانیفست نمای خوبی از انتظارات موجود در هنگام انجام چرخه زندگی چابک ارائه میدهد.
مدیریت پروژه چابک یا رویکرد Agile چیست؟
مدیریت پروژه چابک روشی است که به دلیل سازگاری آن معمولاً برای ارائه پروژههای پیچیده استفاده میشود. بر همکاری، انعطاف پذیری، بهبود مستمر و نتایج با کیفیت بالا تأکید دارد. هدف این است که با استفاده از “شش مفهوم فراهم شونده اصلی” برای ردیابی، پیشرفت و ایجاد محصول، عملکرد لازم صورت بگیرد.
شش مفهوم قابل تحویل اصلی رویکرد Agile:
- بیانیه چشم انداز محصول: خلاصه ای که اهداف محصول را بیان میکند.
- نقشه راه محصول: نمای سطح بالا نیازهای مورد نیاز برای دستیابی به چشم انداز محصول.
- تعداد محصولات موجود: با توجه به اولویت، این لیست کاملی است که برای تکمیل پروژه شما باید انجام شود.
- طرح رهاسازی: یک جدول زمانی برای عرضه یک محصول در حال کار.
- افت سریع: داستانهای کاربر (نیازها)، اهداف و وظایف مرتبط با روند فعلی.
- افزایش: عملکرد محصول در حال کار که در پایان افت سریع به ذینفعان ارائه میشود و به طور بالقوه میتواند به مشتری ارائه شود.
آشنایی با سایر رویکردهای چرخه زندگی توسعه چابک یا رویکرد Agile:
برنامه نویسی افراطی(XP) از برنامه های رویکرد Agile
XP بر اساس پنج ارزش ارتباطی، سادگی، بازخورد، شجاعت و احترام، چارچوبی است که هدف آن تولید کیفیت زندگی بالاتر برای تیم توسعه دهنده و همچنین تولید محصول با کیفیت بالاتر از طریق مجموعهای از شیوههای مهندسی است. این اقدامات عبارتند از:
*بازی برنامه ریزی شده
*نسخه های کوچک
*استعاره
*طراحی ساده
*آزمایش کردن
*بازسازی
*برنامه نویسی جفتی
*مالکیت جمعی
*ادغام مداوم
*هفته 40 ساعته
*مشتری در محل
*استاندارد برنامه نویسی
کریستال از برنامههای رویکرد Agile
کریستال از خانواده روش شناسی چابکی تشکیل شده است که شامل Crystal Clear ، Crystal Yellow و Crystal Orange است. ویژگیهای منحصر به فرد آن توسط عواملی مانند اندازه تیم، اهمیت سیستم و اولویتهای پروژه هدایت میشود.
مولفههای اصلی شامل کار گروهی، ارتباط و سادگی و همچنین تأمل برای تنظیم منظم و بهبود روند توسعه است.
این چارچوب چابک نشان میدهد که چگونه هر پروژه برای پاسخگویی به ویژگیهای خاص پروژه نیاز به مجموعهای از سیاستها، روشها و فرآیندهای متناسب دارد.
روش توسعه سیستمهای پویا(DSDM) از برنامههای رویکرد Agile:
روش توسعه سیستمهای پویا یک روش چابک است که بر چرخه کامل زندگی پروژه متمرکز است. این مدل در سال 1994 ایجاد شد و در آن کاربران توسعه سریع برنامه (RAD)، خواستار حاکمیت و نظم بیشتر برای روشهای تکراری کار بودند.
این روش بر هشت اصل بنا شده و فلسفه آن این است: “هر پروژه باید مطابق با اهداف استراتژیک مشخص تعریف شده باشد و بر تحویل زودهنگام منافع واقعی تجارت تمرکز کند.”