Thursday, October 3, 2013

AGILE: Agile verses Waterfall. What Is Right For Me?



Introduction
    Traditionally, people developed software project in a very linear approach called Waterfall. An example of using the waterfall method in software development is the progress flows steadily downwards through the phases of requirements, design, implement, testing and maintenance. However, some people who advocate Agile argue that the waterfall model is a bad idea in practice because they believe for a non-trivial project to finish a phase before moving to the next one is impossible. Those people believe Agile provide with more fixability.

Pick the right one
    In order to know which approach should be used in a particular project, you should understand the difference between using Agile and the waterfall in the given areas below:

Requirements/Change
    You should ask yourself whether or not the requirements are changing constantly. If the requirements are changing constantly, you should consider Agile than the waterfall because Agile allows you to add more requirements as well as dropping others.  
Experience/Resources
    Does developing this software require new skills and technologies? Do you have experience implementing it? If you have a stable environment, then you should consider using the waterfall.
Customer Involvement
    Customer involvement is essential to the success of a project. If you are able to get continuous feedback so that you can keep making changes based on their feedback, you should use Agile.
Timelines
    Do you have fixed due date for your project? If you are flexible with due date, you should use Agile. However, if you have restrictions due to financial requirements or calendar restrictions, you should consider the waterfall. 

Conclusion
    My recommendation is always consider the areas above and pick the right one for your software development. Some people like to analogize Agile with innovation and the waterfall as a cookbook. I personally love this analogy. Overall, Aligle(innovation) allows your progress to go back and forth but the waterfall(cookbook) doesn't as when making a pumpkin pie, it is awkward to first bake the whole pumpkin and then start the processes of smashing it and adding milk and spices. 



1 comment:

  1. Excellent read Tin! I like how you broke down the methodology of each project approach. The layout is nice with the color coding and the unbiased advantages of both the agile and waterfall comparisons were informative to read. Also the waterfall method involves a testing phase towards the end while the agile approach relies on testing the different pieces as they are being developed. This aspect of course has its own pros and cons. I especially like your pumpkin pie analogy in the conclusion. Very funny and true.

    ReplyDelete