Guide

The Software Development Life Cycle (SDLC) Explained

The stages every software project goes through — and how modern teams run them in short, iterative cycles.

What the SDLC is

The software development life cycle (SDLC) is the structured process teams follow to plan, design, build, test, release and maintain software. Whatever the methodology, the same core activities appear in every successful project. What differs is how they are sequenced: all at once in long phases, or repeatedly in short cycles.

The seven phases

  1. 1. Planning

    Goals, scope, budget, risks and feasibility.

  2. 2. Requirements

    User needs, features, constraints and acceptance criteria.

  3. 3. Design

    Architecture, data models, UX flows and interface design.

  4. 4. Development

    Writing code, code reviews and continuous integration.

  5. 5. Testing

    Unit, integration, end-to-end, performance and security testing.

  6. 6. Deployment

    Releasing to production with monitoring and rollback plans.

  7. 7. Maintenance

    Fixes, updates, improvements and eventual retirement.

Model How it works Best for
Waterfall Each phase completed before the next begins Fixed, well-understood requirements; regulated documentation
Agile / Scrum Short sprints delivering working software Most products where requirements evolve
Kanban Continuous flow with work-in-progress limits Support, maintenance and ops teams
Iterative / incremental Product built in increments with feedback Large systems delivered in stages
DevOps Development and operations integrated with automation Teams releasing frequently

Why most teams use Agile

Agile methods accept that requirements change as teams and customers learn. Working software every one or two weeks lets stakeholders give feedback early, reduces the risk of building the wrong thing and makes progress visible. Agile still includes planning, design and testing — they simply happen continuously in smaller pieces rather than once in long phases.

Security and quality across the life cycle

  • Security requirements and threat modelling during planning and design
  • Code review, static analysis and automated tests during development
  • Performance, accessibility and security testing before release
  • Monitoring, patching and incident response during maintenance

What each phase produces

Phase Typical deliverables
Planning Project goals, high-level scope, budget range, risk list
Requirements User stories, acceptance criteria, non-functional requirements
Design Architecture diagram, data model, wireframes and UI designs
Development Working code, code reviews, automated tests, technical documentation
Testing Test plans, test results, defect reports, performance and security findings
Deployment Release notes, deployment pipeline, rollback plan, monitoring
Maintenance Incident reports, patches, improvement backlog

Walk-through: one feature through an Agile cycle

Take a feature such as “customers can download invoices as PDF”. In planning, the product owner adds it to the backlog with a business reason. During backlog refinement it becomes a user story with requirements and acceptance criteria: which invoices, which format, who can access them. A designer adds a download button to the existing screen and a developer sketches the design: generate PDFs on demand, cache them, check permissions.

In the sprint, development and testing happen together: unit tests for the PDF generator, an integration test for permissions and an end-to-end test for the download. After code review, the change merges and the CI pipeline deploys it to staging, then to production behind a feature flag. Monitoring confirms no errors, the flag is turned on for everyone and the feature enters maintenance. Every SDLC phase happened — in days rather than months.

Roles across the life cycle

Role Main contribution
Product owner Sets priorities, defines value, accepts finished work
Business analyst Clarifies requirements and processes
Designer User research, flows and interface design
Developers Design, build and test the software
QA engineer Test strategy, automation and exploratory testing
DevOps engineer Pipelines, infrastructure, monitoring and reliability
Project or delivery manager Planning, coordination, risks and reporting

On smaller teams, one person often covers several roles. What matters is that every responsibility has an owner.

Choosing a model for your project

  • Requirements likely to change? Choose Agile.
  • Strict regulatory documentation and fixed scope? Consider Waterfall or a hybrid with formal stage gates.
  • Mostly support and small changes? Kanban keeps work flowing.
  • Large system with a fixed launch date? Iterative delivery with a clearly prioritised first release.
  • Releasing frequently? Add DevOps practices — automation, monitoring and small changes — to whichever model you choose.

SDLC artefacts checklist

Regardless of methodology, a healthy project leaves a trail that helps future teams understand and change the software:

  • A prioritised backlog with clear acceptance criteria
  • Architecture and data model documentation kept up to date
  • Version control history with meaningful commit messages and reviews
  • Automated test suites running on every change
  • Release notes for each deployment
  • Runbooks for deployment, monitoring and incident response

Common SDLC mistakes

  • Skipping discovery and starting development with vague requirements
  • Treating testing as a phase at the end instead of continuous work
  • Calling it Agile but delivering nothing usable until the end
  • Releasing without monitoring or a rollback plan
  • Forgetting that maintenance is part of the life cycle and needs budget

Waterfall, Agile and hybrid compared in detail

Aspect Waterfall Agile (Scrum) Hybrid
Planning Detailed plan up front High-level roadmap; detailed planning each sprint Fixed milestones; flexible detail inside them
Requirements Signed off before design Evolve through backlog refinement Core scope fixed; details evolve
Delivery One release at the end Working software every 1–2 weeks Incremental releases towards milestones
Change Formal change control Expected and welcomed Allowed within milestone scope
Customer involvement Heavy at start and end Continuous Regular reviews at milestones and sprints
Typical fit Regulated, well-understood, fixed scope Products with evolving requirements Fixed-budget projects that still need feedback

DevSecOps: building security into every phase

Traditional life cycles treated security as a test at the end. Modern teams build it in throughout, an approach often called “shifting left”. Finding a design flaw in a review takes a conversation; finding it in production can take an incident response.

