Software Development Life Cycle – simplified

Understanding Software Development Life Cycle (SDLC) in 5 minutes

The software development life cycle (SDLC) is a process that is used to design, develop and maintain software. SDLC describes the phases and the sequence of the phases which a software undergoes in its lifetime. Each phase produces the inputs for the next phase of the SDLC.

Phases of SDLC

There are the following 6 phases or steps of SDLC:

  1. Requirement Gathering and Analysis
  2. Design
  3. Implementation or Coding
  4. Testing
  5. Deployment
  6. Maintenance

Requirement Gathering and Analysis

Business requirements are gathered in this phase. This phase is critical to the success or failure of the project. This phase is mainly focuses on capturing the need of creating a new product/functionality or need of altering existing functionality. The requirements should be documented, actionable, measurable, testable, and traceable.
In the requirements gathering and analysis phase; the who, the what, the how, the why of the system is captured. This is done by meeting stakeholders and users.
This phase includes 3 types of activities, broadly:
1. Requirement Elicitation: It generally involves interviews and workshops to gather and discover requirements. Also called as Requirements Gathering or Requirements Discovery Phase.
2. Requirement Analysis: It involves a detailed examination of the requirements to identify ambiguity, inconsistency, the incompleteness of the requirements.
3. Requirement Documentation: Requirement Documentation involves, documenting the findings of the Requirement Elicitation and Requirement Analysis activities in various forms.


In this phase, the system and software design are prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model.
In this phase, the testers come up with the Test strategy, where they mention what to test, how to test.

Implementation and Coding

On receiving system design documents, the work is divided into modules/units and actual coding is started. Since in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.


After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase, all types of functional testing like unit testing, integration testing, system testing, acceptance testing are done as well as non-functional testing are also done.


After successful testing, the product is delivered/deployed to the customer for their use
As soon as the product is given to the customers they will first do the beta testing. If any changes are required or if any bugs are caught, then they will report it to the engineering team. Once those changes are made or the bugs are fixed then the final deployment will happen.


Once when the customers start using the developed system then the actual problems come up and need to be solved from time to time. This process where the care is taken for the developed product is known as maintenance.

You don’t like reading? Check out this video on YouTube on the same topic: