I discussed the pros and cons of each system a few years ago, coming to the conclusion that neither was perfect and the decision should depend on the requirements of the project.
But what if instead of moulding the project to suit the process, you could adapt the process to fit the project?
In recent years, a third kid has been muscling his way onto the block. The hybrid methodology combines the strengths of waterfall and agile while removing many of their disadvantages, as Tom discussed in a recent article for Clutch.
Before we take a closer look at the hybrid methodology, let’s review the advantages and disadvantages of waterfall and agile.
The Waterfall Methodology
Waterfall has long been the standard way of approaching software development. It’s a very structured system that follows a linear process, with each stage – analysis > design > execution > testing > implementation > maintenance – requiring completion before the next stage can be started.
Because the workflow flows sequentially, like a waterfall, it’s difficult to go back to a prior stage. This means waterfall is characterised by thorough and rather intense documentation, so all team members are on the same page.
The Pros and Cons of Waterfall
While waterfall is often dismissed as being old-fashioned and no longer fit for purpose, it has its advantages. Its static nature and predictable workflow make it easy to estimate the costs, timeframe and size of the project, and its meticulous documentation makes projects more secure – if a developer drops out halfway through, a new developer will be able to step in relatively easily. It’s also more accurate when it comes to predicting the final outcome. I discussed the pros of the Waterfall approach and how it can be the best approach for some WordPress projects in detail at WordCamp Bristol 2017.
However, Waterfall does have one rather large disadvantage: it’s very inflexible.
Because waterfall relies on a set of steps being completed to continually move a project forwards, there’s little room for unexpected changes or revisions. And with technology and market trends changing at a seemingly ever-increasing pace, if the client wants to add or remove an element partway through the project, it could derail everything, costing you time and the client money. It has an element of uncertainty, too, because there’s little ability to test the product until the final stages, so if something is out of date or doesn’t work you have the same problem.
Essentially, it’s not cut out for dealing with rapid market changes. And as for all the paperwork…
The Agile Methodology
In musical terms, if waterfall is the classical sonata then agile is free jazz. Less a methodology and more a set of principles and values, the agile system breaks projects down into quick iterative tasks, called sprints.
Agile teams collaborate closely to deliver different sections of the project at the same time. Development can begin sooner, and the sprints allow for regular testing and refinement. This makes it easy to incorporate new ideas and revisions, and it allows for rapidly changing design elements.
There are several different systems under the agile umbrella, including Scrum, Kanban, Lean and Extreme Programming (XP).
The Pros and Cons of Agile
It’s little surprise that the biggest advantage of agile is its flexibility and ability to cope with a rapidly changing industry like software development. Agile’s lean approach means the customer can see results quickly and elements can be added or removed with less fuss. There’s less risk involved too, thanks to regular testing, while the product can stay in step with the latest advances in technology or market trends.
But it’s far from perfect and doesn’t suit every project.
With the focus on short-term sprints, it’s easy to lose sight of the bigger picture with the project veering off track. This means it can be difficult to accurately estimate the price and timeframe, and the final product may appear different from its initial product design. What’s more, the quality of the product can suffer as the focus is on speed.
The Hybrid Methodology
The hybrid methodology combines the best of waterfall and agile in a system that suits most web development projects. The principles behind waterfall form the foundation of most software projects, so hybrid uses the planning seen in waterfall, then breaks the development cycle into sprints. As soon as the MVP is ready, that can be shipped while the team continues to make improvements.
Because the planning follows the waterfall methodology, it means project teams have a solid foundation before starting work and they can give a more accurate estimate of time, cost and the end product. However, with the work completed in small, iterative chunks, the team can react to market and customer demands as the product develops.
So, the hybrid methodology marries the organisation of waterfall with the speed and flexibility of agile, while at the same time removing elements of risk.
Ultimately, each web design project is unique and what works for one could be completely wrong for another. Next time you hire a web development team for a project, don’t get too caught up in which methodology you want to use. Discuss your requirements and expectations with the team, then you can decide between you which methodology or combination works best for that specific project.
How do you decide which methodology to choose for a web development project? Do you prefer waterfall, agile or hybrid? Tell us in the comments below.