Sunday, October 6, 2013

Agile: Better Than the Waterfall Method of Software Development?

keyboard with code
There has been much hype about using the Agile Methodology of Software Development over the traditional Waterfall method but both have its advantages and disadvantages. Agile method proposes an incremental and iterative approach to software design. The process is broken into individual models or sprints which the designers work on. It was essentially developed in response to the limitations of Waterfall, as a way to give designers more freedom. Let's evaluate the benefits and limitations of each process.

What is so good about Agile and does it have any drawbacks?  Well, Agile offers an incredibly flexible design process.  Customer feedback is considered at every sprint. This could prove to be useful if the project requirements are a bit unclear and involves the customer in what product is being delivered as it is being created. Agile would be a great approach to developing experimental software which might need to respond to change in requirements in a timely manner. However, not all projects need to be flexible and the outcome of Agile development can be hard to predict because of its flexible planning.

The Waterfall approach develops software from start to finish. before any development is done a solid plan and vision is needed.  Because the Waterfall method requires extensive planning upfront, software is launched fairly quickly. Estimated timetables and budgets can also be delivered to the customer. On the other hand, this method is rigid and inflexible.  Any changes in the design can devistate the project. Testing occurs late in the development cycle and if a major problem is found it could be difficult to fix.

So which method is better?  Depending on what your project is each method has its benefits.  The latest trend has been toward using the Agile model.  Some say that Agile cannot be used for large projects with a 3-4 year cycle. In a study called the CHAOS Manifesto 2012 by the Standish Group, Agile projects were 3 times more successful than Waterfall projects. The Standish Group defines project success as on time, on budget, and with all planned features. They do not report how many projects are in their database but say that the results are from projects conducted from 2002 through 2010.

4 comments:

  1. You made some very good points in giving the pros/cons of each method. I never thought Agile had any drawbacks until you mentioned that projects can be hard to predict because of flexible planning. Even if they're hard to predict, I don't think its that significant of a drawback because of the sprints; the project is always able to come back on track if it falls off track. Wow, I actually didn't know how successful agile projects were; thanks for listing the statistic.

    ReplyDelete
  2. Honestly I assumed that all projects used the Waterfall method before I was introduced to the Agile method. You compared both methods to see their advantages and disadvantages side-by-side. Although Agile seems like a great method due to its flexibility I can now see how that can be a problem with the outcome not being definitive. The statistics on the Agile method are very promising and it was good information. Once I get more experience working with both types of methods I can get an even better idea of each one's benefits.Nice layout and picture, very readable!

    ReplyDelete
  3. In your post, you give two main type of developing method in software development, agile and waterfall model.
    Waterfall model is a traditional model, and it has many variant. It has clearly definition of software progress. Unfortunately, it also has some drawbacks that cannot be overcome, like rigidness and lack of iteration.
    Because software development is not only a production progress, but more likely a creativity progress. Therefore, it will have some bugs in your system, which will be very expensively to fix. That is the reason of why we adopt agile development. We can get the feedback more quickly, then reduce the cost.

    ReplyDelete