V-Model vs Agile Model

 

The V-model, derived from the waterfall model, is considered a traditional approach to software development (Awotar & Sungkur, 2018). The V-model focuses on the sequence of the development process, where each step is identified and cannot proceed unless the previous step is accomplished (Awotar & Skungkur, 2018). The V-model has its strengths and weaknesses compared to other models. Next, the V-model will be compared with the agile model to evaluate its suitability for complex dynamic systems environments.

The V-model is characterized by a linear model with the change of time. It is divided into two main sections. The first half of the development process involves definition and decomposition. This is where the V-model integrates complexity, including stakeholder needs and technical specifications (Awotar & Sungkur, 2018). The second half involves integration, verification, and validation (Elm et al., 2008). The one characteristic of the V-model requires the identification and confirmation of all user and system requirements from the beginning of the design with no iterations in the second half of the design (Awotar & Sungkur, 2018). Therefore, the V-model only accounts for the evolution of the system upstream of the development process. With the second half of the development cycle being integrating ideas, verifying implementations, and validating design ideas, the model leaves little room for iterations and evolutions downstream of the development process. Therefore, although the V-model is traditional, the only weakness is its inflexibility when accounting for the dynamic nature of complex dynamic system environments.

The agile model, another standard model used for system development, on the other hand, is almost the complete opposite of the V-model (and the waterfall model). The agile model incorporates incremental changes to the process, allowing software development to be more flexible when responding to changing requirements (Dima & Maassen, 2018). Additionally, the agile model allows communication between all team members, including software engineers and stakeholders, throughout the entire development process. Their involvement contributes to the evolution of system development for a dynamic system. When determining suitability for a complex dynamic system environment where there are constant changes to requirements or the subsystem involved, the agile model presents a more robust model overall for a complex dynamic system in terms of flexibility. However, because agile models, or flexible models in general, are so malleable, it runs the risk of going down the wrong way. The strength of the V-model happens to address this issue.

Because the V-model and the agile model are at two ends of the spectrum in terms of flexibility, but each has its strengths toward system development of a complex dynamic environment, researchers have proposed the integration of the two models, allowing the V-model to integrate flexibility and dynamics in a dynamic system. Because the overall structure of the V-model is helpful, the only weakness is its inflexibility; each step of the V-model is a good opportunity for integration points, allowing the V-model to incorporate dynamics into system development. Awotar & Sungkur (2018) proposes incorporating the elasticity and iterations of the agile model into the V-model and making the V-model multidirectional instead of unidirectional. By extracting and integrating the two systems, the improved V-model allows for greater reliability, reduced resources and time, and fewer defects and fixing (Awotar & Sungkur, 2018). In a case study done by Awotar & Sungjur (2018), they found by performing testing and validations at each stage decreases errors and debugging time to one-fourth of the original time required and better prioritization of requirements. The basic idea is to implement plans that summarize a single phase of the V-model but allow returning and multidirectional communication and information exchange within the V-model.

References

Awotar, M., & Sungkur, R. K. (2018). Optimization of Software Testing. Procedia Computer Science, 132, 1804–1814. https://doi.org/10.1016/j.procs.2018.05.142

Dima, A. M., & Maassen, M. A. (2018). From Waterfall to Agile software: Development models in the IT sector, 2006 to 2018. Impacts on company management. Journal of International Studies, 11(2), 315-326. doi:10.14254/2071- 8330.2018/11-2/21

Elm, W. C., Gualtieri, J. W., McKenna, B. P., Tittle, J. S., Peffer, J. E., Szymczak, S. S., & Grossman, J. B. (2008). Integrating Cognitive Systems Engineering Throughout the Systems Engineering Process. Journal of Cognitive Engineering and Decision Making, 2(3), 249–273. https://doi.org/10.1518/155534308x377108

Mateen, A., Tabassum, M., & Akmal Rehan, A. (2017). Combining Agile with Traditional V Model for Enhancement of Maturity in Software Development. International Journal of Management, IT & Engineering, 7(2), 280–296. https://arxiv.org/pdf/1702.00126.pdf