Software Development Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) is the end-to-end process by which software is conceived, designed, built, tested, deployed, and operated, encompassing planning, development, code review, testing, release, monitoring, and incident response.

The SDLC has evolved significantly over the past two decades, from waterfall (long sequential phases) through agile (iterative development) to CI/CD-driven continuous delivery (changes shipped to production multiple times per day). Each transition has compressed the interval between code conception and production deployment, improving velocity but also reducing the time available to catch issues before they reach customers. The 2024 DORA State of DevOps Report found that AI-assisted development further accelerates code output (developers using AI tools complete tasks roughly 55% faster), while introducing a 7.2% reduction in delivery stability—a known tradeoff that mature reliability programs are working to recover.

Where reliability fits in the SDLC has shifted over time. Classic models placed reliability concerns at the end of the cycle: operations was something that happened after code shipped. Modern practices push reliability concerns earlier: SLO-driven design decisions during planning, automated testing during development, deployment gates that evaluate change risk, observability requirements baked into service design. This is the "shift-left" of reliability, moving the cost of preventing failures earlier in the cycle, where prevention is cheaper than detection and remediation. The AI SRE Handbook extends this further with what it calls code resilience: production knowledge fed back into the SDLC, so incident patterns, dependency fragility, and historical failure modes inform how code is reviewed, tested, generated, and shipped.