In recent years the business world has seen a significant shift in development models used by companies to create digital products. Indeed, some firms are moving away from the previously predominant Waterfall method to more agile methodologies such as the Scrum approach. This article takes a critical look at both approaches to determine the benefits and drawbacks of each method and better understand the shift from Waterfall to Scrum.
An Introduction to Waterfall
The Waterfall method is a step by step development model where phases rigidly follow a specific order. The next phase cannot begin until the previous phase has concluded. Generally, the Waterfall approach begins with extensive planning and design, followed by coding and testing, and ends with publishing and maintenance. The main idea behind the Waterfall method is that the thorough planning process negates the need to make serious adjustments when developing. To that end, the Waterfall technique attempts to prepare for all outcomes to avoid exhaustive delays costing time and resources.
Source: Canvas Info Tech
An Introduction to Scrum
The Scrum approach to development, on the other hand, is quite different in that it there is continuous adjustment to the development process. True to its agile nature, Scrum comprises constantly shifting requirements and continuous interaction between autonomous groups created based on skillset. Unlike Waterfall, Scrum develops via sprints instead of a continuous process. As defined by the Scrum Alliance:
“Scrum is a simple yet incredibly powerful set of principles and practices that help teams deliver products in short cycles, enabling fast feedback, continual improvement, and rapid adaptation to change. As the leading Agile development framework, Scrum has predominantly been used for software development, but it is also proving to be effective in efforts far beyond.”
Scrum is more concerned about the individual performance of each developer than it is about the functionality of the development process. With the emphasis put on autonomy, the Scrum method often does not include a team leader and development remains flexible. This flexibility is greatly sought after and, as a result, the Scrum method has been adopted by some large, well-known companies including Salesforce, Accenture, Vendesk, AutoZone, Wells Fargo, Walmart and Symantec (Source: Canvas Info Tech).
Strengths and Weaknesses of the Waterfall Method
Even with the recent migration towards the Scrum approach there are still considerable benefits that come with the Waterfall method. First of all, the elaborate specifications allow developers to detect bottlenecks or other potential hazards in advance. Because of this advanced planning, resources can also be allocated efficiently if development stays on track. What’s more, development will run smoothly because the model has effectively planned everything out. This allows for forecasting possibilities that are not available when employing Scrum to create a product. Of course, contingencies cannot be made for all scenarios so Waterfall is still not immune to unexpected setbacks. At its core, Waterfall is an organized process with responsibility areas clearly marked.
There are some marked downsides to the Waterfall approach to development. The first downside, and one that can disqualify Waterfall as a viable strategy in some cases, is the significant amount of time dedicated to the planning process. Because every element of development needs to be mapped out in advance, coding can be delayed by days or even weeks. Another drawback is the high level of micromanagement the Waterfall method necessitates. The already slowed process, when compared to Scrum, is further impeded by the high managerial involvement that the approach requires. It is clear that time can be an important factor and Waterfall can be significantly slower from start to finish than Scrum.
Strengths and Weaknesses of the Scrum Approach
There are also numerous advantages to the Scrum method when developing. In contrast to the Waterfall method, Scrum does not require extensive planning and development can commence very quickly. With Scrum, requirements are created through user stories which contain descriptions of expected outcomes related to business processes, user acceptance criteria, and user behaviour. Moreover, Scrum is much more flexible than Waterfall and is made to deal with ambiguity comfortably. In Scrum, developers work around user stories and are not assigned rigid tasks, which is contrary to developers in the Waterfall model. Working around user stories lessens the impact unforeseen variables can have on the project as developers can easily pivot and continue towards their goal.
The disadvantages of Scrum are plain to see. If a product owner poorly sorts out priorities, if a team cannot detect potential risks during their sprint planning and cannot talk them over, if a tester is not involved in development processes from the very beginning, if a team lacks communication or responsibility, it will inevitably lead to issues. In dealing with these troubles there is no project leader as the development team governs itself (Source: 4xxi Blog). Furthermore, the lack of planning can result in more unforeseen bottlenecks when compared to the Waterfall method. Scrum developers may be better at dealing with the bottlenecks than their Waterfall counterparts but this flexibility can lose its benefit if there are significantly more bottlenecks to overcome.
Testing each Method
When it comes to testing, both methods recognize the importance that quality assurance can have on the finished product. In the Waterfall approach user acceptance testing (UAT) is conducted after integration. QA testing helps deliver a functional final product without major bugs to hamper usability. Although it takes time after coding and integration to test, results show that thorough testing leads to fewer critical bugs at the time of launch. In Scrum, testing and integration occur simultaneously. This saves precious time if developers are trying to expedite the development process. However, testing in Scrum does have a major drawback as there are considerably more critical errors in the final product. With the Waterfall method, you only have one user acceptance test at the end of the development phase. In Scrum, you can schedule a UAT phase after each sprint or after a certain number of sprints, depending on the complexity and length of each sprint. Therefore, it is important to allocate time for testing in advance according to the development model. Regardless of the method, QA testing is a critical part of any product development and should never be overlooked.
Final Thoughts
So which approach is the better option? Correct methodology choice directly depends on several factors. Your team’s skills, the aim and scope of the project, as well as the manager’s personal preference can all play a role in determining which method is best suited for the task at hand. This decision should be thought over before the active product development stage since the result highly depends on it. Waterfall is usually the correct choice when facing deadlines or looking for well-rounded performance. Scrum on the other hand is useful when the final output of the project is less clear or when you want higher involvement from team members. As stated previously, when employing the Waterfall method, a longer UAT phase after integration should be anticipated. With Scrum, it is appropriate to execute a short testing phase after each sprint or once a month in case of weekly sprints. Corporate culture may also play a factor as some companies prefer the stability Waterfall provides over the adaptability and creativity of Scrum. Ultimately the solution should be dictated by the situation as no two products are the same.