SDLC

Also known as: Software development life cycle

On this page 8

SDLC, the software development life cycle, is the structured sequence of phases through which software is planned, specified, designed, built, tested, deployed and maintained until it is retired. In the software lifecycle, the SDLC is the process view: it defines what work happens, in what order, with which inputs, outputs and approval points.

An SDLC is not one fixed method. Waterfall, the V-model, iterative, spiral and agile models are all ways of organizing the same basic activities. They differ mainly in how often the phases repeat and how early working software reaches users.

The phases of the software development life cycle

Most SDLC descriptions contain six to eight phases. Names vary between organizations, but the purpose of each phase is stable: reduce uncertainty step by step and produce verifiable deliverables that the next phase depends on.

PhaseMain questionTypical deliverables
PlanningShould we build it, and with what budget?Business case, scope, schedule, risk list
Requirements analysisWhat must the software do?Requirements specification, user stories, acceptance criteria
DesignHow will it be built?Architecture, data model, interface specifications
ImplementationBuild the softwareSource code, unit tests, build scripts
TestingDoes it work as required?Test plans, defect reports, test results
DeploymentHow does it reach users?Release package, release notes, rollout plan
MaintenanceHow is it kept useful and safe?Patches, hotfixes, maintenance releases
Typical SDLC phases and their outputs

Many models add a final retirement or decommissioning step, which covers data migration, archiving and the end of life announcement. Treating retirement as part of the cycle prevents abandoned systems that still run but no longer receive security updates.

SDLC models and how they differ

An SDLC model is a specific arrangement of the phases. Sequential models complete each phase once, while iterative models run short cycles that pass through all phases repeatedly. The choice depends on how stable the requirements are and how costly late changes would be.

ModelFlow of phasesBest suited for
WaterfallStrictly sequential, one passStable, well-understood requirements
V-modelSequential, each design level paired with a test levelSafety-critical and regulated systems
Iterative and incrementalRepeated cycles adding featuresLarge systems delivered in stages
SpiralRisk-driven cycles with prototypesHigh-risk, novel projects
Agile (Scrum, Kanban)Short iterations of one to four weeksChanging requirements, fast feedback
DevOpsContinuous flow with automated deliveryOnline services with frequent releases
Common SDLC models compared

The classic waterfall description is often misread as a recommendation for a single pass. Its early proponents already pointed out the risk of discovering problems only during testing, which is why later models introduced feedback loops, prototypes and incremental delivery.

The SDLC is easily confused with neighboring concepts in the software lifecycle. The key distinction is that the SDLC describes how software is developed, while other lifecycles describe how versions are released and supported.

ConceptFocusRelation to the SDLC
Release cycleCadence of shipping versionsThe deployment rhythm inside the SDLC
Product lifecycleMarket phases from launch to withdrawalBusiness view around many SDLC iterations
Support lifecycle (LTS, end of life)How long a version receives fixesDefines the length of the maintenance phase
Agile software developmentValues and practices for iterative workOne family of SDLC models
Version lifecycle (alpha, beta, release candidate, general availability)Maturity stages of a releaseMilestones within testing and deployment
How the SDLC differs from neighboring concepts

Standards and the secure SDLC

Formal SDLC practice is described in ISO/IEC/IEEE 12207, the international standard for software life cycle processes, and its systems counterpart ISO/IEC/IEEE 15288. These standards do not prescribe a model; they define processes such as requirements definition, verification and maintenance that any model must cover.

A secure SDLC integrates security activities into every phase instead of adding a penetration test at the end. Common frameworks include the NIST Secure Software Development Framework (SP 800-218) and vendor programs such as the Security Development Lifecycle. Typical activities are threat modeling during design, static code analysis during implementation and dependency scanning before release.

PhaseSecurity activityPurpose
RequirementsSecurity requirementsDefine authentication, privacy and logging needs
DesignThreat modelingFind design flaws before code exists
ImplementationCode review and static analysisCatch injection and memory errors early
TestingDynamic testing and fuzzingDetect runtime vulnerabilities
MaintenanceVulnerability managementPatch issues found after release
Security activities mapped to SDLC phases

Choosing and tailoring an SDLC

No single model fits all projects, so organizations tailor the SDLC to project size, risk and regulation. A medical device team may combine a V-model for traceability with agile sprints for implementation, while a web startup may use continuous delivery with lightweight design reviews.

  • Requirement stability: stable requirements tolerate sequential models; volatile ones need short iterations.
  • Regulatory needs: audits require documented phase gates and traceability from requirement to test.
  • Cost of failure: higher consequences justify more formal verification and review.
  • Release frequency: frequent releases demand automated testing and deployment pipelines.

Common pitfalls in SDLC practice

Most SDLC failures come from skipping or compressing phases under schedule pressure. Weak requirements analysis leads to building the wrong product, and squeezed testing pushes defects into production, where they are far more expensive to fix than during design.

Another pitfall is process theater: producing every document the model lists without using them to make decisions. A healthy SDLC keeps only the artifacts that reduce real risk, and treats maintenance as a planned phase with budget rather than an afterthought.

Explained without jargon

The SDLC is the recipe for making software, from the first idea to the day it is switched off. It is similar to building a house: first deciding what is needed, then drawing plans, building, inspecting, handing over the keys and doing repairs for years afterward.

Some teams build the whole house in one go, while others build one room at a time and let the owner try it before adding the next. Both follow the same basic steps. The SDLC simply makes sure no important step is forgotten.

A typical use case

A hospital commissions software that schedules operating rooms. Because errors could delay surgeries, the vendor uses a tailored SDLC: a formal planning and requirements phase with surgeons and nurses, a reviewed architecture design, then implementation in two-week iterations with demonstrations to hospital staff.

Every requirement is linked to at least one test case, and threat modeling identifies risks around patient data. Before go-live, the system passes an acceptance test with real schedules in a training environment, and the rollout starts with one surgical department.

After deployment, the vendor runs a planned maintenance phase with monthly patches. The structured cycle gives the hospital traceable evidence for its auditors and a system that changes safely as procedures evolve.