In this section two sequential IT delivery models will be explained in more detail: Waterfall and the V model.
The waterfall model is a sequential (non-iterative) software development process, in which progress is seen as flowing steadily downward (like a waterfall) through the phases of idea/wish/etc., requirements elicitation, analysis, design, coding, testing, deployment (production/implementation), and maintenance.
The waterfall model is derived from the traditional way of working in major projects in the construction industry. The purpose of this way of working is that the project is divided into several phases, starting with the first phase. When you are almost at the end of this phase you may start with phase two. But the first phase has to be completed before reaching a certain agreed point in the second phase. When you are almost at the end of the second phase you may start the next phase with the same approach, until you have completed the last phase. Completed in this situation means that phase 1 is reviewed and verified. And when you discover a defect in one of the phases you must go back all the way to correct that phase and perform the following phases all over again.
Some people are fond of the waterfall model, while other people hate it. At any rate, when you want to apply the waterfall model you may consider the following characteristics (this is not an exhaustive list) [Balaji 2012]:
- Each phase must be completed within a specified time period.
- Per phase, products should be clear before going to next phase.
- Per phase, products are frozen before the next phase starts.
- Each phase of development proceeds in order with a minimum of overlapping of the phases.
- Testing is carried out after the coding phase.
- The tester role will be involved in different phases (e.g. review of requirements, design, writing test cases, executing test cases, etc.).
The V model (V-shaped validation & verification model) is a modified version of the waterfall model.
The V model is a model where the execution of processes happens in a sequential manner in a V shape. In the V Model, testing phases are related to corresponding development phases [Koomen 2006]. This means that for every single phase in the development cycle, there is a directly associated testing phase. This is an n to m relationship. In the V model, the corresponding testing phase of the development phase is planned in parallel. When you want to apply the V model, you may consider the following characteristics (this is not an exhaustive list):
- In this model the result of the current step is verified before proceeding.
- The product resulting from every phase needs to be checked and approved against products form preceding phases before moving forward.
- Teams are multi-disciplinary or tasks are performed by specialized teams, both meaning every task is done by a separate specialist, e.g. a person with the function of developer and another with the function of tester.
- The developer and tester work in a parallel manner.
- In the V model, the relationships between development stages and testing stages are given.