Short answer
The software development life cycle (SDLC) is the set of stages in which a system is created and evolves: requirements analysis, design, development, testing, rollout and maintenance. Today these stages are usually run in short cycles (Agile), so the client sees results quickly and can refine the requirements.
Stages
- Analysis and requirements — what the system must do, and why. See how to write a technical specification.
- Design — architecture, data model, interface sketches.
- Development — programming and integrations.
- Testing — automated and manual tests.
- Rollout — data migration, training, launch.
- Maintenance and development — bug fixes, security, new features.
Waterfall and Agile
- Waterfall — each stage in turn; suits very stable requirements, but there’s a risk the result differs from what’s actually needed.
- Agile — short cycles, each delivering a working piece. See what is Agile development.
What the client should know
Most of a system’s life happens after launch. Budget not only for development but also for maintenance and further development. And start with an MVP, not “everything at once”.