What is Waterfall?
Waterfall methodology, also called a cascade model, is a traditional software development approach which is linear and sequential. Each phase of the project begins after the work in the preceding one is completed. The variety of phases is shown on the diagram below.
In case any phase returns an unsatisfactory product, i.e. inconsistent with the requirements or defective, we go back performing subsequent iterations until we get a satisfactory result. This methodology is used quite widely outside the IT industry as well, most often in construction, manufacturing and other branches with repetitive project work.
What is Scrum?
Scrum, on the other hand, is an iterative and incremental software development framework derived from the Agile methodology. Product development is divided into sprints that last a maximum of 1 month. This methodology emphasizes project management and development. The result of each completed sprint should be a working version of the product to the extent consistent with the goals of the completed iterations.
Short and frequent sprints allow dynamic and flexible introduction of changes and improvements to the project, and a working version of the product is delivered after each sprint. Scrum methodology gives a possibility to solve complex problems and adapt the product to the customer requirements. It enables efficient and innovative product creation, with the highest possible quality for the customer, due to the iterative and incremental control process.
Scrum vs Waterfall - comparision
When to use Waterfall and when Scrum?
Agile methodologies work well when you’re dealing with a new project whose final form isn’t fully defined and whose requirements are constantly evolving. It helps manage unpredictable and complex projects. However, it’s not a good choice if the project requires repetitive activities and deals with routine, prescribed tasks, as it doesn’t bring any added value.
Waterfall, on the other hand, will be a good choice when we have precise and stable requirements from the beginning of the project development, as well as proven and stable technologies and tools. Another important reason for using the cascade model may be the contractual constraints (completion time and budget), as it is the case in public sector projects.
Testing in Scrum and Waterfall
Scrum testing is combined with the Agile manifesto. In this case, customer requirements and technical work are developed simultaneously. This approach makes both the development and the testing process aligned with the customer requirements.
Adventages of testing in Scrum:
Less planning due to simplified structure,
The tester works together with the developer,
Participation from the early stages of the project allows to prepare tests of a piece of functionality,
There is no accumulation of bugs. Everything is solved during product development,
Faster problem solving,
Better communication in the project team,
Requires effective communication within the team,
Lack of a specific organizational structure.
According to the Waterfall methodology, testing is the penultimate phase of product development. It begins when the other phases are complete, so we work on the finished product. Testers are also involved in reviewing the requirements before starting the implementation phase.
Well documented and structured testing process.
All features in the project are finalized and delivered.
Testers and developers don’t need to maintain constant communication and can work independently.
Ease of management.
Extensive documentation and standardization allow a lower threshold of entry into the project.
Testing at the end brings risks of accumulated defects.
Both methodologies have their advantages and disadvantages. For some projects Scrum will be better suited, while for others Waterfall will be a more reasonable choice. The criteria for choosing the right methodology can be the type of project, the size and structure of the team and the deadline for delivering the finished product. It is also important to answer the question whether our project needs more stability or flexibility.