PDA

View Full Version : متدلوژی های چابک Agile (مقاله)



whitehat
چهارشنبه 14 اردیبهشت 1384, 23:57 بعد از ظهر
سلام
در این مقاله سعی خواهم کرد که دوستان را با متدولوژی های 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
شنبه 17 اردیبهشت 1384, 13:18 بعد از ظهر
ممنون از اطلاعات خوبتون . امیدوارم ادامه داشته باشد . :flower:

mkalone
شنبه 17 اردیبهشت 1384, 18:38 بعد از ظهر
:flower:

afsharm
یکشنبه 17 آذر 1387, 14:55 بعد از ظهر
آیا در ایران تجربه‌ای در خصوص agile خصوصا با کمک Team Foundation Server وجود دارد یا نه؟

vcldeveloper
یکشنبه 17 آذر 1387, 15:45 بعد از ظهر
آیا در ایران تجربه‌ای در خصوص agile خصوصا با کمک Team Foundation Server وجود دارد یا نه؟
Team Foundation به خودی خود نقش خاصی در توسعه نرم افزار با استفاده از متدهای Agile نداره. هر تیم توسعه ایی، با هر متدی میتونه از قابلیت های ارائه شده در Team Foundation استفاده کنه. به عبارت دیگه، استفاده از Team Foundation در توسعه نرم افزار با یک متد Agile نه مزیت قابل ذکری فراهم میکنه، نه ضرر خاصی به پروژه میزنه.
خلاصه بگم، بخش "با کمک Team Foundation Server" در سوال شما تاثیری نداره.

Mamdos
چهارشنبه 20 آذر 1387, 03:54 قبل از ظهر
این مقاله (http://www.raydana.com/c/document_library/get_file?folderId=20798&name=DLFE-401.pdf)‌ی فارسی (۱۵۵ کیلوبایت PDF) عنوانش هست: «چرخه‌ی حیات عمومی تولید سیستم در متدولوژی‌های چابک». سعی کرده با مقایسه‌ی متدولوژی‌های معروف چابک یک چرخه‌ی حیات عمومی برای این متدولوژی‌ها پیشنهاد کنه. ضمناً برای آشنایی پیدا کردن با متدولوژی‌های چابک هم بد نیست مخصوصاً از این جهت که فارسی و نسبتاً روان نوشته شده.

afsharm
پنجشنبه 21 آذر 1387, 07:27 قبل از ظهر
این مقاله (http://www.raydana.com/c/document_library/get_file?folderId=20798&name=DLFE-401.pdf)‌ی فارسی (۱۵۵ کیلوبایت PDF) عنوانش هست: «چرخه‌ی حیات عمومی تولید سیستم در متدولوژی‌های چابک». سعی کرده با مقایسه‌ی متدولوژی‌های معروف چابک یک چرخه‌ی حیات عمومی برای این متدولوژی‌ها پیشنهاد کنه. ضمناً برای آشنایی پیدا کردن با متدولوژی‌های چابک هم بد نیست مخصوصاً از این جهت که فارسی و نسبتاً روان نوشته شده.

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

azi1362
سه شنبه 13 مرداد 1388, 13:31 بعد از ظهر
سلام ممنون از مطالبتون
ميشه درباره متدولوژيهاي كلاسيك هم كمي صحبت كنيد

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

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

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

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

javadbayani
یکشنبه 25 مرداد 1388, 15:57 بعد از ظهر
من پروسه كامل آناليز يك پروژه ساده در Extreme Programming رو ميخوام . البته كامل كامل هم نباشه مهم نيست ولي در حدي باشه كه بتونم باهاش يك پروژه اصلي رو شروع كنم و از اون الگو برداري كرده و تجربه ام رو ارتقاء بدم.

cups_of_java
سه شنبه 27 مرداد 1388, 12:19 بعد از ظهر
همون دوتا کتابی که معرفی کردم رو بخونید جزییات کار رو می بینید.

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

arammohammadi1357
چهارشنبه 11 مرداد 1391, 22:59 بعد از ظهر
salam
سلام مقاله در مورد مقایسه متدولوژی های چاپک نیاز دارم توسایت دانلودنشد
مرسی