SDLC Models Explained: Agile, Waterfall, V-Shaped, Iterative, Spiral
One of the basic notions of the software construction — is Software Development Life Cycle model. Or simply SDLC models. SDLC — is a continuous process, which starts from the moment, when it’s made a decision to launch the project, and it ends at the moment of its full remove from the exploitation. There is no one single SDLC model. They are divided into main groups, each with its features and weaknesses.
No matter what type of the SDLC model chosen, each of them has basic stages.
Stage 1. Planning and requirement analysis
Each software development life cycle model starts with the analysis, in which the stakeholders of the process
discuss the requirements to the final product. The goal of this stage is the detailed definition of the system requirements. Besides, it is needed to make sure that all the process participants have clearly understood the tasks and how every requirement is going to be implemented. Often, the discussion involves the QA specialists who can interfere the process with additions even during the development stage if it is necessary.
Stage 2. Designing project architecture
At the second phase of the software development life cycle, the developers are actually designing the architecture. All the different technical questions that may appear on this stage are discussed by all the stakeholders, including the customer. Also, here are defined the technologies used in the project, team load, limitations, time frames, and budget. The most appropriate project decisions are made according to the defined requirements.
Stage 3. Development and programming
After the requirements approved, the process goes to the next stage — actual development. Programmers start here with the source code writing while keeping in mind previously defined requirements. The system administrators adjust the software environment, front-end programmers develop the user interface of the program and the logics for its interaction with the server.
The programming by itself assumes four stages
- Algorithm development
- Source code writing
- Testing and debugging
Stage 4. Testing
The testing phase includes the debugging process. All the code flaws missed during the development are detected here, documented, and passed back to the developers to fix. The testing process repeats until all the critical issues are removed and software workflow is stable.
Stage 5. Deployment
When the program is finalized and has no critical issues — it is time to launch it for the end users. After the new program version release, the tech support team joins. This department provides user feedback; consult and support users during the time of exploitation. Moreover, the update of selected components is included in this phase, to make sure, that the software is up-to-date and is invulnerable to a security breach.
Evolving from the first and oldest “waterfall” SDLC model, their variety significantly expanded. The SDLC models diversity is predetermined by the wide number of product types — starting with a simple website to a complex medical software. And if you take one of the SDLC models mentioned below as the basis — in any case, it should be adjusted to the features of the product, project, and company. The most used, popular and important SDLC models are given below:
Waterfall SDLC Model
Waterfall — is a cascade SDLC model, in which development process looks like the flow, moving step by step through the phases of analysis, projecting, realization, testing, implementation, and support. This SDLC model includes gradual execution of every stage completely. This process is strictly documented and predefined with features expected to every phase of this software development life cycle model.
Use cases for the Waterfall SDLC model:
- The requirements are precisely documented
- Product definition is stable
- The technologies stack is predefined which makes it not dynamic
- No ambiguous requirements
- The project is short
Iterative SDLC Model
The Iterative SDLC model does not need the full list of requirements before the project starts. The development process may start with the requirements to the functional part, which can be expanded later. The process is repetitive, allowing to make new versions of the product for every cycle. Every iteration (which last from two to six weeks) includes the development of a separate component of the system, and after that, this component is added to the functional developed earlier. Speaking with math terminology, the iterative model is a realization of the sequential approximation method; that means a gradual closeness to the planned final product shape.
Use cases for the Iteration model:
- The requirements to the final product are strictly predefined
- Applied to the large-scale projects
- The main task is predefined, but the details may advance with the time
Spiral SDLC Model
Spiral model — is SDLC model, which combines architecture and prototyping by stages. It is a combination of the Iterative and Waterfall SDLC models with the significant accent on the risk analysis. The main issue of the spiral model — is defining the right moment to make a step into the next stage. The preliminary set time frames are recommended as the solution to this issue. The shift to the next stage is done according to the plan, even if the work on the previous stage isn’t done yet. The plan is introduced basing on the statistic data, received during the previous projects even from the personal developer’s experience.
Use cases for the Spiral model
- Customer isn’t sure about the requirements
- Major edits are expected during the development cycle
- The projects with mid or high-level risk, where it is important to prevent these risks
- The new product that should be released in a few stages to have enough of clients feedback
V-shaped SDLC Model
V-shaped SDLC model is an expansion of classic waterfall model and it’s based on associated test stage for the every development stage. This is a very strict model and the next stage is started only after the previous phase. This is also called “Validation and verification” model. Every stage has the current process control, to make sure that the conversion to the next stage is possible.
Use cases for the V-shaped model:
- For the projects where an accurate product testing is required
- For the small and mid-sized projects, where requirements are strictly predefined
- The engineers of the required qualification, especially testers, are within easy reach.
Agile SDLC Model
In the agile methodology after every development iteration, the customer is able to see the result and understand if he is satisfied with it or he is not. This is one of the advantages of the agile software development life cycle model. One of its disadvantages is that with the absence of defined requirements it is difficult to estimate the resources and development cost. Extreme programming is one of the practical use of the agile model. The basis of such model consists of short weekly meetings — Sprints which are the part of the Scrum approach.
Use cases for the Agile model:
- The users’ needs change dynamically
- Less price for the changes implemented because of the many iterations
- Unlike the Waterfall model, it requires only initial planning to start the project
During the years of the SDLC evolution, different models were developed from the basic cascade model to meet a huge variety of development requirements and expectations. There is no only one suitable model for all the projects, starting conditions and payment model. Even at the first sight, multi purpose Agile cannot be used widely because of some customers’ unpreparedness to scale the budget. The SDLC models often cross in the solutions and particularly look similar.
So if you are already experienced in the SDLC models and you have your own professional opinion on this — leave your comments in the section below. If you have questions on picking up a correct model for your business — Contact Us, so we could assist you in this question. or visit our Services Page to learn more.
Download “2017 Global Custom Software Development Rates” to get a comprehensive analysis of the pricing in three most popular onshore and offshore outsourcing locations. Hourly rates cards for these territories are included.