دسته بندی : توسعه نرم‌افزار - software development

نوشته شده در 1396/03/09

۱. Agile

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

چه زمانی از آن استفاده کنیم

  • تیم توسعه شما نزدیک هم در مکان فیزیکی یکسان کار می‌کنند.

  • فرهنگ توسعه شما یک رویکرد توسعه، تست و انتشار سریع را ترویج می‌دهد.

  • پروژه شما نیازمند توسعه منظم و مداوم ارتقاها و بروزرسانی‌ها است.

اصول Agile

  • رضایت مشتری از طریق تحویل سریع نرم‌افزار مفید
  • استقبال از تغییرات نیازمندی‌ها، حتی در اواخر توسعه
  • نرم‌افزار زود به زود تحویل داده می‌شود. (هفتگی به جای ماهانه)
  • نرم‌افزار مقیاس اصلی پیشرفت است.
  • توسعهٔ پایدار، قادر به حفظ سرعت ثابت است.
  • همکاری نزدیک و روزانه بین افراد کسب‌وکار و تیم توسعه
  • مکالمهٔ رو در رو بهترین شکل ارتباطات است. (محل مشترک)
  • پروژه‌ها در اطراف افراد باانگیزه، که باید به آنها اعتماد کرد، شکل می‌گیرند.
  • توجه مستمر به برتری فنی و طراحی خوب
  • سادگی - هنر به حداکثر رساندن کارهای انجام‌نشده - ضروری است.
  • تیم‌های خودسازمان‌ده
  • انطباق با تغییرات محدودیت‌ها به طور منظم

 

۲. Scrum

چارچوب یا فرایند مدل اسکرام یک چارچوب تکرارپذیر و افزایشی برای کنترل پروژه (مدیریت نرم‌افزار) است که معمولاً در زیر شاخه مدل فرایند تولید نرم‌افزار چابک و سریع است؛ و یک نوع مدل تولید نرم‌افزار در مهندسی نرم‌افزار به‌حساب می‌آید.

اسکرام یک چارچوب تولید نرم‌افزار از سری روش‌های تفکر چابک (Agile) می‌باشد.

مثل تمام متدولوژی‌های افزایشی و تکراری در اسکرام نیز دوره‌های زمانی یا iteration داریم که در طی آن‌ها محصول نهایی پروژه به تدریج تکمیل می‌شود. این دوره‌های زمانی را در اسکرام اصطلاحاً sprint می‌نامند (وظایف توسعه در چرخه‌های کوتاه به نام sprint انجام می‌شوند.).

یک چیز خوب درباره این متدولوژی، کاربرد آن به طور متوالی برای تمام پروژه‌ها است. اساساً این روش توسعه عالی برای پروژه‌های توسعه‌ای مناسب است که دائماً در حال تغییر یا نیازمند توسعه شدید (سخت) هستند.

این روش با یک برنامه‌ریزی زودگذر، گفتگو شروع شده و با یک بازبینی پایانی کامل می‌شود.

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

این یک رویکرد کامل (عالی) است زیرا بی‌دردسر موجب پیگیری پروژه‌های در حال پیشرفت می‌شود.

مزایا

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

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

  • هنگام مواجه‌شدن با موانع، آن‌ها برداشته و مدیریت می‌شوند.

  • سند نیازمندی کسب‌وکار، بی اهمیت در نظر گرفته می‌شود.

معایب

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

  • نیازمند تیم بسیار متخصص است و هیچ جایی برای تازه‌کارها نیست.

چه زمانی از آن استفاده کنیم

  • پروژه شما طولانی است و می‌خواهد از فعالیت‌های از قبل برنامه‌ریزی‌شده و ساخت‌یافته توسعه بهره‌مند شود.

  • با sprintهای به طور میانگین ۲ تا ۴ هفته‌ای، وظایف در یک برنامه منظم انجام می‌شوند که نشان‌دادن پیشرفت را به سرمایه‌گذاران و صاحبان پروژه آسان می‌کند.

  • شما می‌خواهید که توسعه‌دهندگان احساس کنند که در پروژه سرمایه‌گذاری کرده‌اند و مسئول موفقیت آن هستند.

