Waterfall vs. Agile Methodology
Most software development projects apply either the Waterfall or Agile methodology. A development methodology is the procidure used by an engineering team in order to create a desired product. The Waterfall methodology represents the traditional approach, where the development process is conducted in a linear series of events. On its way toward the conclusion the progress flows continously through the phases of a project (analysis, design, development, testing) like a waterfall. The entire project is planned in advance. Agile is a more recently developed software development methodology, where the linear approach is replaced by an incremental, iterative one. Instead of planning the whole project in advance, Agile enables the adaption of requirements during the whole project. This artice provides an introduction of each methodology, a comparison and examples of use, in order to facilitate the decision whether Agile or Waterfall is more suitable for the next project.
Contents |
Waterfall Methodology
The lifcycle model which is today know as traditional or Waterfall model was first described by Royce in 1970.[1]
Pros
Cons
Agile Methodology
Pros
Cons
Comparison of the Waterfall and the Agile Methodology
Example of Use
The following example demonstrates the different approaches of each methodology. The project goal is the development of a customer adress book.
Waterfall Model
Product Requirements
First, the Product Manager has to create a document of requirements:
• Enable user to create new contacts
• Enable user to see his contacts
• Enable user to import contacts from other applications
• Enable user to email his contacts from the adress book
• Enable user to add pictures to represent his contacts
The created document will comprise detailed requirements, user scenarios and potential layouts
Analysis
Design
Implementation
Testing
Release
Agile Model
Product Requirements
The product manager creates a document of requirements:
• Enable user to create new contacts
• Enable user to see his contacts
• Enable user to import contacts from other applications
• Enable user to email his contacts from the adress book
• Enable user to add pictures to represent his contacts
Iteration Nr.1
Iteration Nr.2
Iteration Nr.3
Release
Conclusion
References
- ↑ I. Sommerville, "Software process models," ACM Computing Surveys (CSUR), vol. 28, pp. 269-271, 1996