Software Development Life Cycle

The Software Development Life Cycle (SDLC) is a structured process that is ideally used to efficiently produce cost-effective and high-quality software. It is a standard industry approach to software development that documents an entire project and timeline. Through clear documentation, internal stakeholders can collectively understand the direction of a project.


The SDLC phases are as follows:

  1. Plan: The phase where requirement gathering and analysis takes place. It involves brainstorming ideas to solve some problem as a result of customer feedback or need.
  2. Define: The phase where requirement defining takes place and involves creating a Software Requirement Specification (SRS). The SRS document defines the purpose, product, and technical requirements. This allows everyone working on the software to understand the product’s mission.
  3. Design: Based on the SRS and results in a Design Document Specification (DDS). The DDS is reviewed by all stakeholders based on a set of criteria.
  4. Develop: The building phase that deals with reviewing and implementing code that will be integrated into the software.
  5. Test and Integrate: The phase that software tests are performed to determine if the software satisfies the SRS. If it meets requirements, then the product or feature is integrated into the software.
  6. Maintain: An ongoing phase that involves supporting and updating the software as needed.


The Waterfall Model was the first model to be created, however, there are currently many different models for implementing a SDLC:

  • Agile: Iterative development and continuous integration. The scrum methodology is a common implementation of the agile model in which teams work in sprints. Sprints are time-constrained periods where a team works to complete a certain goal.
  • Big Bang: Named after the physical theory, this model involves creating a product through available resources for technical development. There is little planning or documenting.
  • Iterative: Depending on the requirements of the product, the software is modified upon each iteration and changes are released as a new version of the software.
  • Prototype: A prototype, that does not necessarily represent the final logic of the software, is created and tested until it meets requirements for deployment or integration.
  • Rapid Application Development (RAD): Meets requirements through prototyping iteratively.
  • Spiral: Based on the waterfall and iterative models.
  • V: Based on the waterfall model.
  • Waterfall: The goal is to create a minimum viable product (MVP). Each phase in the SDLC must be completed before moving on to the next phase.


Interested in helping build Docs? Read the Contribution Guide or share your thoughts in this feedback form.

Learn More on Codecademy