agile و waterfall

نگاهی به Agile و Waterfall

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

موفقیت یک پروژه توسعه نرم ‌افزار تا حد زیادی وابسته به روش توسعه‌ای است که برای آن انتخاب می‌شود. دو متدولوژی Agile و Waterfall در حال حاضر از محبوب‌‌ترین روش‌های SDLC هستند، از همین‌رو تیم توسعه‌دهنده همواره با این سؤال مواجه هستند: کدام‌یک را باید انتخاب کرد؟

اگر علاقه دارید در مورد این دو متدولوژی توسعه‌ی نرم‌افزار بیشتر بدانید، با ما همراه باشید.

مناسب می‌دانم در ابتدای امر توضیح مختصری درباره‌ی SDLC بدهم:

SDLC که اختصاریافته‌ی Software Development Life Cycle و به فارسی چرخه‌ی زندگی توسعه‌ی نرم‌ افزار است همانطور که از نامش پیداست دنباله‌ای از کارهایی است که برای تولید یک نرم‌ افزار انجام می‌شوند.

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

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

خب، بیایید با یک‌سری توضیح درباره‌ی هرکدام کار را شروع کنیم.

Agile

روش Agile یا چابک برای توسعه نرم‌افزار روی تکرارهای پیوسته و تست کردن طی فرایند کلی توسعه نرم‌افزار تمرکز دارد. این مدل SDLC تعامل میان مشتریان(کارفرمایان)، توسعه‌دهندگان و آزمایش‌کنندگان را افزایش داده است.

پاییز سال 2000 بود که جناب آقای Scott Ambler شروع به توسعه روش Agile کرد. البته آن اوایل نامش Agile نبود و با نام  Extreme Modelling و به اختصار XM معرفی شد اما بعدها به پیشنهاد آقای Robert Cecil Martin نام آن به Agile Modelling تغییر یافت.

 

روش Agile یا چابک

 

روش Agile متدی است که به برای توسعه نرم‌افزار به یک تیم احتیاج دارد. این روش؛ یکی از انواع مدل توسعه سریع برنامه کاربردی (RAD) است. اگرچه روش جدیدی نیست، اما در مقایسه با مدل قدیمی Waterfall نسبتاً جدیدتر است.

در این روش، به‌جای ایجاد برنامه‌ی زمانی و وظایفی که باید انجام شوند، کل زمان موجود برای یک پروژه به فازهایی به نام sprint تقسیم می‌شود.

هر sprint دو چیز را تعریف می‌کند:

  1. مدت‌زمانی را که معمولاً به‌صورت هفتگی است.
  2. لیستی از خروجی‌ها را که از زمان شروع sprint، برنامه‌ریزی‌شده است.

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

در برخی موارد که بنا به دلایلی کار برنامه‌ریزی‌شده برای یک sprint خاص تکمیل نمی‌شود، کل کار مجدداً اولویت‌بندی شده و از اطلاعات به‌دست‌آمده برای برنامه‌ریزی  sprint بعدی استفاده می‌شود.

در نهایت کار تکمیل‌شده، توسط اعضای تیم توسعه‌دهنده پروژه و مشتری بررسی می‌شود. این کار به‌صورت روزانه و در پایان دموی هر sprint انجام می‌شود.

سیستم‌ عامل چیست؟

 

مزایا

  • به عنوان یک فرایند مشتری مدار ، این اطمینان را می دهد که مشتری در کل مراحل و در هر مرحله بطور مداوم در جریان پروژه است.

  • اطمینان می دهد که کیفیت توسعه نرم افزار تا حد مطلوبی(یا حتی بهتر) حفظ می شود.

  • احساس مالکیت را به کارفرمایان القا می‌کند چون آن‌ها مستقیماً و بطور گسترده با  تیم توسعه‌دهنده‌ی پروژه در ارتباط هستند.

  • Agile می‌تواند یک نسخه پایه‌ای‌ از نرم‌افزار تحت توسعه تولید کند. که این برای بازاریابی نکته‌ی مثبت و مفیدی می‌باشد.

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

معایب

  • درمواردی که ناظر پروژه نسبت به خروجی‌ها اطمینان ندارد، خطر قابل‌توجهی پروژه را تهدید خواهد کرد.

  • مشارکت و حضور یک متخصص برای یک‌سری تصمیم‌گیری‌ها را ضروری می‌کند.

  • برای پروژه‌های با مقیاس کوچک مناسب نیست.

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

 

Waterfall

این مدل به‌عنوان رویکرد سنتی توسعه نرم‌افزار شناخته می‌شود. مدل Waterfall رویکردی خطی برای توسعه نرم‌افزار دارد. به‌همین دلیل با عنوان مدل چرخه زندگی خطی ترتیبی هم شناخته می‌شود.

اولین معرفی رسمی Waterfal، در مقاله‌ای در سال 1970 توسط Winston W.Royce انجام گرفته است. اما مقاله متعلق به Bell و Thayer که در سال 1976 منتشر شد، برای اولین بار مشخصات و ویژگی‌های Waterfall را بیان کرده است.

 

روش waterfall یا آبشاری

 

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

سیستم‌های توصیه‌گر

 

مزایا

  • مناسب برای مدیریت وابستگی‌ها.

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

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

  • هر مرحله خروجی‌ها و روند بررسی مجزایی دارد.

  • رویکرد کاملاً سازگاری برای تغییر تیم‌ها دارد.

  • خروجی‌ سریع‌تری از محصول ارائه می‌دهد.

  • برنامه‌ریزی و طراحی کاملاً شفاف است چون تیم توسعه‌دهنده و مشتری در ابتدا درمورد چیستی و چگونگی محصول نرم‌افزاری تحت توسعه توافق می‌کنند.

  • پیشرفت‌ها به‌راحتی قابل ‌سنجش و ارزیابی هستند چون طرح نهایی از قبل کاملاً مشخص‌شده است.

  • فرایندها و نتایج به‌خوبی مستند می‌شوند.

  • برای پروژه‌هایی که مقیاس کوچکی دارند، بسیار خوب کار می‌کند به‌ویژه پروژه‌هایی که ملزومات قابل‌درکی دارند.

معایب

  • احتمال بروز اشکالات و آسیب‌پذیری‌ها به‌ دلیل اینکه تست محصول تنها با پایان یافتن توسعه‌ی آن انجام میابد، بالا می‌باشد.

  • برای پروژه‌هایی با مقیاس بزرگ عملی نیست.

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

  • وقتی‌که ملزومات در ابتدای پروژه واضح نباشند، روش مناسبی نیست.

  • تصویر مبهمی ازآنچه مشتری در انتهای پروژه انتظار دارد، ارائه می‌دهد.


امیدوارم تا اینجا با این دو متد توسعه‌ی نرم افزار آشنایی خوبی پیدا کرده باشید. در آینده به این موضوع بیشتر خواهیم پرداخت.


 


 


ذخیره مقاله:

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




...

مهران زیدی

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

Working on ML


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



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

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


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

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


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

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


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


ارسال دیدگاه

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