Phase Security activity
Planning Identify sensitive data, compliance requirements and security goals
Design Threat modelling: what could go wrong and how the design prevents it
Development Secure coding standards, peer review and secrets management
Build Automated dependency scanning and static analysis in the CI pipeline
Testing Dynamic scanning, and penetration testing for high-risk systems
Release Infrastructure hardening, least-privilege access, audit logging
Operations Patching, monitoring, alerting and incident response drills

See application security for how we apply these practices.

Measuring how well your life cycle works

A life cycle is only useful if it delivers working software reliably. Four delivery metrics, popularised by DevOps research, give a balanced view of speed and stability:

  • Deployment frequency: how often changes reach production.
  • Lead time for changes: how long it takes from code committed to code running in production.
  • Change failure rate: the share of deployments that cause a problem needing a fix.
  • Time to restore: how quickly service recovers after a failure.

Track trends rather than chasing targets. A team that releases more often with fewer failures over time has a healthy process, whichever methodology it uses.

Glossary of SDLC terms

Term Meaning
Backlog Prioritised list of work still to be done
Sprint A fixed period, often two weeks, in which a team delivers a set of work
User story A requirement written from the user’s point of view
Acceptance criteria Conditions a feature must meet to be considered done
Definition of done The quality checklist every piece of work must pass
CI/CD Continuous integration and delivery: automated building, testing and deployment
UAT User acceptance testing by the business before release
Technical debt Shortcuts that make future changes slower or riskier

Questions to ask about a vendor’s process

  • How long are your iterations, and what do we see at the end of each one?
  • How are requirements captured, prioritised and changed?
  • What does your definition of done include? Tests, review, documentation?
  • How do code changes reach production, and how are they rolled back?
  • When do we take part in testing and acceptance?
  • What happens after launch, and who handles maintenance?

Adapting the life cycle to project size

The same phases apply to a two-week feature and a two-year platform, but the ceremony around them should scale with risk and team size.

Project size What the life cycle looks like
Small change or feature A ticket with acceptance criteria, code review, automated tests and a normal deployment
New product or MVP A discovery phase, design prototypes, two-week sprints, a staging environment and a planned launch
Large platform or replacement Architecture decision records, phased releases, formal UAT, a data migration plan and cut-over rehearsals
Regulated system All of the above plus traceability from requirement to test and documented change approval

How long each phase takes in practice

Durations vary widely, but as a rule of thumb for a typical business application built by a small team: discovery and requirements take two to four weeks, design overlaps with the first sprints, development runs in two-week sprints for several months, and a release-hardening period of one to two weeks precedes launch. Maintenance then continues for the life of the system and usually costs more in total than the initial build.

Where the life cycle usually breaks down

Most problems in delivery come from the handoffs between phases rather than the phases themselves: requirements that designers interpret differently, designs that developers cannot build as drawn, features that pass tests but fail user acceptance, and releases that operations teams were not prepared for. Short feedback loops are the cure. Involve developers in design reviews, testers in requirement discussions and operations in release planning, so each handoff becomes a conversation rather than a surprise.

Documentation by phase: how much is enough?

Documentation is often either neglected or produced for its own sake. A practical rule of thumb is to write what the next person needs to make a good decision — no more.

Phase Lightweight project Regulated or large project
Planning One-page brief and success measures Business case, risk register, approvals
Requirements User stories with acceptance criteria Traceable requirements specification
Design Architecture sketch and key decisions Architecture document, threat model, data flows
Testing Automated test suite and release checklist Test plans, evidence and sign-offs
Maintenance Runbook and README Operations manual, change records, audit trail

Rules of thumb; adapt to your organisation and regulator.

How the life cycle changes for AI features

Products that include machine learning or large language models follow the same phases with a few additions. Requirements must define acceptable error rates and what happens when the model is unsure. Design includes choices about data, models and prompts. Testing adds evaluation sets that measure answer quality, plus checks for bias and unsafe output. Maintenance includes monitoring for drift and re-evaluating whenever a model or prompt changes.

  • Evaluation dataset agreed before building
  • Human review path for low-confidence results
  • Versioning for prompts, models and datasets
  • Monitoring of quality and cost in production

Life cycle checklist for project sponsors

  • Do we know what success looks like and how it will be measured?
  • Has someone reviewed security and privacy before build starts?
  • Are we seeing working software at least every two weeks?
  • Is testing automated for the most important workflows?
  • Do we have a plan and budget for maintenance after launch?

How we apply the SDLC

Our projects start with a short discovery and design phase, followed by two-week development sprints with continuous testing, automated deployment and ongoing maintenance. Read more on our software development process page.

FAQ

SDLC FAQ

Still have questions? Talk to a solutions architect — free, no obligation.

What are the main phases of the SDLC?
Planning, requirements, design, development, testing, deployment and maintenance.
Is Agile part of the SDLC?
Agile is a way of running the SDLC in short, iterative cycles rather than long sequential phases.
Which SDLC model is best?
Agile suits most products; Waterfall can suit projects with fixed requirements and heavy documentation needs.
How long is each phase?
In Agile, phases repeat within sprints of one to two weeks; in Waterfall, each phase can take weeks or months.

Want a real estimate for your project?

Free 30-minute consultation and a written estimate within 48 hours.

Call WhatsApp Get a Quote