How is Kanban different from Scrum? What connects Scrum and Kanban? And finally – which methodology to choose when deciding to work on software development? This will be learned from this short guide.
The subject of this entry is much more widely discussed in our latest free e-book. Scrum and Kanban.
Before comparing these two agile software development methodologies, it would be good to understand their mechanism of action.
Scrum is a framework that allows people to successfully solve complex adaptation problems. Scrum allows producing products of the highest possible value in a productive and creative way.
What is worth emphasizing is that Scrum can be used not only in creating technological products.
For Scrum, there are 6 key principles
Time Boxing – limiting time units in Scrum is one of the key principles. Time-boxed elements in Scrum include Sprint Planning Meetings, Sprint Review Meetings, Sprints, and Daily Standup Meetings.
Iterative Development – the main idea is to create small cycles of development that have a well-defined duration and scope.
Value-Based Prioritization – this principle highlights the focus of Scrum to deliver maximum business value, from beginning early in the project and continuing throughout.
Collaboration – Transparency of specific tasks, high level of communication within the team and with the client.
Empirical Process Control – This principle emphasizes the core philosophy of Scrum based on the three main ideas of transparency, inspection, and adaptation.
Self – organization – This principle focuses on today’s workers, who deliver significantly greater value when self-organized and this results in better team buy-in and shared ownership; and an innovative and creative environment that is more conducive for growth.
Scrum? How is this done?
Describing this methodology in one sentence goes like this:
Instead of dedicating the big task of building a large product to a large group of people focus on small teams. Working in short iterations to provide small parts of the final product.
In the case of a team managed in Scrum, they will undertake to perform only those tasks that he considers to be possible to perform during one sprint. If the task is too big to fit in a sprint, the team and product manager try to divide it.
Scrum is based on iterations that have strict time limits, each iteration can be divided into three phases:
- Beginning of iteration
- A specific phase of iteration
- End of iteration
Description of how you should use Scrum
- Divide the organization’s resources into small, cross-functional, self-organizing teams.
- Split the whole work into small, specific tasks, giving them the right priority and estimating the amount of work needed
- Divide the time allocated to a given project into specific iterations (usually from 2-4 weeks)
- After each iteration, discuss and optimize the priorities and time spent on specific tasks.
- Optimize the entire process by organizing a retrospective meeting after the project.
The word Kanban after translating from Japanese means a signboard or plaque with the inscription informative. It is a method of production control, the most important element of which is inventory control – each organizational unit should produce only as many goods as is currently needed.
The goal of the method is to reduce inventory, storage costs, eliminate production downtime. It ultimately increases the productivity of the entire enterprise.
There are 5 basic principles, which are crucial to follow in order to use the Kanban method successively
- Limit work in progress
Limiting work in progress by limiting the number of tasks that can be at a given stage of the process at the same time allows you to highlight problems and identify bottlenecks.
- Set clear rules
Each team member’s understanding of how the production process goes and looks allows conducting more rational and objective discussions about the problems encountered. Thanks to this, it is possible to find a common solution instead of wasting time explaining possible misunderstandings.
- Visualize the process
The most important principle of the Kanban method is process visualization. Hence the belief that Scrum’s “transformation” into a board divided into columns presenting subsequent stages of the process is already Kanban.
This table should reflect the whole process as accurately as possible, therefore it can consist of three columns, however, there is no upper limit.
What’s more, in addition to the columns themselves, above each of them should be a number that reflects the maximum number of tasks that can be simultaneously in a given column. These numbers are intended to limit work in progress
- Manage flow
Workflow through each stage of its flow should be monitored, measured and reported. Through active flow management, the negative or positive impact of continuous, growing, evolutionary changes on the system can be assessed
- Improve together
The Kanban method encourages small, constant, growing and evolutionary changes that fit together. When teams share an understanding of theories about work, workflow, processes, risk. Then they are more likely to be able to build a similar understanding of the problem or suggest improvement actions
Kanban? How is this done?
In Kanban, strict iterations are not imposed. You can plan or carry on with more freedom. You can freely decide whether they will be made at regular intervals. Kanban allows changes, which are supposed to be made to a project.
Creating real-time changes often helps a lot, but it can also cause chaos in the design.
Description of how you should use Kanban
- Visualize the workflow – divide the main tasks into smaller tasks. Write each task on a separate piece of paper and place them on the board. Use the columns with the appropriate names to determine at which stage of work the specific task is
- Assign a specific limit to work in progress (WIP) – how many specific tasks can be performed simultaneously
- Specify the execution time (average time to complete one task, sometimes called “cycle time”). Optimize the entire process so that its implementation time is as short as possible and as predictable as possible.
Scrum and Kanban? What to choose?
As you probably noticed after reading this guide – Kanban is a more adaptive and free methodology. Scrum, in fact, gives us some limitations (e.g. using timeboxes strictly defined in time, dividing work into iterations, and creating cross-functional teams).
Despite these differences, these two methodologies share a goal. Scrum and Kanban are designed to deliver the project to the end in the most efficient way possible. However, it is difficult to determine which of these tools is clearly better than the other. Depending on the circumstances, each of them has its advantages and disadvantages.
Scrum is certainly a methodology that has more principles and rules at a high level of generality. Both Scrum and Kanban are based on incremental development, in other words on breaking large tasks into smaller parts.