سلام
در این مقاله سعی خواهم کرد که دوستان را با متدولوژی های Agile (چابک) و تفاوت آن با متدلوژی های سنگین وزن به صورت مختصر آشنا کنم .امیدوارم که مورد استفاده قرار بگیرد :)
متدولوژی های توسعه نرم افزار بطور کلی به دو دسته سنگین وزن (HeavyWeight) و سبک وزن (LightWeight) تقسیم می شود .محور اصلی متدلوژی های سنگین وزن مانند RUP شامل برنامه ریزی جامع و مستند سازی از ابتدا تا انتها و طراحی کامل و گسترده می باشد .به عبارت دیگر روشهای سنگین وزن بصورت پیشگو یا Predictive عمل می کنند یعنی در آغاز همه چیز را پیش بینی می کنند در این جا این سوال پیش می آید که آیا همه چیز از ابتدا قابل پیش بینی می باشد؟
مسلما در ابتدای فاز های تحلیل به دلیل تغییر نیاز ها نمی توان همه چیز را پیش بینی کرد بنابراین متدلوژی های سبک وزن بوجود آمدند. این روش ها بیشتر بر روی سادگی و سرعت تمرکز دارند .در این روش ها در یک کار توسعه گروه توسعه فقط روی وظایفی که در ابتدا احتیاج است تمرکز می کنند و آنها را باید سریع تحویل می دهند و در هر مرحله به جمع آوری بازخوردها می پردازند وبه اطلاعات دریافت شده واکنش می دهند .

چه چیز یک روش توسعه را تبدیل به agile می کند؟
اگر توسعه نرم افزار به صورت
- افزایشی (incremental) (نشر های کوچک نرم افزاری با گردشهای سریع)
- مشارکتی (cooperative) ( کاربر و توسعه دهندگان با یک ارتباط نزدیک به صورت ثابت با یکدیگرکار می کنند)
- سر راست (straight forward) ( خود روش برای یادگیری و تغییر دادن آسان می باشد و خوب مستند شده است)
- سازگار (adaptive) (قابلیت تغییر پذیری در آخرین لحظات می باشد یعنی انطباق با شرایط)
شود متدلوژی به صورت Agile در می آید .

مقایسه روش های چابک با متدلوژی های سنگین وزن :
اندازه پروژه :
متدلوژی های سبک وزن بیشتر در پروژه های کوچک استفاده می شوند در حالی که برای پروژه های بزرگ می بایستی از متدلوژی های سنگین وزن استفاده شود ولی این مساله باعث کاهش محبوبیت این متدلوژی ها نمی شود چون تعداد پروژه های کوچک به مراتب بیشتر از پروژه های بزرگ می باشد :)
مدیریت :
در متدلوژی های سنگین وزن مدیریت بصورت مطلق و استبدادی است در حالیکه مدیریت متدلوژی های سبک وزن بصورت غیر متمرکز و آزاد است که این مدیریت غیر متمرکز باعث تصمیم گیری بهتر برای این روش ها می شود.
نحوه مستند سازی :
یکی از عیب های متدلوژی های سنگین وزن مستند سازیهای سنگین می باشد که کار بسیار دشوار و زمانبری می باشد و باید بصورت جامع و کامل انجام شود (مثلا در Rup باید تمامی مستندات برای هر فاز بطور کامل تهیه شود) در حالیکه در متدلوژی های سبک وزن مستند سازی محدود وبسته به نیاز پروژه انجام می شود.
چرخه های توسعه :
در متدلوژی های سنگین وزن (Cycles) تعداد چرخه ها کم است ولی زمان آنها بسیار زیاد است بنابراین طولانی شدن چرخه ها موجب طولانی شدن زمان انتظار برای رسیدن به نشرها (Release) می شود و این برای کارفرماهای کم طاقت چیز جالبی نمی تواند باشد ! ولی در متدلوژی های سبک وزن چرخه ها بسیار زیاد است اما زمان آنها کوتاه است بنابراین اثر پروژه زودتر مشخص خواهد شد.
معیار موفقیت :
در متدلوژی های سنگین وزن معیار موفقیت در راستای طرح اولیه می باشد که در غیر این صورت پروژه به شکست و تحمل هزینه بر خواهد خورد ولی در متدلوژی های سبک وزن معیار موفقیت بر اساس ارزش کاری (Bussiness Value) مشخص می شود که این باعث انعطاف پذیری این متدلوژی ها می شود .در حالیکه در متدلوژی های سنگین وزن به دلیل همان طرح اولیه این انعطاف پذیری وجود ندارد.
اندازه تیم :
متدلوژی های سنگین وزن احتیاج به یک تیم بزرگ دارند که باید بر اساس تخصص خود در هر کدام از فازها باید عملیات مربوط به خود را انجام دهند که باعث دشوار شدن مدیریت فاز ها خواهد شد.در متدلوژی های سبک وزن اندازه تیم کوچک (حداکثر 30 نفر) می باشد که کوچکی تیم می تواند به بیشتر شدن خلاقیت و همکاری در تیم شود .
بازگشت سرمایه : ( بخش مهم :) )
همانطور که بالا به آن اشاره شد در متدلوژی های سبک وزن ما زودتر به اثر نرم افزار خواهیم رسید که باعث برگشتن سریعتر سرمایه در طول پروژه خواهد شد در حالیکه در متدلوژی های سنگین وزن باید تا انتهای پروژه صبر کرد ! پس می توان گفت که متدلوژی های سبک وزن از لحاظ اقتصادی به صرفه تر هستند .

بطور کلی در ایران کسانی که از متدلوژی های توسعه نرم افزار استفاده می کنند (اگر بخواهند این کار اصولی انجام شود ) می توانند از متدلوژی های سبک وزن به جای متدلوژی های سنگین مانند Rup استفاده کنند .

انواع متدلوژی ها سبک وزن :
XP(Extreme Programming)
Scrum
Crystal Family
FDD(Feature Driven Development)
Dynamic System Development
Adaptive Software Development
Open Source Software Development

سعی خواهم کرد بعدا در مورد هر کدام از این روش ها بیشتر صحبت کنم .
موفق باشید