Blog


.

Waterfall vs. Agile vs. The Real World

September 11th, 2009

Application Development, Project Management, Web Development

In a nutshell, the “Waterfall model” to software development consists of taking a project from design to implementation in one single pass; the “Agile model” consists of very short iterative cycles.

Waterfall puts the emphasis on the design stage. This can be critical for gigantic projects where countless developers will be working in unison. The beauty of this method is that all of the decision making takes place up front. After the design stage is completed, the end product is either ‘right’ or ‘wrong’, depending on whether or not it perfectly meets the design. Developers don’t need to be ‘trusted’, because they aren’t given decision-making power, so you can throw an army of cheap laborers at your project. Once you’ve completed the design stage, budgeting and project planning become a matter of simple math.

The problem with the Waterfall method is that it’s too optimistic about the accuracy of the design stage. What happens when the client sees the application during the development stage and changes their mind about the design? Things drawn on pieces of paper don’t always tell the whole story of what it will be like to actually sit down and use your newly built application; what if you want to change something? Any unplanned changes are extremely difficult to handle in a Waterfall approach. Once you finish the design, you can pretty much kiss any flexibility goodbye.

While the Waterfall approach is the right choice for certain types of projects, it quite simply doesn’t measure up to the way that many businesses are run these days. It’s a competitive, innovative world, and both flexibility and instant gratification are the critical.

That’s where Agile development comes in. With the Agile approach, things are taken in baby steps. You’ve decided what your login page should look like?…Great – let’s build that much and make sure that you like it before we go onto building anything else. With Agile development, an application is built in small phases; each phase consists of design, development, testing, and acceptance. This method has the benefit of enabling the client to have a direct hand in the birth of the application, and lets them steer things as they go. This more or less requires good developers with a high level of ‘trust’ (since we gave up on all that nasty planning that comes into the Waterfall method), and clients who can be actively and regularly involved in the process.

So you’re doing an Agile project, and need to budget accordingly? You want to know how long this thing will take to build? You want to know what your application will even look like? Good luck. With the Agile method, you’ve sacrificed all of the ‘knowing’ that comes along with solid planning… you’ve chosen instead to ‘wing it’. This can absolutely be the right choice, depending on your business needs, but don’t be too quick to schedule vacation and please make sure that your budget has the leeway to deal with the unexpected.

So where do the rest of us fit in? Most businesses need a ‘reasonable’ amount of flexibility and predictability, but neither development model offers both. Obviously the goal is to try to strive for something in between. Most projects need iterative development, but also need a predefined scope, budget, timeline, and game plan. The balance is found in adding flexibility to both sides – the design and the budget need to be both planned and flexible, and only then can you find that ‘real world’ development model that we’re all aching for.

Randall Davis

.

One Response to “Waterfall vs. Agile vs. The Real World”

  1. jmoffitt says:

    I agree, most of the time it is somewhere in the middle. Here is a funny and maybe slightly controversial promotion of Agile developement by a user experience giant (Alan Cooper) There is defininately some food for thought.
    http://www.cooper.com/journal/agile2008/

  • February 2012
    M T W T F S S
    « Jan    
     12345
    6789101112
    13141516171819
    20212223242526
    272829