What is Software Development Lifecycle (SDLC)?

Joyce Kwon
4 min readMay 8, 2019
https://addontraining.com/wp-content/uploads/2016/10/sdlc.png, example of an Agile Model

Software development lifecycle is a process model that represents five different development phases that commonly consists of these five stages: 1) requirements, 2) design, 3) implementation, 4) verification, and 5) maintenance.

In the initial requirement analysis stage, the company gathers as much information as possible about the details of the desired product from the client. From the gathered information, the company will set the standard that the finished product will adhere to.

Second is the design stage. In this stage, developers decide which programming language (such as Java, C++, Ruby, php, and .net) and which database (like oracle and mySQL) would be best-suited for the project. These two first stages are crucial for the rest of the stages — 50% of the errors that happen in the future stages are often introduced during the first two stages. Investing great amount of time and thinking into the first two stages will save up to 300% of the total cost, as to fixing it later on in the maintenance stage. Making sure the project gets off on the right foot is more important than getting it done fast.

Third stage is the implementation, also known as the building phase. Developers actually code the software. And as they build, they will also do testing, or verification. You can learn about different types of testing methods here.

The final phase is the evolution (or more commonly known as maintenance), in which developers repair and enhance the product as per the new changes requested by the key personnel.

Different Types of SDLC Models

Often it becomes difficult for developers to manage all the different complexities and varieties of software systems. To handle these various software systems, many SDLC models have been created for different industries. Following are some of the most commonly used models:

https://emergetech.com/wp-content/uploads/2017/06/waterfall@2x.png
  • Waterfall Model: it demonstrates the sequential flow of the development. In other words, the next phase doesn’t start until the previous step is fulfilled. Each phase is mutually exclusive and does not overlap with each other.
http://crackmba.com/wp-content/uploads/2012/01/V-Model.jpg
  • V-Shaped Model: this model is similar to waterfall model but it has more focus on testing. Each phase of software development lifecycle includes a distinct testing phase and deliverable. For example, the verification phases have their test plans to validate customer’s needs and to check for the hardware and software requirements for the development. Once they code the software, the development starts focusing on the validations to ensure the development was built correctly and every functionality is working and running.
http://tryqa.com/wp-content/uploads/2012/01/Incremental_model.jpg
  • Incremental Model: this model is a combination of waterfall model and agile model, which concerns less about the number of steps, rather about the cycle of development. Every iteration starts with a set of requirements and produces a working product each time. While this model helps creating working product quickly and early in the lifecycle, it has some downsides, in which the new iteration must integrate the previous iteration and the existing programs. This becomes a problem for the system architecture since not all requirements are set in the forefront of the lifecycle.

Software development lifecycle is widely used for its crucial benefits of gaining full understanding of the customers’ and stakeholders’ needs and preventing lack of system requirements at the beginning of the development. Usually, QA (Quality Assurance) engineers are responsible for overseeing the lifecycle — to read more about who they are and what they do, read my blog on QA engineers here.

Please checkout these helpful resources.

Resources

https://smartbear.com/learn/automated-testing/software-testing-methodologies/

📝 Read this story later in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

--

--