# Simulating the Software Development Lifecycle: The Waterfall Model
## 2 Background
### Motivation to Study the Waterfall Model  
Despite the growth in popularity of iterative, incremental, and agile software development models, we must recognize the waterfall model's continued relevance and, consequently, its continued need for study. [PERSON] and [PERSON] point out that [41] \"outside the research community, much software process thinking is still based on the waterfall framework\". This view is echoed by [PERSON] et al. [37], who write that \"waterfall development is still a widely used way of working in software development companies\". A study by [PERSON] et al. [42] in 2019 looked at the usage of agile versus waterfall approaches, finding that 28.1% of software developers had reported that they used waterfall. However, this estimation may be too low--according to the PMI [43] in 2020, 56% of projects used a traditional project management methodology (i.e., waterfall). [PERSON] et al. [44] reinforce the persistence of waterfall, finding that \"although the Agile methodology started to become the standard methodology in software projects implementation, several organizations are currently employing Waterfall methodology because it simply works, and it has a proven track record\". Further, although waterfall exists in hybrid forms and one of many software development lifecycles, because of its clear stages and easy to grasp model, it remains foundational for computing education as novice software engineers learn more about the software development process. While having a place in software development, some have questioned whether we have taken the new agile approaches too far [45], implying that there may still be some value in waterfall. This type of thinking has led to an emerging practice of taking the best of waterfall and agile approaches, resulting in hybrid models. [PERSON] and [PERSON] [46] explain the motivation for mixing agile and waterfall: \"the rise of hybrid software development methods\", which \"combined elements from both the waterfall and agile methodologies\" do so \"to increase efficiency throughout the software development lifecycle\". For example, [PERSON] et al. [47] propose a hybrid framework integrating Kanban and Scrum approaches with waterfall. [PERSON] et al. [44] propose another hybrid framework that combines the best from both agile and waterfall. Thus, the study of waterfall is appropriate. Others (e.g., [PERSON] [48], [PERSON] et al. [49], [PERSON] et al. [35]) take a more agnostic approach to waterfall, settling on a position where there is no one software development lifecycle that is superior to the others; rather, each has its strengths and weaknesses. So, agile is not superior to waterfall or the reverse; rather, each is designed to address a particular situation. Waterfall appears best suited for projects where requirements need to be well understood upfront and then are not very likely to significantly change over the course of the project [48]. This would make the waterfall approach a sensible option for systems that are complex and need to be reliable [49] (e.g., safety- or security-critical systems [48]). However, the waterfall model may be best known for its weaknesses. [PERSON] [38] received considerable criticism for the model, even though he understood (perhaps only in part) the weakness of his model. He himself pointed out the problems, writing, \"I believe in this concept, but the implementation described above is risky and invites failure\" [38]. [PERSON] [21] emphasizes that the \"SDLC of software systems has always encountered problems and limitations that resulted in significant budget overruns, late or suspended deliveries, and dissatisfied clients\". He goes on to explain that \"the major reason for these deficiencies is that project directors are not wisely assigning the required number of workers and resources on the various activities of the SDLC\".