While agile design efforts is current best practice, there remains a tremendous amount of work being constructed according to frameworks long in motion. ITIL and traditional legacy models of building and releasing versions of software every six months or once a year still is the standard for many firms throughout the globe. While each approach has its own benefits, these various development styles are not incompatible.
Speaking of, and representing, my industry, the agile mindset has become increasingly relevant to IT service management, which has been built, in large part, in an ITIL world. How do we make traditional development models more suitable for an agile environment? While the answers might seem complicated, one solution is as simple as taking a marker to a board or a glass wall in a project management approach dating back almost 80 years.
What is Kanban?
The Japanese word “Kanban” means “sign” or “billboard.” The Kanban system was originally designed in manufacturing, by the automaker Toyota, to easily trigger the start of the process for the replenishment of needed supplies. The Kanban ordering system include concepts of Lean manufacturing processes, and it grew quickly in popularity as workers at Toyota embraced the technique to reduce costs and keep up with demands of customers. Since then, thousands of companies in all types of industries have implemented the Kanban system for continuous improvement, originally developed during the waning days of the Second World War.
Kanban for software development
By order of its affiliation with agile development, Kanban has become an extremely popular option for software teams. It differs from other project management methodologies, like Scrum and Extreme Programming (XP), in that it doesn’t use time-boxed iterations – a set period of time that a project phase must be completed. Kanban relies on the continuous delivery of products that must meet the expectations of customers.
One benefit of Kanban is that if customer expectations are not met, a team has multiple opportunities to give direction for course corrections during iterations. Kanban is based on work that is done in small segments so as to reduce the amount of work should any changes occur. Kanban is a work scheduling system that maximizes the productivity of a team by reducing idle time. Idle time can occur within any process, workflow or procedure and can usually be traced back to opportunities within the process itself.
Kanban is not new
Kanban is prominent among today’s agile software teams, but it’s not new, as previously stated. When Toyota began utilizing the processes, it did so based on a model used by supermarkets to track inventory on their shelves, which stocked just enough product to meet consumer demand. With inventory levels matching consumption, supermarkets were able to gain efficiency in inventory management by decreasing the amount of excess stock held at any given time and can ensure that the given product a consumer needs is always in stock.
When Toyota applied the system to its factory floors, the goal was to better align their massive inventory levels with the actual consumption of materials. To communicate capacity levels in real-time on the factory floor, workers would pass a card, or “Kanban,” between teams. When a bin of materials being used on the production line was emptied, a card was passed to the warehouse describing what material was needed, the exact amount of this material, and so on. The warehouse then would provide a bin of new material ready for the production floor. Those in the warehouse would then send a Kanban card to the supplier, which would also have a bin of this particular material waiting and would be shipped to the warehouse.
Ultimately, this process became known as the “just in time” approach.
Many changes have occurred in the eight decades since, but the heart of Kanban remains. The software development side of things have developed significantly. According to Kanbanblog.com, the Kanban software development process can be thought of as a pipeline with feature requests entering one end and improved software emerging from the other end. Inside the pipeline, there is everything from informal ad hoc process to a highly formal phased process.
“Kanban is incredibly simple, but at the same time incredibly powerful. In its simplest incarnation, a Kanban system consists of a big board on the wall with cards or sticky notes placed in columns with numbers at the top,” the site says.
There are several different ways you can layout the Kanban board, with columns “to do,” “doing” and “done.” Once the testers have finished testing a feature, they move the card and free up a slot in the “test” column.
Cards represent work items as they flow through the development process represented by the columns. The number of tasks for each column can be limited, with the limits being the critical difference between a Kanban board and any other visual storyboard. Limiting the amount of work-in-progress, at each step in the process, prevents overproduction and reveals bottlenecks dynamically so that you can address them before they get out of hand.
Regardless of whether a team’s board is physical or digital, the function is to ensure that the team’s work is visualized, their workflow is standardized, and all dependencies are identified and resolved.
Agile and Kanban
When applying an agile mindset, you respond more quickly to your customer’s needs. Kanban is an agile method emphasizing work processes instead of teams constantly starting new tasks and getting stopped in the middle for other priorities. Kanban encourages focusing on a singular task before moving onto the next item. In a team setting, working together helps them visualize the task you’re currently working on so they can finish quicker.
Kanban board for calls
Using a specific example, service management teams can work with several columns that represent the various phases a call passes through. Calls assigned to an operator group appear in the “unprioritized” column. The calls can then be dragged and dropped through various columns until it reaches “closed.” When the call moves through the various phases and columns, the development team can then visualize the progress they are making.
Calls can be ranked vertically. If a call is more important than the others, the service management team can just drag it to the top of the column where the call gets picked up and moved to “in progress” at the earliest opportunity.
These features make the Kanban view an ideal way to start a team’s workday. Simply open the Kanban view on a large monitor and quickly identify where the bottlenecks are and which work needs to be picked up next.
How to get started with Kanban
Per David Petersen, founder of Kanbanblog.com, the following steps are those required to set up the program:
- Map your value stream (your development process). Where do feature ideas come from? What are all the steps that the idea goes through until it’s sitting in the hands of the end-user?
- Define the start and end points for the Kanban system. These should preferably be where you have political control. Don’t worry too much about starting with a narrow focus, as people outside the span will soon ask to join in.
- Agree on: Initial work-in-progress limits and policies for changing or temporarily breaking them; process for prioritizing and selecting features; policies for different classes of service (e.g. “standard,” “expedite,” “fixed delivery date”). Are estimates needed? When choosing work, which will be selected first?; and frequency of reviews.
- Draw up a Kanban board. All you need is a whiteboard and some Post-It™ notes. Don’t spend too much time making it look beautiful because it will almost certainly evolve.
- Start using it.
- Empirically adjust.
Kanban customer satisfaction
In the future, you will be able to use the board for card types other than for just call management. This helps teams prioritize work across modules and ensures a good balance between reactive work, such as calls management, and proactive improvements, such as change management.
Through Kanban project management, firms can expect more flexibility in the number of columns or projects, and how they affect the underlying task cards. Only the column “closed” changes the status of the underlying call. You can then customize how each column affects the status of the card to best suit your business processes. This helps your operators work from the board without needing to open the card and make changes there.
The future of Kanban is likely much like its past, even as it continues to evolve beyond sticky notes and walls. A fast-flowing agile environment means a reduction of the amount of work that can occur, and more just-in-time approaches to project management and development, to meet the needs of customers. Kanban is a work scheduling system that maximizes the productivity of a team by reducing idle time. Idle time can occur within any process, workflow or procedure and can usually be traced back to opportunities within the process itself. With Kanban and an agile environment, development times decrease and customer satisfaction increases.