Agile در برابر Waterfall

Agile در برابر Waterfall

وب و نرم افزار/ توسعه نرم افزار سه شنبه, 25 آذر 1399 مهران زیدی

 در مطلب نگاهی به Agile و Waterfall علاوه بر معرفی این دو متدولوژی توسعه نرم‌افزار، به بررسی ویژگی‌های هرکدام نیز پرداختیم و گفتیم که موفقیت یک پروژه توسعه نرم ‌افزار تا حد زیادی وابسته به روش توسعه‌ای است که برای آن انتخاب می‌شود.

حال در این مطلب قصد داریم تماشاگر رویارویی این دو متدولوژی باشیم! پس با ما همراه باشید.

 

مدل‌های توسعه نرم‌افزار

 

Agile در برابر Waterfall:

تفاوت‌هایی که درباره‌ی Agile و waterfall باید بدانیم به شرح زیر هستند:

سطح انعطاف‌پذیری

مدل Waterfall یک متدولوژی توسعه نرم‌افزار ساختاریافته است. قبلا اشاره کرده بودیم که متدولوژی ‌Waterfall  توان پوشش تغییرات بعدی را ندارد، که بالطبع باعث می‌شود انعطاف‌پذیری کم و یا حتی هیچ انعطاف‌پذیری نداشته باشد. در مقابل Agile، Waterfall سطح انعطاف‌پذیری بالایی دارد  که یکی از اولین دلایل برای انتخاب رویکرد Agile است.

رویکرد Agile اجازه اعمال تغییرات در ملزومات پروژه را حتی بعد از اینکه طرح اولیه تکمیل‌شده است، می‌دهد. اما در مورد مدل Waterfall باید بگوییم هیچ امکانی برای تغییر ملزومات، زمانی که روند توسعه پروژه آغاز می‌شود، فراهم نمی‌کند.

 

تقسیم کل فرایند

متدولوژی Agile کل چرخه زندگی توسعه نرم‌افزار(SDLC) را به sprint‌ها تقسیم می‌کند. اما در Waterfall خبری از چنین‌کاری نیست.

 

sprint مدل agile

 

اولویت بودجه و منابع

ازآنجاکه توافقات مربوط به ریسک در ابتدای فرایند توسعه نرم‌افزار انجام می‌شود، رویکرد Waterfall ریسک کلی را در پروژه‌های با قیمت ثابت کاهش می‌دهد.

اما مدل Agile برای پروژه‌های با قیمت ثابت مناسب نیست. فرایندهای با قیمت ثابت، باعث افزایش استرس در پروژه Agile می‌شوند. رویکرد Agile بهترین روش برای پروژه‌هایی با بودجه‌های متغیر و یا از نوع بودجه‌ی زمان و مواد (T&M) است.

 

اجرای مراحل

ازآنجایی‌که مدل Agile یک روش توسعه براساس تکرار را دنبال می‌کند، مراحل مختلف مثل برنامه‌ریزی، توسعه و نمونه‌سازی ممکن است بیش از یک بار در کل فرایند توسعه نرم‌افزار ظاهر شوند.

در رویکرد Waterfall برای توسعه نرم‌افزار، تمام مراحل تنها یک‌بار طی فرایند کلی اجرا می‌شوند.

 

یادگیری تقویتی چیست؟

 

آماده‌سازی ملزومات

در رویکرد Waterfall، جهت آماده‌سازی ملزومات برای توسعه پروژه نرم‌افزاری نیاز به تجزیه و تحلیل‌های تجاری گسترده است. و هیچ لزومی در مشارکت اعضای تیم توسعه در شناخت نیازهای پروژه وجود ندارد.

در رویکرد Agile، کارفرما نیز همانند اعضای تیم توسعه، تقریباً هرروز کنار هم می‌نشینند تا ملزومات پروژه را فراهم کنند. اعضای تیم تست هم برای تغییر ملزومات مشارکت دارند.

 

ملزومات مدل چابک و آبشاری

 

تمرکز اصلی

تمرکز اصلی رویکرد Waterfall دستیابی به یک محصول است. اما در متدولوژی Agile تمرکز اصلی جلب رضایت مشتری از محصول است و مطابق با نیازهای به‌روز مشتری تغییرات را اعمال می‌کند.

هدف مدل agile و waterfall

توصیف جزئیات پروژه

همانطور که قبل‌تر هم دیده بودیم، در رویکرد Agile می‌توان در هر زمان از فرایند توسعه نرم‌افزار، توصیفات جزئیات پروژه را تغییر داد.

برخلاف Agile، این موضوع در مدل Waterfall که هیچ شرطی برای تغییر توصیفات پروژه پس از شروع روند توسعه ندارد، صدق نمی‌کند.

 

چشم‌انداز پروژه

