Waterfall and Kanban Methodologies
If you are a software developer, you have probably heard of Waterfall and Kanban methodologies. There are lots of articles on the Internet that describe each of these software development methods. However, these descriptions are not always complete. Additionally, only few materials on the Internet explain the difference between Waterfall and Kanban. Hence, it is necessary to discuss it.
We will begin our article with the descriptions of Waterfall and Kanban methodologies, because it is impossible to understand the difference between them without doing that.
Waterfall is the oldest software development methodology. It originated in 1950s when a famous method of hardware development was applied to software creation. That is why Waterfall is often called the traditional model of software development. The methodology is actually based on three main principles: strong documentation, low customer involvement, and sequential order.
Waterfall developers need to have a lot of documents because of the low degree of customer involvement into their projects. They usually conduct only two meetings with their customers during every project. The first meeting is conducted before the work on the project starts. It is aimed at learning and documenting the customer’s requirements to the future software product. The next meeting takes place only after the final product is ready to be delivered. The customer should estimate it. If he does not accept the software product, the team should start the project from the very beginning.
Every Waterfall project has a number of sequential stages. They should be passed one after another without changing their order. Usually Waterfall projects have 5 stages, but sometimes their number may reach 7. The team cannot return to the previous stage and change something in it if it has already been finished. That is probably the largest disadvantage of Waterfall software development method.
Kanban is an Agile methodology of software development. Initially it was a system of project management for manufacturing industry. It was invented in Japan in 1940s. Later Kanban was applied to software development. The methodology is based on three principles: consideration of customer’s demands, limitation of work in progress, and workflow visualization.
Just as any other Agile methodology, Kanban involves the customer into the process of software development. In Kanban teams the client is usually represented by a Product Owner – a person who is responsible for gathering user stories and prioritizing them in the product backlog. Later these stories are turned into tasks.
Visualization of workflow is the main principle of Kanban methodology. Kanban teams use digital and physical Kanban boards to see the progress of their work and the amount of tasks that are performed at one moment. Modern digital Kanban boards allow the developers to visualize their workflow in various forms, including charts, diagrams, and tables.
The principle of WIP limitation is aimed at limiting the amount of tasks performed at the same time. It is quite simple to achieve this goal by using a Kanban board. As a result – the productivity of the team increases.
As you can see, the difference between two above mentioned methodologies is remarkable. However, both of them are aimed at achieving the same goal – creating good software. That is why some software development teams use Waterfall and Kanban combined. This practice allows them to implement the advantages of both methodologies in their companies. However, such combinations are not widely spread, so there is no need to cover them in greater detail.