At the beginning of a software development project you have some key decisions to make. The most important relates to the design methodology the project will employ. The rise of Agile development has given you even more choice, but many still prefer the more traditional Waterfall model.
We’ve covered Agile development before, so let’s take a close at Waterfall. The likelihood is that you have encountered this methodology, even if you haven’t used the name.
So What Is Waterfall?
The Waterfall design methodology is a linear approach to development that follows a set of stages from the beginning of the project to its eventual conclusion.
You will usually start with a planning stage that moves into a design stage. When the design is completed you move into development and, later on testing. Then, you release the product.
That’s a very simplified version of the model, but you get the basic idea. Each section of development is separated from the others and you can’t start one section until the section before it is completed. Many also add what’s known as a “stage gate” between each section, which usually involves taking a look at the project to see if there are any issues that need to be confronted.
Waterfall offers a very structured form of development that many favour for its simplicity.
What’s Good About Waterfall?
Well, we’ve already mentioned the simplicity. It is fairly easy for developers to explain the Waterfall model to clients and have them understand what it means.
Beyond this, the model requires less collaboration between developer and client than the Agile model. Usually, the client offers most of their contributions at the start and receive updates during the stage gates. However, they will play little part in the work undertaken during the specific Waterfall sections.
The method also works well for complex projects that have a lot of moving parts. As a general rule, it is better to plan all of these out ahead of time before starting development, rather than jumping into an Agile model that would see development start while the design is still underway.
Where Does Waterfall Fall Down?
Waterfall starts to show cracks when implemented into the modern software environment. Mobile app development, for example, places a greater emphasis on speed than enterprise software development. This makes Waterfall a generally poor choice for mobile development.
The same is true of software that uses a subscription model. Think Netflix or Office 365. These types of software don’t come out with new releases every couple of years. Instead, developers release constant updates and bug fixes in return for the subscription fees. Such work literally cannot be placed into the Waterfall model, as developers constantly work on development, design, and testing of different components, usually simultaneously.
The lack of client interaction can also cause issues. Some clients want to know more about their projects than others. Having somebody constantly making changes in a Waterfall development tends to lead to the project getting booted back to the start of development. This causes delays and typically adds to the budget.