What is the software development lifecycle (SDLC)?
Definition. The SDLC is the structured sequence by which software moves from an idea to a maintained production system.
Phases
- Requirements — business goals, user stories, acceptance criteria, constraints and non-functional targets (performance, security, availability)
- Design — architecture, data model, API contracts, UX; recorded as specifications and ADRs
- Implementation — coding against the spec in small, reviewed changes
- Verification — unit, integration, end-to-end, performance and security testing
- Release — CI/CD, staged rollout, monitoring and rollback
- Operation & maintenance — incident response, patching, iteration, retirement
Methodologies. *Waterfall* suits fixed, regulated scope. *Agile (Scrum/Kanban)* delivers in short iterations with continuous feedback. Mature teams combine Agile delivery with DevSecOps controls.
Common pitfalls: vague acceptance criteria, skipping non-functional requirements, testing only at the end, and no ownership after release.