What this resource covers
The software development life cycle organizes the work required to move from a business need to an operated and supported system. The phases may overlap or repeat, but their responsibilities should not disappear.
- Discovery confirms the problem, outcomes, stakeholders, and constraints
- Requirements and analysis define behavior, quality, data, rules, and boundaries
- Design translates requirements into user experience, architecture, data, interfaces, and controls
- Development implements reviewed work in manageable increments
- Testing evaluates behavior and quality against approved criteria
- Deployment releases controlled changes with monitoring and rollback preparation
- Maintenance addresses issues, dependencies, operations, and approved improvements
Information to prepare
Prepare the delivery context: product or project type, stakeholders, governance, risk, release frequency, regulatory needs, environments, support model, and evidence required at each stage.
- Business case and goals
- Stakeholder, workflow, requirement, and risk information
- Delivery methodology and release strategy
- Architecture, design, data, integration, and quality needs
- Operational ownership and support expectations
Expected planning outputs
Define lifecycle activities and entry or exit evidence for discovery, requirements, design, implementation, testing, release, operation, maintenance, and retirement.
- Approved requirements and plans
- Design and architecture decisions
- Version-controlled software and configuration
- Test evidence and release decision
- Deployed system, operational documentation, and improvement backlog
Practical example
How it can be applied
An iterative healthcare portal project can repeat analysis, design, build, and testing for registration, appointment, messaging, and reporting increments. Security, audit, integration, and deployment planning continue across all increments.
Common mistakes to avoid
- Treating SDLC as documentation instead of accountable work
- Skipping analysis because development is Agile
- Testing only after all features are built
- Deploying without operations, monitoring, and rollback ownership
- Ending the lifecycle at launch and ignoring maintenance
FAQ
Common questions
Does Agile replace the SDLC?
No. Agile organizes how lifecycle work is planned and delivered iteratively. Requirements, design, testing, release, and maintenance still occur.
Must every phase finish before the next begins?
Not in every methodology. Iterative delivery overlaps and repeats phases, while controlled dependencies and approvals still matter.
When does maintenance begin?
Operational planning starts before release. Active maintenance begins when software enters use and continues for its supported life.