Date of Graduation


Document Type


Degree Name

Bachelor of Science

Degree Level



Computer Science and Computer Engineering


Streeter, Lora

Committee Member/Reader

Patitz, Matthew

Committee Member/Second Reader

Gauch, Susan


Software development methodologies are often overlooked by software engineers as aspects of development that are handled by project managers alone. However, if every member of the team better understood the development methodology being used, it increases the likelihood that the method is properly implemented and ultimately used to complete the project more efficiently. Thus, this paper seeks to explore six common methodologies: the Waterfall Model, the Spiral Model, Agile, Scrum, Kanban, and Extreme Programming. These are discussed in two main sections in the paper. In the first section, the frameworks are isolated and viewed by themselves. The histories, unique features, and professional opinions regarding the methodologies are explored. In the second section, the methodologies are compared to one another, particularly within the context of ideal development environments and methodology advantages and disadvantages. It becomes apparent that the Waterfall and Spiral models are immensely different from the Agile, Scrum, Kanban, and Extreme Programming methodologies. This is because the Waterfall Model and the Spiral Model are both software development life cycle models, which indicates that there is a specific flow and set of rules to follow when it comes to development. The other methodologies, however, embrace the idea of flexibility. The process of creating software often changes. For example, a client could deliver new requirements for the software after development has already begun. Thus, the Agile-based methods do not attempt to create a rigid step-by-step development plan. Rather, they incorporate the idea of embracing change, empowering teams to accept that their development plan will have to change often. This paper further explores these considerations with the intention of promoting an interest in learning about the best ways to go about planning and developing software.


software engineering methodologies, software engineering frameworks, project management