Waterfall vs. Agile Methodology

From apppm
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
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.
 
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.
+
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, release) 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.
 
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.
 
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.
Line 6: Line 6:
 
=Waterfall Methodology=
 
=Waterfall Methodology=
  
The lifcycle model which is today known as traditional or Waterfall model was first described by Royce in 1970.<ref> Sommerville I., "Software process models," ACM Computing Surveys (CSUR), vol. 28, pp. 269-271, 1996 </ref> It is called Waterfall model because of its sequential and down-flow characteristic where the phases analysis, design, implementation and testing are processed consecutively downwards.<ref name= "Comparative Study"> Dubey A.; Jain A.; Mantri A., "Comparative Study: Waterfall v/s Agile Model", International Journal of Engineering Sciences & Research Technology (IJESRT), 2015 </ref> Each phase of the Waterfall model is processed in order without any overlapping and within a specified time period. Once a phase is completed there is no going back to a privious phase as it will be frozen.<ref name= "Waterfall v/s Agile"> Balaji S.; Dr. Sundararajan Murugaiyan M., "Waterfall vs V-Model vs Agile: A Comparative Study on SDLC", International Journal of Information Technology and Business Management (JITBM), 2012 </ref>
+
The lifcycle model which is today known as traditional or Waterfall model was first described by Royce in 1970.<ref> Sommerville I., "Software process models," ACM Computing Surveys (CSUR), vol. 28, pp. 269-271, 1996 </ref> It is called Waterfall model because of its sequential and down-flow characteristic where the phases analysis, design, implementation,testing and release are processed consecutively downwards.<ref name= "Comparative Study"> Dubey A.; Jain A.; Mantri A., "Comparative Study: Waterfall v/s Agile Model", International Journal of Engineering Sciences & Research Technology (IJESRT), 2015 </ref> Each phase of the Waterfall model is processed in order without any overlapping and within a specified time period. Once a phase is completed there is no going back to a privious phase as it will be frozen.<ref name= "Waterfall v/s Agile"> Balaji S.; Dr. Sundararajan Murugaiyan M., "Waterfall vs V-Model vs Agile: A Comparative Study on SDLC", International Journal of Information Technology and Business Management (JITBM), 2012 </ref>
  
 
'''Analysis'''
 
'''Analysis'''
Line 24: Line 24:
 
'''Testing'''
 
'''Testing'''
  
In this phase the sub units are integrated to one working system which is tested regarding quality and functional aspects.<ref name= "Bomarius"/>
+
In this phase the sub units are integrated to one working system which is tested regarding quality and functional aspects. The collected measures of performance are used for the decision whether the system is ready for the relase. In order to ensure that the outcome of the project meets the customers' requirements the tested system is reviewed according to a checklist. <ref name= "Bomarius"/>  
  
 
==Pros==
 
==Pros==

Revision as of 13:10, 22 September 2017

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, release) 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 known as traditional or Waterfall model was first described by Royce in 1970.[1] It is called Waterfall model because of its sequential and down-flow characteristic where the phases analysis, design, implementation,testing and release are processed consecutively downwards.[2] Each phase of the Waterfall model is processed in order without any overlapping and within a specified time period. Once a phase is completed there is no going back to a privious phase as it will be frozen.[3]

Analysis

In this phase all the requirements and customer needs of the desired system or product are gatherd and recorded in detail in a specification document.[2] This document will be used as input in the design and implementation phase. The requirements of the product should be clear before moving to the next phase as changes in requirement can not be adapted later in the process.[3]

Design

The outcome of the design phase are a specified hardware and a virtual overview of the desired system or software.[3]

Implementation

The actual development of the system starts in the implementation phase. The system is therefor divided in small sub units which are tested by the developers before forwarding them to the testing phase. A quality gate checklist helps to control if there is a deviation from the requirements, planned time-line and product scope.[4]


Testing

In this phase the sub units are integrated to one working system which is tested regarding quality and functional aspects. The collected measures of performance are used for the decision whether the system is ready for the relase. In order to ensure that the outcome of the project meets the customers' requirements the tested system is reviewed according to a checklist. [4]

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

  1. Sommerville I., "Software process models," ACM Computing Surveys (CSUR), vol. 28, pp. 269-271, 1996
  2. 2.0 2.1 Dubey A.; Jain A.; Mantri A., "Comparative Study: Waterfall v/s Agile Model", International Journal of Engineering Sciences & Research Technology (IJESRT), 2015
  3. 3.0 3.1 3.2 Balaji S.; Dr. Sundararajan Murugaiyan M., "Waterfall vs V-Model vs Agile: A Comparative Study on SDLC", International Journal of Information Technology and Business Management (JITBM), 2012
  4. 4.0 4.1 Bomarius F. et al., "Product-Focused Software Process Improvement", 10th International Confernce, Springer, 2009
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox