Scrum vs. Waterfall
Scrum and Waterfall are now two most popular software development methodologies. They are widely used by programmers all over the world. But what are their main features? And what is the difference between Scrum and Waterfall? Let’s find out.
To understand the difference between Scrum and Waterfall it is necessary to find the proper definition for each methodology and to describe its basic principles.
Waterfall is also called the traditional method of software development. It originated as a methodology of hardware creation. That is the reason for many discussions on it today. Waterfall is based on three main principles: low customer involvement, strong documentation, and sequential process of development.
As a Waterfall project begins, the team makes an interview of the customer to learn all about the future software. The developers document the client’s demands. The team uses this documentation in its further work, because it does not contact with the customer until the final product is ready. Modern software developers consider this feature one of the biggest problems of Waterfall, because the customer cannot see the intermediate product, and so, he may be disappointed with the results of the team’s work.
The process of Waterfall software development is sequential. It means that it has a number of compulsory stages. Each task should pass all of them before it is done. However, Waterfall developers cannot return to the previous stage of task performance even if they have detected bugs in the intermediate product. The only thing they can do is to run the project from the very beginning, but most specialists agree that this is a bad solution for the problem.
Waterfall teams are large. They include all traditional specialists involved in the process of software development like testers, analysts and project managers.
Scrum and Waterfall development processes differ significantly. Scrum is an Agile methodology. It means that it is based on the principles of strong customer involvement in the process of software development, and iterative cycles. The customer takes part in all stages of Scrum project realization. He is represented by a team member called the Product Owner, who is responsible for gathering user stories and prioritizing them in the product backlog. The Product Owner can see the intermediate product after the end of each iterative cycle. Such cycles are called sprints. Usually they last two weeks, but they can be longer or shorter depending on the complexity of the project. Each Sprint has its plan and goals. The sprint backlog is a list that contains all tasks of a certain sprint. They cannot change during the sprint.
It is also necessary to say a few words about the use of Scrum and Waterfall together. Most developers think that it is impossible to combine these two methodologies. Partially they are right. However, it does not mean that Scrum teams cannot implement some features of Waterfall methodology like strong documentation, or some specialized roles.