Sunday, November 23, 2025

Software Development Methodologies

 

Sequential Methodologies

These models require each phase to be completed and signed off before the next one begins. They are best suited for projects with well-defined, stable requirements.

Methodology

Core Concept

Structure & Flow

Key Focus

Best For

Waterfall

Linear and sequential process.

Phases flow steadily downwards (Requirements-Design-Implementation-Testing-Deployment). No going back easily.

 

Upfront planning, detailed documentation, and fixed scope.

Projects with stable, well-known requirements

V-Model

Extension of Waterfall that emphasizes testing at every stage

Each development phase on the left side (Requirements, Design) corresponds to a specific testing phase on the right side (Acceptance, System, Integration, Unit Testing).

Verification (building the product right) and Validation (building the right product) are tightly linked.

High-quality, Safety-critical systems (medical, aviation, automotive)

Iterative and Incremental Methodologies

These are based on the Agile Manifesto principles, Lean manufacturing, prioritizing flexibility, collaboration, and rapid delivery in small increments.

Methodology

Core Concept

Structure & Flow

Key Focus

Best For

Lean

A philosophy (originating from manufacturing) that focuses on maximizing customer value while minimizing waste.

Focuses on seven principles, including eliminating waste (e.g., unnecessary features, delays), building quality in, and optimizing the whole.

Waste reduction, speed, and efficiency to deliver value faster.

Teams wanting high efficiency and minimal waste

Agile

An iterative and incremental approach focused on delivering value continuously

Delivers working software in short Cycles/iterations with continuous feedback and adaptation.

Customer collaboration, responding to change, and continuous delivery of value.

Projects with evolving requirements, Dynamic environments

Scrum

A framework within Agile with defined roles, ceremonies, and artifacts.

Work is done in fixed-length iterations called sprints (typically 2-4 weeks). Includes Daily Scrums, Sprint Planning, and Sprint Reviews.

Rapid delivery through short cycles, structured team roles (Scrum Master, Product Owner, Development Team), and continuous inspection.

Teams wanting predictable delivery cycles & strong collaboration

Kanban

A visual system that focuses on managing and improving workflow.

Work is visualized on a Kanban board (e.g., To Do, In Progress, Done). Key is to limit Work in Progress (WIP).

Continuous flow, efficiency, and reducing bottlenecks by visualizing work and limiting WIP.

Support and maintenance teams, Teams needing flexible, continuous delivery

Testing Philosophies

These are approaches to how and when testing is performed in the Software Development Life Cycle (SDLC), often applied within Agile/DevOps models.

Methodology

Core Concept

Structure & Flow

Key Focus

Best For

Shift-left

Move testing earlier in the development lifecycle (to the "left" side of the SDLC timeline).

Testing starts during the requirements and design phases (e.g., unit tests, integration tests, security scanning by developers).

Catch defects early, Find and fix defects proactively when they are cheapest and easiest to resolve.

Projects focusing on faster feedback

Shift-right

Extend testing into the production environment (to the "right" side of the SDLC timeline).

Testing is performed after deployment using real user conditions (e.g., A/B testing, Canary releases, production monitoring, user feedback).

Gain insights into real-world performance and user experience to validate quality and behavior in a live environment.

post-deployment scenarios where the goal is to test and monitor software in a real-world production environment

 

Collaborative and Automation Methodology

DevOps is not just a process but a cultural and operational transformation that unites development and operations.


Methodology

Core Concept

Structure & Flow

Key Focus

Best For

Shift-left

Move testing earlier in the development lifecycle (to the "left" side of the SDLC timeline).

Testing starts during the requirements and design phases (e.g., unit tests, integration tests, security scanning by developers).

Catch defects early, Find and fix defects proactively when they are cheapest and easiest to resolve.

Projects focusing on faster feedback

Shift-right

Extend testing into the production environment (to the "right" side of the SDLC timeline).

Testing is performed after deployment using real user conditions (e.g., A/B testing, Canary releases, production monitoring, user feedback).

Gain insights into real-world performance and user experience to validate quality and behavior in a live environment.

post-deployment scenarios where the goal is to test and monitor software in a real-world production environment