What is the SDLC and what are its phases?
60-second answer
SDLC, the Software Development Life Cycle, is the structured process a team follows to build software. The typical phases are requirement gathering and analysis, design, development or coding, testing, deployment, and maintenance. Models like Waterfall run these phases one after another, while Agile repeats them in short iterations called sprints. As a tester, I'm involved from the requirement phase, reviewing requirements for clarity and testability, not just in the testing phase.
Explanation
- Requirements: business analysts collect needs; output is an SRS or user stories.
- Design: architecture and detailed design (HLD, LLD).
- Development: code and unit tests.
- Testing: integration, system and acceptance testing.
- Deployment: release to production.
- Maintenance: bug fixes, enhancements, monitoring.
Common models: Waterfall (sequential), V-model (test phase paired with each dev phase), Iterative, Spiral (risk-driven), and Agile (Scrum, Kanban). Most companies today use Agile.
Example
In a Scrum team building a food-delivery app, each 2-week sprint covers all phases for a few user stories: refine the story, design the API, code it, test it, and release behind a feature flag.
Sample code
Waterfall: Requirements -> Design -> Code -> Test -> Deploy (once)
Agile: [Plan -> Build -> Test -> Review] x every 2 weeks (repeat)