In software development, it is essential to learn the software process models. Understanding a variety of processes will greatly help to make the best choice of a process model appropriate for the project at hand. These are:
- Linear Models
- Spiral Models
- Unified Process
- Continuous Delivery
Linear process models follow a pattern of phases completed one after another without repeating prior phases. In this process model, the product is designed, developed, and released without revisiting earlier phases.
Samples of Linear Process Models are:
Waterfall Model – each phase in this process is fed into by an approved work product from the previous phase. This phase emphasizes documenting things like requirements and architecture, but it does not allow the development team to review and improve their product. It is not adaptable to changes and not very agile, since it is not designed to address changes midway of the project. Because of this, the V-model came into existence.
V-model – this process also features one thing to happen after another in sequential order. However, it emphasizes verification activities to ensure the implementation matches the design behaviour and design requirements. It is a V-shaped model because it divides into two branches where the left hand branch begins with the requirements that feeds into system architecture and design. Then, the shift from design to implementation is the bottom of the V. Then, once implementation is complete, the process shifts to the verification activities on the right hand branch of the V.
Both the Waterfall and V-model is unable to adapt to change, but the V-model allows the development team to verify each phase of the process. How about involving the client along the way to give feedback? This is where the Sawtooth model comes.
Sawtooth Model – this process model is similar to both Waterfall and V-model, but it allows client feedbacks at meaningful times to be integrated with the development. This process is easy to apply, however, it also doesn’t adapt to changes well.
What these models have in common? Sequential phases. As mentioned in the video, these early linear process models subscribe to a manufacturing view of a software product. This is machined and assembled according to certain requirements. Once produced, the product only requires minor maintenance upkeep.
University of Alberta (2020). Software Processes and Agile Practices. [Coursera Course] under the Software Product Management Specialization. Taken November 2020.
Wong, K. (2020). Linear Models. [Video]. Embedded under the course study videos under the Week 2 of the Software Processes and Agile Practices Coursera Course. Taken November 19, 2020.