در رویکرد Waterfall پروژه توسعه نرم‌افزار مانند یک پروژه تکی است. این کاملاً با روش Agile که با پروژه نرم‌افزار تحت توسعه، مانند تعدادی زیر-پروژه مختلف برخورد می‌کند، تفاوت دارد.

 

شیء گرایی - قسمت اول

 

هماهنگی تیم

هماهنگی تیم یا هم‌زمانی در رویکرد Waterfall بسیار محدود است. در واقع  پیشنهادی برای اندازه تیم وجود ندارد. در مقابل، مدل Agile یک تیم کوچک اما متخصص را ترجیح می‌دهد. ازاین‌رو، سطح همکاری بین اعضای تیم بسیار بالاست.

 

قابلیت تعویض تیم

اعضای تیم Agile قابل تعویض هستند. ازهمین‌رو آن‌ها سریع‌تر کار می‌کنند. علاوه براین، این متدولوژی توسعه نرم‌افزار، لزوم داشتن مدیر پروژه را از بین می‌برد، چون کل تیم مسئولیت مدیریت پروژه نرم‌افزاری را برعهده دارند.

در رویکرد Waterfall، مدیر پروژه مسئول زدن حرف آخر در تمام مراحل توسعه نرم‌افزار است. علاوه براین تعویض اعضای تیم ممکن نیست.

 

تیم توسعه نرم‌افزار مدل چابک

 

تست

روش Waterfall یک مرحله تخصصی تست دارد که بعد از اتمام موفقیت‌آمیز مرحله توسعه، آغاز می‌شود. در رویکرد Agile، تست، هم‌زمان با توسعه نرم‌افزار انجام می‌شود.

 

انواع ملزومات

ملزومات مربوط به روش Waterfall قطعی هستند، به این معنی که هر تغییری، غیرمنتظره است. از طرف دیگر، Agile، برای هر پروژه‌ای که تغییرات در ملزوماتش قابل‌انتظار باشد، بسیار مناسب است.

 

مهاجرت به لینوکس

 

روش برخورد

مدل Agile یک رویکرد افزایشی برای توسعه نرم‌افزار را دنبال می‌کند. مواردی که باید به نرم‌افزار افزوده شوند، به‌صورت افزایشی انجام می‌گیرند و امکان پرش بین قسمت‌های مختلف فرایند توسعه نرم‌افزار وجود دارد.

ازطرف دیگر، متدولوژی Waterfall یک فرایند ترتیبی طراحی را دنبال می‌کند. رفتن به مراحل دیگر فرایند توسعه، تنها زمانی امکان‌پذیر است که مرحله قبلی با موفقیت به اتمام رسیده باشد.

 

و در آخر برویم به‌سراغ نتیجه:

روش‌های Agile و Waterfall دو متدولوژی متفاوت برای توسعه‌ی نرم‌افزار هستند و انتخاب هرکدام کاملا به نوع پروژه بستگی دارد. هرکدام از آن‌ها برای بعضی موارد مناسب و برای بعضی دیگر عملا غیرقابل استفاده هستند.

برای پروژه‌های توسعه نرم‌افزاری که ملزومات درحال تکامل و یا غیرقطعی دارند، روش Agile ایده‌آل است. در مقابل، روش Waterfall برای پروژه‌های کوچک‌تر توسعه نرم‌افزار با ملزومات مشخص و قطعی، بهترین روش است. 

 


ذخیره مقاله:

اشتراک گذاری:




...

مهران زیدی

هم-بنیان‌گذار و عضو ارشد CGC

Working on ML


مطالب پیشنهادی



              
                 انواع پردازنده
انواع پردازنده(CPU)

اگر به دنبال پردازنده مناسب برای کامپیوتر شخصی خود هستید و نمیتوانید تصمیم بگیرید چه پردازنده‌ای انتخاب کنید چون اطلاعات کافی درباره هر کدام از آنها ندارید این مقاله به شما کمک خواهد کرد تا انتخابی انجام دهید که مورد رضایت شما باشد.


              
                 امنیت شبکه لایه بندی شده
امنیت شبکه لایه بندی شده (قسمت دوم)

پیش از این در مورد امنیت شبکه لایه بندی صحبت کردیم. در این مطلب موارد باقی مانده را ذکر میکنیم و با تکنولوژی‌های IDS و IPS آشنا خواهیم شد. اگر به شبکه علاقه مند هستید این مطلب را پیشنهاد می‌کنیم.


              
                 نرم افزار ادیت عکس
پنج اپلیکیشن کاربردی ادیت و طراحی عکس ساده برای کاربران آماتور

در این مطلب از جامعه گیک‌های کامپیوتر 5 مورد از بهترین اپلیکیشن‌ها و نرم افزارها که برای ادیت تصاویر استفاده می‌شوند را معرفی می‌کنیم.


نظری برای نمایش وجود ندارد. شما اولین نظر باشید.


ارسال دیدگاه

برای ثبت دیدگاه باید ابتدا وارد شوید