Menu

Phases of SDLC

Phases of SDLC

Phase

Key activities

Deliverables

1. PlanningIdentify project scope, goals and requirementsInitial project plan
2. AnalysisGather and review data on project requirementsFully detailed requirement documentation
3. DesignDefine project architectureSoftware design document (SDD)
4. CodingWrite initial codeFunctional software prototype
5. TestingReview code and eliminate bugsRefined, optimized software
6. DeploymentDeploy code to production environmentSoftware available to end users
7. MaintenanceContinual fixes and improvementsUpdated and optimized code

Planning

The team figures out what the project actually needs, how much it will cost, how long it will take, and who needs to be involved. They talk to customers, internal experts, and managers to collect requirements, and all of this gets written down in a document called the software requirement specification.

Having this document matters because it sets expectations early. Everyone agrees on the goals before a single line of code is written, which saves a lot of back and forth later.

Requirement Analysis

This is the stage right after planning, where the team digs deeper into what the project actually needs. They sit down with stakeholders, customers, and sometimes end users to understand exactly what the software should do, what problems it needs to solve, and what constraints exist around budget, time, or technology.

All of this gets written down in a detailed requirement document. This document becomes the reference point for the rest of the project. Designers use it to plan the architecture, developers use it to know what to build, and testers use it later to check whether the final product actually matches what was asked for.

Design

Once the requirements are clear, the team decides how to actually build the thing. This means choosing the right technology, deciding whether to reuse existing modules or build from scratch, and figuring out how the new software will fit into whatever systems the company already has running.

This phase is basically the blueprint stage. Nothing gets coded yet, but every major technical decision gets made here so the coding phase runs smoothly.

Coding

This is the phase most people associate with software development. The team takes the requirements and design, breaks them down into small daily tasks, and starts writing the actual code. Each developer usually works on a specific piece of the puzzle.

Testing

Before software reaches real users, it has to be tested properly. Teams use a mix of automated tests and manual checks to catch bugs and confirm the software actually does what it was supposed to do. In most modern teams, testing does not wait until the end. It happens alongside coding, so issues get caught early instead of right before launch.

Deployment

Software is never built directly on the version customers use. There is a separate copy called the production environment, which is what real users interact with, and a build or testing environment where changes are tried out first.

Keeping these separate means customers can keep using the app even while updates are being worked on behind the scenes. Deployment is the process of packaging the finished build, configuring the environment, and installing it so it goes live for users.

Maintainance

Software is never really "done." Once it is live, the team keeps fixing bugs, responding to customer issues, and rolling out small updates. They also keep an eye on performance and security, since new problems or improvement opportunities show up even after launch.