What Is the Software Development Life Cycle (SDLC)? Phases Explained
The software development life cycle explained phase by phase, with the deliverables each stage produces and how modern agile and DevOps teams compress the cycle.
The software development life cycle (SDLC) is the structured process teams use to plan, build, test, release and maintain software. Its usual phases are planning, requirements, design, development, testing, deployment and maintenance. Waterfall runs them once in order, while agile and DevOps teams repeat them in short, automated loops to ship smaller changes more often.
Photo: Unsplash
On this page
Every piece of software, from a 1-page booking form to a banking platform, goes through the same basic journey: someone decides it’s needed, people work out what it should do, engineers design and build it, it’s tested, released and then maintained for as long as it’s used. The software development life cycle, or SDLC, is the name for that journey.
Understanding the SDLC helps business owners ask better questions of their developers, helps project managers plan realistic timelines, and helps new engineers see where their work fits. This guide walks through each phase, the deliverables it produces and how modern teams compress the whole cycle into days or even hours.
What the SDLC is
The SDLC is a framework that breaks software work into distinct phases, each with clear goals and outputs. It gives teams a shared vocabulary and makes sure important steps, such as security reviews or testing, aren’t skipped under deadline pressure.
There’s an international standard for it: ISO/IEC/IEEE 12207, “Systems and software engineering — Software life cycle processes.” Its 2017 edition groups processes into agreement, organizational, technical management and technical categories. Most teams never read the standard, but the phases below reflect the same core ideas.
Different sources split the SDLC into 5, 6 or 7 phases. The names vary; the work doesn’t.
The 7 phases at a glance
| Phase | Key question | Main deliverables |
|---|---|---|
| 1. Planning | Should we build this, and why? | Business case, scope, budget, timeline, risk list |
| 2. Requirements | What exactly must it do? | Requirements document, user stories, acceptance criteria |
| 3. Design | How will it work? | Architecture, data model, UI designs, security design |
| 4. Development | Build it | Source code, unit tests, code reviews |
| 5. Testing | Does it work as required? | Test plans, test results, defect reports |
| 6. Deployment | Get it to users | Release, deployment scripts, release notes |
| 7. Maintenance | Keep it working and improving | Patches, updates, monitoring, enhancements |
Key takeaway: The SDLC isn’t about paperwork. Each phase exists to catch a specific kind of mistake before it becomes expensive: building the wrong thing, building it badly or releasing something broken.
The 7 phases in detail
Phase 1: planning
Planning decides whether the project is worth doing and sets its boundaries. Teams define the problem, the goals, rough scope, budget, timeline, staffing and major risks. They also decide whether to build, buy or adapt existing software.
Deliverables: business case, project charter, high-level scope, budget estimate, risk register.
What goes wrong when skipped: projects start without agreed goals, so success can’t be measured and scope keeps growing.
Phase 2: requirements
This phase turns the idea into specific, testable statements of what the software must do (functional requirements) and how well it must do it (non-functional requirements such as performance, security and accessibility). Analysts and product managers interview stakeholders, observe current processes and document needs.
Deliverables: requirements specification or product backlog, user stories, acceptance criteria. Our guide on how to write a software requirements document walks through each section.
What goes wrong when skipped: the team builds what it assumed the client wanted, not what the client needed.
Phase 3: design
Design decides how the system will meet the requirements. Architects and senior engineers choose the overall structure, technology stack, data model, integrations and hosting. Designers create user flows and interface mockups. Security design happens here too, through threat modeling and choosing protections.
Deliverables: architecture diagrams, data models, API specifications, UI prototypes, security design.
What goes wrong when skipped: systems that work at first but don’t scale, are hard to change and accumulate technical debt fast.
Phase 4: development
Developers write the code, usually in small pieces, with version control, automated unit tests and peer code review. Coding standards and secure coding practices keep quality consistent. AI coding assistants now help with much of this work, but reviewers still need to understand and check what’s generated, as covered in how AI coding assistants are changing software teams.
Deliverables: source code, unit tests, reviewed pull requests, build artifacts.
Phase 5: testing
Testing confirms the software meets requirements and doesn’t break what already works. Common levels include:
- Unit tests: individual functions or components
- Integration tests: components working together
- System and end-to-end tests: complete user journeys
- User acceptance testing: real users or the client confirm it meets their needs
- Non-functional tests: performance, security, accessibility
Deliverables: test plans, automated test suites, test reports, defect lists, sign-off.
Phase 6: deployment
Deployment moves software into production where users can access it. Mature teams automate this with continuous integration and delivery pipelines so releases are repeatable and low-risk. Techniques such as staged rollouts, feature flags and blue-green deployments let teams release to a small group first and roll back quickly. See what CI/CD is and how to build a CI/CD pipeline for details.
Deliverables: production release, release notes, deployment runbook, rollback plan.
Phase 7: maintenance
Most of a software product’s life is spent here. Teams fix bugs, patch security vulnerabilities, update dependencies, improve performance and add features. Monitoring and observability show how the system behaves in the real world; our guide to observability vs monitoring explains the difference.
Deliverables: patches, updates, incident reports, monitoring dashboards, enhancement requests that feed back into planning.
SDLC models: same phases, different shapes
The phases stay the same. What changes is how they’re arranged.
| Model | How phases run | Best for |
|---|---|---|
| Waterfall | Once, in strict sequence | Stable, well-defined, regulated projects |
| V-model | Sequential, with a test phase paired to each design phase | Safety-critical and highly regulated systems |
| Iterative and incremental | Repeated cycles, each adding functionality | Large projects that can be delivered in parts |
| Spiral | Repeated cycles driven by risk analysis | Large, high-risk projects |
| Agile (Scrum, Kanban) | Short cycles of all phases, every few weeks or continuously | Changing requirements, user-driven products |
| DevOps | Continuous, automated flow from code to production and back | Online services that release often |
For a deeper comparison of the 2 most common approaches, see agile vs waterfall, and for agile frameworks, Scrum vs Kanban.
How modern teams compress the cycle
In a traditional waterfall project, 1 pass through the SDLC might take a year. Many modern teams go through every phase for a small change in a day or less. Here’s how:
- Small batches. Instead of 1 huge release, teams ship small changes. Each goes through all 7 phases quickly, and problems are easier to find.
- Automation. Continuous integration builds and tests every change automatically. Continuous delivery makes deployment a routine, push-button step.
- Shift left on testing and security. Testing and security checks happen while code is written, not at the end. This is the core idea behind DevSecOps.
- Infrastructure as code. Servers and environments are defined in code, so they can be created and changed reliably.
- Fast feedback from production. Monitoring, feature flags and staged rollouts turn maintenance into a continuous source of learning that feeds planning.
- Cross-functional teams. Developers, testers, operations and security work together instead of handing work over a wall. That’s the heart of DevOps.
To see whether compression is working, many teams track the delivery metrics from Google Cloud’s DORA research program: change lead time, deployment frequency, failed deployment recovery time, change fail rate and deployment rework rate. Faster throughput with stable or falling failure rates is the goal.
Security across the life cycle
Security can’t be a single phase at the end. The NIST Secure Software Development Framework (SP 800-218) describes practices to build into any SDLC model, such as defining security requirements, protecting code, producing well-secured software and responding to vulnerabilities. CISA’s Secure by Design initiative goes further, urging software makers to take ownership of customer security outcomes rather than leaving protection to buyers.
In practice, that means threat modeling in design, secure coding and dependency scanning in development, security testing before release and fast patching in maintenance.
Where to start: applying the SDLC to your project
- Pick a model that fits. Stable, fixed-scope work can follow waterfall; most product work fits agile or DevOps.
- Define what “done” means for each phase. For example, no code is merged without tests and review.
- Write requirements before building, even if they’re a short brief and a backlog.
- Automate what repeats. Start with automated tests and builds, then automate deployments.
- Build security into every phase, not just a final audit.
- Plan for maintenance from day 1. Budget time and money for updates, patches and monitoring.
- Review and improve. After each release or quarter, ask which phase caused the most delays or defects and fix that first.
Conclusion
The software development life cycle is the backbone of every successful software project: plan, define requirements, design, build, test, deploy and maintain. The phases don’t change much between methods. What changes is their size and speed. Waterfall runs them once; agile and DevOps run them in small, automated loops. Whichever model you choose, respect what each phase is for, build security and testing in throughout, and plan for the long maintenance tail that every real product has.
Sources
- ISO/IEC/IEEE 12207:2017, Software life cycle processes — international standard for software life cycle processes
- NIST SP 800-218: Secure Software Development Framework — secure development practices across the SDLC
- DORA: Software delivery performance metrics — the 5 delivery metrics for measuring throughput and instability
- CISA: Secure by Design — principles for software makers to own customer security outcomes
Frequently asked questions
What are the 7 phases of the SDLC?
The 7 commonly cited phases of the software development life cycle are planning, requirements analysis, design, development (coding), testing, deployment and maintenance. Some models combine phases, for example planning and requirements, and describe 5 or 6 stages instead. The names vary, but every version covers deciding what to build, building it, checking it and keeping it running.
What is the most popular SDLC model?
Agile approaches, especially Scrum and Kanban, are the most widely used for modern software development, often combined with DevOps practices for automated testing and deployment. Waterfall remains common for fixed-scope, regulated or hardware-dependent projects. Many organizations use a hybrid, such as fixed budgets and milestones with agile delivery in between.
What is the difference between SDLC and agile?
The SDLC is the overall set of phases software goes through, from planning to maintenance. Agile is a way of running those phases. Instead of completing each phase once in sequence, as in waterfall, agile teams cycle through all phases in short iterations, delivering working software every few weeks and adjusting based on feedback.
Which SDLC phase is the most important?
Requirements is often considered the most critical phase, because mistakes there flow into every later phase and are expensive to fix after the software is built. That said, every phase matters. Skipping design causes technical debt, skipping testing causes defects, and neglecting maintenance leaves software insecure. Maintenance usually lasts the longest.
How long does the software development life cycle take?
It depends on the size of the change and the model. A large waterfall project might take many months or more for 1 pass. Agile teams complete the cycle for a set of features every few weeks, and DevOps teams with strong automation can move a small change through every phase in hours. Smaller, frequent changes usually mean lower risk.
What is the secure software development life cycle?
A secure SDLC builds security activities into every phase rather than testing for it only at the end. That includes defining security requirements, threat modeling during design, secure coding and dependency scanning, security testing before release and rapid patching afterward. The NIST Secure Software Development Framework (SP 800-218) is a widely used reference.
Do small projects need an SDLC?
Yes, but a lightweight one. Even a small website or internal tool benefits from a short brief, simple requirements, basic design decisions, testing before launch and a plan for updates. You don't need heavy documentation. The point is to avoid skipping steps that catch costly mistakes, such as never testing on phones or forgetting security updates.
Was this guide useful
No reviews yet. Share your experience and help other readers.