While we prefer Agile by far, it can make sense to do an initial project using the Waterfall process first. We know Agile can be much more efficient, but it does have its pitfalls as well. Agile is delivery driven, meaning that “something like what we want” will be delivered when we want it and within budget (this is how the term ‘beta’ started creeping in everywhere).
Along the way, minds and scope can change and evolve without issue because being able to deliver “something like what is wanted” drives project decisions. This requires a really solid relationship between all involved. Imagine a scenario where so many different directions evolve mid project that gridlock develops, time runs out, and what gets delivered on time and within budget leaves much to be desired. It happens. It takes an extremely solid team to effectively navigate this potential pitfall.
Waterfall has become notorious for being inefficient because this process needs all information documented and decisions made beforehand, which can be time consuming and inaccurate with the project still just an idea. The entire project needs to be planned and prepared completely so that the deliverables can flow from one point to the next without catastrophe in the development process. Anything that changes mid project is considered a change to the scope of the project and could potentially and seriously impact the project’s timeline and budget as the entire waterfall development structure could need to be reconstructed.
The strength with the Waterfall approach, however, is that the client knows exactly what they will be getting for their money. Which can be of invaluable importance, especially on initial and large engagements, where the client and development team still need to get to know each other. Waterfall is the incumbent process. We’ve mastered it and reduced its inefficiency to near zero. We still honor and value its process, especially for clients that desire its planning and predictability.
Agile, though, is taking over as software development becomes a regular ongoing need for more businesses. For these clients, they hire the best team they can and get to work delivering something like what is needed within the required timeframes and budgets. Clients that know us as their best development team use us this way and very little time is spent by either side “covering bases” and promising deliverables that may become irrelevant during project developments. The choice really comes down to specific factors having to do with each participant in the project.
The Waterfall process is the safe choice, whereby if any participant falls into that category, it is the choice most free from danger for the project as a whole. Conversely, the Agile process requires a good fit and commitment from everyone involved.
Client
For clients to go Agile, they must be available and capable of full ongoing participation. They must have complete trust in their chosen development team. They must be flexible in the sub-tasks in order to achieve the main tasks. The most common factors for choosing Waterfall here are a lack of time for participation or an unfamiliarity with the development team.
Development team
For a Development team to go Agile, they must have a solid team of highly skilled, readily available, extremely dependable individuals. Team members need to be able to maintain their availability throughout the life of the project. The most common factor for choosing Waterfall here is when key team members may need to leave mid project.
Project
Projects are best looked at from the other direction. For a project to go Waterfall, it needs its requirements extensively detailed and clearly defined. Tasks, and the steps to complete them, need to be outlined and fully understood going into the project. The most common factors for going Agile with a project are when there is only a rough idea of the project requirements and the budget and deadline are more important than the specific parts which are auxiliary to the main functionality to be delivered. If any of these groups fall into the Waterfall category, then Waterfall is the safe choice of process for completing the project. Otherwise, enjoy Agile and get to work.