Skip to main content

Methodologies

Updated Jan 30, 2024 ·

SDLC

The software development life cycle (SDLC) outlines the process of developing software from an initial idea to delivery. It typically consists of six phases, where each phase builds on the previous one.

  1. Requirements & Analysis
  2. Design
  3. Implementation
  4. Testing
  5. Deployment
  6. Maintenance

For more information, please see Software Development Lifecycle

Waterfall Methodology

The Waterfall model is a traditional sequential approach to software development.

  • Classic linear approach to development.
  • Best for projects with stable requirements
  • Changes are difficult once a phase is done.

Waterfall follows sequential phases:

Requirements ➔ Design ➔ Implementation ➔ Testing ➔ Deployment.

For more information, please see Waterfall Model

Spiral Methodology

The Spiral Model improves on the Waterfall approach by using an iterative process that focuses on risk management.

  • Each cycle includes planning, risk analysis, engineering, and evaluation.
  • Suitable for high-risk or complex projects.

For more information, please see Spiral Model

Agile Methodology

The Agile Methodology is an iterative approach emphasizing collaboration and adaptability.

  • Adaptive planning, continuous delivery, and stakeholder feedback.
  • Frameworks include Scrum and Kanban.

Agile methodology does not use prototypes to represent the full product but breaks the product down into individual features that are continuously being delivered.

For more information, please see Agile.

Extreme Programming (XP)

Extreme Programming (XP) emphasizes high quality, adaptability, and close collaboration.

  • Agile approach focused on quality and responsiveness.
  • Uses pair programming, test-driven development, and frequent releases.
  • Encourages continuous feedback and collaboration.

Other Methodologies

Other approaches to software development:

ModelDescription
Incremental ModelDevelops software in small functional increments.
Rapid PrototypingQuickly builds a prototype to clarify requirements.
Cleanroom ModelFocuses on preventing defects rather than fixing them.
Reuse ModelUses existing components to speed up development.
Exploratory ModelUses an informal, trial-and-error approach.
Joint Application Development (JAD)Uses workshops with developers and users.
Rapid Application Development (RAD)Enables fast development with iterative prototypes.

For more information, please see Software Methodologies