Flexible project planning, consistent and continuous development, and optimized task visualization. Yes, kanban can! Explore why you should be using kanban in your Software Development Life Cycle.
Are you looking to change your software development project management or just want to learn more about the different Agile frameworks available? In this post we’ll discuss why you should be applying kanban to your software development projects and explore some of the the differences between kanban and scrum methodology.
Kanban as we know it today is a project management and scheduling system that intends to eliminate waste within the manufacturing process. Japanese for “visual signal” in the literal sense of the word, the English-term “queue limiter” most closely captures its real meaning. Kanban has its roots in Lean production, originally put into practice by car manufacturer Toyota in the 1940s, but has since become an important scheduling system in other industries, including software development.
1. Project flexibility with the kanban system
If you’re using kanban, your focus is going to be on delivering completed items before moving on to the next task and having as few items as possible in progress at any given time. Isabelle Salemme at leading kanban tool, Pipefy, gives a great breakdown of how you can implement the kanban method into software development projects, with the use of a kanban board or kanban tool, here. Let’s take a look at how the kanban method offers users great flexibility in the software dev process.
Task Estimates? What task estimates?
Ok, so there are still some estimates. Estimates make for sound project management and planning! But note that kanban offers a much more agile approach to production estimates, in comparison with the other systems, such as scrum. Both with a focus around Agile values and principles, kanban and scrum appear to be quite similar. Both teams work on project objectives in order to reach a common goal, and both have a list of tasks to complete – kanban board tasks vs. Scrum product backlog items in the form of Sprints. But whilst in scrum, a relative value – or story point – is given to each item to estimate the time and effort needed to complete the item, only an absolute value is used for kanban tasks – see more on these values here. Scrum focuses on estimates and velocity in the sprint, whereas kanban is geared towards breaking each task down into pieces of roughly the same size to then measure velocity simply in terms of how many items were completed per unit of time. So whilst there is still some estimating to be done in kanban, there is more flexibility to be less specific in the process.
“By matching the amount of work in progress to the team’s capacity, kanban gives teams more flexible planning options, faster output, clear focus, and transparency throughout the development cycle.” Dan Radigan, Atlassian’s Senior Agile Evangelist
Continuous flow of tasks in the kanban cycle
The beauty of kanban is that you can release anytime, in small or large releases, due to the flexibility of task management. Whilst some argue that scrum offers reliability and predictability in the development process, think about how often a release date gets postponed. With kanban, features that have been completed are available for immediate release and the best part about it is that it gives the team a chance to start working on the next highest priority task, immediately.
“In kanban if you have an urgent request to implement or a really important user story, you can just put it on top of the queue. It is simply a Product Owner’s dream!” Michael Dubakov, Targetprocess Founder
In comparison with scrum, where you don’t typically add backlog items to a sprint once the sprint has begun, kanban allows teams to add and change the priority of tasks throughout the kanban cycle. How’s that you ask? Well, kanban puts limits on how many features a team can work on at a given time, yet allows for changes to the priority of tasks at any time. With its pull strategy, the idea is to control the flow of resources by replacing only what has been consumed, i.e. teams and resources are allocated to tasks based on where and when they are needed in order to support quick lead time of product releases.
Atlassian’s Dan Radigan provides a fantastically coherent breakdown of how kanban teams work with their tasks and how adjustable the technique can be. He explains that a team using kanban only focuses on tasks that are actively in progress. Once the team completes a task, then and only then will they select the next task from the top of the kanban backlog. The Product Owner can easily re-prioritize tasks in the backlog without disrupting the team, because any changes outside the current work items will not impact the team. As long as the Product Owner keeps the most important work items on top of the backlog, the development team will be delivering maximum value within the project. In this way, there’s no need for the fixed-length iterations you find in scrum. And by avoiding the need to commit to a regular fixed length sprints and backlogs, kanban instead has a continuous flow.
2. Visualization of workflow through metrics
Kanban systems produce reports and metrics that intend to increase efficiency in projects and systems by giving everyone involved in a project real-time insights into the status of the project. Kanban boards and online tools provides visualization of the flow current work in progress and helps team and project managers to understand the team’s progress. Additionally, control charts and cumulative flow diagrams provide the data that enables teams to identify and establish patterns in their work and ultimately improve the workflow.
As Pipefy’s Isabelle Salemme explains, lead-time, throughput and cumulative flow reports are the tools that offer you the most important set of information for better process management in kanban systems. The information derived from these reports will allow you to build realistic plans and predictions based on actual quantitative data analysis of your team’s performance, rather than just second guessing yourself or your team.
3. High-value team collaboration
The kanban method supports high-value team collaboration in software development projects. By encouraging small, incremental, continuous improvements, it intends to lessen the impact that changes often have on production as well as on teams.
“By stimulating a slower change pace, kanban increases the team’s motivation and self-governance capacity.” Isabelle Salemme
Moreover, kanban supports problem solving and risk management within teams. It’s crucial that team members understand their immediate tasks are at the beginning of a kanban cycle. Lack of communication can have a downgrading effect on a project if team members are not able to perform current tasks and also not move on to new tasks. In order to avoid production dips, kanban promotes effective communication and necessary discussion of issues, problems and risks among team mates from the beginning of a cycle.
Kick it out of the nest and see if it can fly
Of course kanban is just one type of agile framework and may not work for all software dev teams! But capitalizing on the lessons you’ve learned here, why not try kanban on for size? As Dan Radigan has noted, some teams blend the best of kanban and scrum into “scrumban.” They take fixed length sprints from scrum and the focus on work in progress limits and cycle time from kanban.