# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > تحلیل و طراحی نرم افزار >  متدلوژی های چابک Agile (مقاله)

## whitehat

سلام
در این مقاله سعی خواهم کرد که دوستان را با متدولوژی های 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 

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

----------


## tayebeh

ممنون از اطلاعات خوبتون . امیدوارم ادامه داشته باشد . :flower:

----------


## mkalone

:flower:

----------


## afsharm

آیا در ایران تجربه‌ای در خصوص agile خصوصا با کمک Team Foundation Server وجود دارد یا نه؟

----------


## vcldeveloper

> آیا در ایران تجربه‌ای در خصوص agile خصوصا با کمک Team Foundation Server وجود دارد یا نه؟


Team Foundation به خودی خود نقش خاصی در توسعه نرم افزار با استفاده از متدهای Agile نداره. هر تیم توسعه ایی، با هر متدی میتونه از قابلیت های ارائه شده در Team Foundation استفاده کنه. به عبارت دیگه، استفاده از Team Foundation در توسعه نرم افزار با یک متد Agile نه مزیت قابل ذکری فراهم میکنه، نه ضرر خاصی به پروژه میزنه.
خلاصه بگم، بخش "_با کمک Team Foundation Server_" در سوال شما تاثیری نداره.

----------


## Mamdos

این مقاله‌ی فارسی (۱۵۵ کیلوبایت PDF) عنوانش هست: «چرخه‌ی حیات عمومی تولید سیستم در متدولوژی‌های چابک». سعی کرده با مقایسه‌ی متدولوژی‌های معروف چابک یک چرخه‌ی حیات عمومی برای این متدولوژی‌ها پیشنهاد کنه. ضمناً برای آشنایی پیدا کردن با متدولوژی‌های چابک هم بد نیست مخصوصاً از این جهت که فارسی و نسبتاً روان نوشته شده.

----------


## afsharm

> این مقاله‌ی فارسی (۱۵۵ کیلوبایت PDF) عنوانش هست: «چرخه‌ی حیات عمومی تولید سیستم در متدولوژی‌های چابک». سعی کرده با مقایسه‌ی متدولوژی‌های معروف چابک یک چرخه‌ی حیات عمومی برای این متدولوژی‌ها پیشنهاد کنه. ضمناً برای آشنایی پیدا کردن با متدولوژی‌های چابک هم بد نیست مخصوصاً از این جهت که فارسی و نسبتاً روان نوشته شده.


این فایل درست pdf نشده و قابل خواندن نیست.

----------


## azi1362

سلام ممنون از مطالبتون 
ميشه درباره  متدولوژيهاي كلاسيك هم كمي صحبت كنيد

----------


## javadbayani

سلام،من در اين مورد تازه كارم لطفا اگر امكان داشته باشه يك نمونه كوچك از يك پروژه كه با متدولوژي Agile XP نوشته شده ارائه نماييد .زبان برنامه نويسي مورد استفاده جهت پياده سازي مهم نيست.من اشكال عمده اي در بخش آناليز مخصوصا در ايجاد User Story ها دارم. لطفا راهنمائي بفرماييد.

----------


## cups_of_java

> سلام،من در اين مورد تازه كارم لطفا اگر امكان داشته باشه يك نمونه كوچك از يك پروژه كه با متدولوژي Agile XP نوشته شده ارائه نماييد .زبان برنامه نويسي مورد استفاده جهت پياده سازي مهم نيست.من اشكال عمده اي در بخش آناليز مخصوصا در ايجاد User Story ها دارم. لطفا راهنمائي بفرماييد.


 تو گوگل اگه بگردین حتمن نمونه و case Study پیدا می کنید. کتاب های
 Extreme Programming Explained
و
Addison Wesley - User Stories Applied for Agile Software Development
نمونه ها و اطلاعات خوبی در این زمینه دارن.

باز به طور خاص مشکلتون رو بگید شاید بتونیم جواب مشخصی بهش بدیم.

----------


## javadbayani

من پروسه كامل آناليز يك پروژه ساده در Extreme Programming رو ميخوام . البته كامل كامل هم نباشه مهم نيست ولي در حدي باشه كه بتونم باهاش يك پروژه اصلي رو شروع كنم و از اون الگو برداري كرده و تجربه ام رو ارتقاء بدم.

----------


## cups_of_java

همون دوتا کتابی که معرفی کردم رو بخونید جزییات کار رو می بینید.

به طور کلی باید در این مرحله storyها رو بنویسید - اون ها رو تخمین بزنید و برنامه ریزی کنید  - تسک ها رو معلوم کنید روی Task Cardها (Backlog رو مشخص کنید)- CRC کارد های مربوط به آنالیز رو در بیارید - اگه دقت کار بالاست تست های Acceptance رو در بیارید و تثبیت کنید و ...

----------


## arammohammadi1357

salam
سلام مقاله در مورد مقایسه متدولوژی های چاپک نیاز دارم توسایت دانلودنشد
مرسی

----------


## samira.arfaee

سلام

کسی پروژه ی آماده ای که با agile مدیریت شه باشه داره؟ تو جیرا کسی کار کرده؟

----------


## maede72

سلام ،دلیل نامگذاری این نوع متدلوژی به چابک به خاطر سرعت بالای اون هست یا دلیل دیگه ای هم دارد؟
اگر دلیل دیگری دارد لطفا بگید .ممنون

----------


## Undox13

*Hi dear members
I really cant understand what is the meaning of the characters below

בוענרהתישארתהפגךםצזדד הץאיסטמפןלנשרתךטןזדםמפחאנ  רנננמעצהב לבשקאגץתסננטףכץסכ גהפ

Here is the refrence


Innocence ->* Listen Here




Sincerely yours

----------