گام اول در اسکرام، نوشتن و تخمین داستان کاربر (User Story) است. User Storyها نیازهای کاربر به زبان ساده کاربر بدون جزئیات خیلی زیاد است. معمولاً User Storyها در قالب زیر نوشته می‌شوند:

به عنوان یک <کاربر> من می‌خواهم تا <یک عمل را انجام دهم> تا <به چیزی برسم>

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

 

۳. Spiral

این روش توسعه، برای کاهش ریسک طراحی شده است، پروژه‌های spiral همیشه با اکتشاف شروع می‌شوند. این رویکرد وظیفه‌شناس تضمین می‌کند که هر گام بعدی در فرآیند توسعه شامل تصمیم‌گیری آگاهانه برای ادامه باشد.

مزایا

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

  • نیازمندی‌ها دائماً پالایش (اصلاح) می‌شوند و در حال تکامل برای بهترین خدمت‌رسانی به قابلیت‌های (عملکردهای) مورد نیاز از محصول نهایی هستند.

  • عامل ریسک به طور قابل توجهی کاهش می‌یابد.

  • اجازه افزودن قابلیت‌های اضافی در آینده را می‌دهد.

  • مناسب برای پروژه‌های بسیار ریسکی با نیازهای مختلف تجاری

معایب

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

  • عدم موفقیت در مرحله تحلیل ریسک ممکن است به تمام پروژه آسیب بزند.

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

  • ممکن است ادامه پیدا کند و هرگز تمام نشود.

چه زمانی از آن استفاده کنیم

  • پروژه شما توسط سیستم‌های فرعی (کمکی) تحت تأثیر قرار گرفته است که ریسک و متغیرهای ناشناخته را در طرح توسعه شما وارد می‌کند.

  • موفقیت محصول نهایی شما با خرید مشتری تعیین می‌شود.

  • امنیت یک نگرانی مهم است.

 

۴. Waterfall

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

مزایا

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

  • اجازه کنترل شدید مدیریتی را می‌دهد.

چه زمانی از آن استفاده کنیم

  • پروژه شما کوچک است، نیازمندی‌ها به راحتی شناسایی می‌شوند، دامنه (محدوده توسعه) به شدت کنترل می‌شود و شما یک بازه زمانی کوتاه دارید.

  • شما بودجه محدودی دارید.

  • زمان‌های توسعه سریع یک اولویت نیست.

  • سازمان شما متکی بر فرآیندهای قدیمی است که به طور گسترده استفاده می‌شود و نمی‌تواند به سرعت تغییر کند.

 

۵. Rapid Application Development (RAD)

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

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

مزایا

  • تمام فرایند توسعه را بی‌دردسر می‌کند.

  • به مشتری در گرفتن بررسی‌های سریع کمک می‌کند.

  • از بازخوردهای مشتری‌ها برای بهبود پشتیبانی می‌کند.

معایب

  • برای کارایی وابسته به تیم است.

  • کار روی سیستم پیمانه‌ای‌شده (ماژولار) در این روش محدود شده است.

  • به پرسنل بسیار ماهر برای اداره پیچیدگی‌ها نیاز دارد.

  • برای پروژه‌های با بودجه کم (پروژه‌های کوچک) مناسب نیست.

 

۶. Rational Unified Process (RUP)

این یک روش توسعه مبتنی بر شئ و برنامه وب است.

مزایا

  • تمرکز بالا روی مستندات دقیق

  • ریسک‌های پروژه مرتبط با نیازهای در حال تغییر (تکامل) مشتری را حذف می‌کند.

  • نیاز خیلی کم برای یکپارچه‌سازی پروژه

معایب

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

  • روند توسعه این روش پیچیده است.

  • یکپارچه‌سازی ممکن است باعث سردرگمی شود.

  • برای فهمیدن بسیار پیچیده است.

نظرات 2

amirhossein . 1398/05/08

میتوانید منابع معتبری برای این مقالع ارائه کنید؟

صحرا . 1398/07/17

ممنون از مطلب خوبی که گذاشتید. با اولین چت بات هوشمند ایرانی کاسکو آشنا بشید و با اون حرف بزنید : http://kascobot.ir/

ارسال نظر