_ Blog / Management

The Agile Way to Use Kanban in Software Development

by Shanie Weissman
/ December 5, 2018
#Management
Kanban in software development

The best way to direct and manage tasks across your software delivery system is to keep a close eye on workflow via a designated, centralized release management system. However, it often seems that regardless of the methodology you choose, or how carefully you monitor workflows, it is hard to predict the duration of individual tasks. Neglecting to properly steer resources can lead to bottlenecks, causing delays to downstream tasks and impacting delivery schedule.

Kanban is a lean manufacturing practice for managing assembly lines. In the mid-2000s, many agile practitioners realized Kanban met their needs as a lightweight project management methodology, so they adapted the Kanban system for software development. In this blogpost, we introduce you to Kanbanflow for effective, Kanban-based portfolio and project management.

THE FOUR PRINCIPLES OF KANBAN

Kanban is the Japanese word for “billboard.” The Kanban system is a project management methodology developed in the late 1940s by Toyota. In the period following WWII, Toyota was trying to establish itself as a major player in the automotive industry. The company realized that while it lacked the economies of scale enjoyed by its US rivals, it could compete by producing high-quality vehicles more efficiently. As part of this effort, Taiichi Ohno, an automotive engineer, created a system based on the following principles:

1. VISUALIZE

A visual representation of your process exposes potential and real problems that will impact the output of the project. It helps you locate potential and actual bottlenecks. As you compartmentalize to visualize your system, you need to define policies for managing tasks. Also, set the criteria required for completing a specific stage and moving on to the next one.

2. LIMIT

To ensure efficiency, Kanban team members must complete their current task before starting a new one. Limiting work in progress benefits individual team members by reducing the mental effort involved in juggling multiple unfinished tasks and managing priorities.

3. OPTIMIZE

Collect and analyze flow-related data to create indicators and metrics for existing and future problems. Use this information to solve specific problems immediately as they occur.

4. IMPROVE

The Kanban system is designed to create a culture of continuous improvement, across an entire organization. Feedback cycles are an important element of that. Feedback encourages reporting and fixing problems quickly. Teams are encouraged to try new approaches and solutions to existing problems. Kanban is a data-driven system, making it possible to analyze the results of this type of experimentation. 

THE KANBANFLOW

Kanban can be used for managing many different workflows and types of tasks. Kanbanflow has been adopted by many teams that use Scrum or the Scaled Agile Framework (SAFe)

The first step of starting a Kanbanflow project is to create a board. The board is divided into three or more columns. Each column represents a stage of the process, with the columns at the left and right sides of the board representing the start and end of the process. At the top of each column is a label with the name of the stage. The columns in between the left and right columns indicate individual steps of the process. If you want to create a very simple Kanban board, you could label the columns To-Do, Doing, and Done. You can customize the board to match your development process and create columns, such as Stories, Current Iteration, In Progress, Tested, Released, etc.

KANBAN STEP-BY-STEP

At the start of each development iteration, the project manager and the development team follow these steps

  1. Compartmentalize the iteration into individual development tasks
  2. Write each task on an index card (physical, like a Post-it, or virtual, like )
  3. Place the cards on the board
  4. Assign a card to individual team members

 Once team members are assigned a task, they move their task card to the next column on the right as they complete each process stage. As the cards move across the board, you can identify issues at each stage of the process. When all task cards are in the rightmost column, the iteration is marked as complete.

KANBAN POLICY

To ensure your Kanban board operates efficiently, create policy guidelines. These policies should be explicit. They indicate the steps that need to be performed during a particular stage, any deadlines, who should execute and the criteria for moving a card to the next column. For example: “Only product owners can add cards in this column,” “A card can be moved only when code review is completed,” etc.

You can represent these policies by creating simple checklists that define the entry and exit criteria for each stage, for example, the definition of done (DoD) release criteria checklist:

  • Proof of Concept (PoC) for add file feature created by Dev
  • PoC tested on Chrome, Safari by QA
  • List of improvements gathered by PM
  • Complete report by 07.11.21

Note that the definition of a product feature as “Done” usually differs according to the opinion of a product owner or a developer. So, to avoid misunderstandings, it is recommended to check feature readiness for release against the definition of done (DoD) and acceptance criteria checklists.

KANBAN IN ACTION

As you use the Kanban board, you will start to identify specific problems. For example, if multiple cards start piling up in one column, it shows there is a bottleneck in this area. After you identify the problem, you can communicate with team members and collaborate on a solution. Solving these types of local problems as they arise improves team efficiency and productivity.

You can build a physical Kanban board using a whiteboard and index cards, or you can create an online virtual board with Panaya Release Dynamix or other available tools.

KANBAN TROUBLESHOOTING: TIPS AND TRICKS

Here’s a closer look at some common delivery pipeline problems and how to fix them, using the Kanban system.

PROBLEM #1: ORGANIZATIONAL DYSFUNCTION

Transitioning from your existing process to the Kanban system will be stressful for those involved. Often, the process you are trying to replace is completely broken. Trying to rebuild it via a new and very different process won’t make things better.

Be aware that if you don’t identify the organizational culture problems, like broken communication channels within your existing system first, you risk migrating them to the new system. The migration process will expose many problems that are hidden or dormant inside the existing process.

FIXING ORGANIZATIONAL DYSFUNCTION WITH KANBAN

Kanbanflow is built upon feedback loops and continuous improvement. Creating an effective Kanban board requires active management of the board and the active participation of team members. This can be achieved using easy-onboarding collaborative agile tools. Organizations wishing to adopt Kanban must foster a culture of open discussion of internal issues. They must provide clear communication channels for the necessary feedback loops. Again, this can be implemented using the right tools.

PROBLEM #2: NOBODY UNDERSTANDS KANBAN

Kanban is simple, but making it work entails understanding the ideas and principles behind it. For a successful implementation of Kanbanflow, all team members must understand it. They must also be totally on board with wanting it to be a success. The ideal Kanban tool should demonstrate time and effort-saving for all stakeholders: developers, testers, product owners and program managers alike.

FIXING THE KNOWLEDGE GAP WITH KANBAN

To make the Kanban system work for you, you need to educate individual team members. Achieve this by providing them with training and workshops, educational blog posts, and ongoing mentoring sessions.

PROBLEM #3: KANBAN AND AGILE DON’T MIX

Kanban was conceived to manage production lines. Production lines work continuously 24/7, whereas agile development teams work in iterations or sprints. A continuous workflow has no start and end points. This makes it difficult for development teams to establish a baseline for work estimates. In order to effectively plan an iteration, teams must be able to balance the time taken to complete assignments against their team’s available capacity.

FIXING THE AGILE AND KANBAN MISMATCH

To achieve Kanbanflow in your organization, integrate the Scaled Agile Framework’s (SAFe) Team Kanban methodology. SAFe is an attempt to apply agile principles on a large scale. It achieves this by centralizing overall control of the development process under the enterprise’s management structure. 

Most SAFe teams use Scrum for project management. Teams that develop new code may apply Extreme Programming (XP) practices to bring focus to software engineering and code quality. Some teams, however—particularly system teams, operations, and maintenance teams—choose Team Kanban, “a method that helps teams facilitate the flow of value by visualizing workflow, establishing work-in-process (WIP) limits, measuring throughput, and continuously improving their process.”

Team Kanban enables your teams to continue using your existing agile and SAFe processes, with the added advantage of Kanban-based planning and workflow management. Team Kanban overcomes the iteration planning issue by asking team members to provide estimates for each task to be placed on the Kanban board. Adding those together makes it possible to estimate:

  • How much time the entire iteration will take
  • Whether the necessary capacity is available
  • What additional resources team members might need

USING KANBAN, THE AGILE WAY

Using SAFe and Team Kanban is an important part of enterprise value stream management (VSM). VSM is a method for linking economic value to technical outcomes. Using VSM provides visibility into a business capability’s current state and projected outcomes.

Kanban dashboard supports VSM by displaying the flow and current status of your development projects in real-time. This lets you and your business track the progress of projects and work items from planning to delivery, all the way down to the level of user stories.

Finally, to help with your VSM implementation, select a tool that offers a requirements’ traceability matrix for each development task. This will help you continually visualize your software development process and the execution of business requirements with full transparency.

Kanbanflow

Kanbanflow Project Management using Panaya Release Dynamix (RDx)

CONCLUSION

One of the more frustrating parts of being a software development project manager is acting as a workflow traffic officer. It often seems that regardless of the methodology project managers choose to deploy - be it waterfall, agile, or lean - predicting the duration of individual tasks is always a finger-in-the-air estimate.

Some teams attempt to manage the process by visualizing it using Gantt or burn down charts. Recently, a simple visualization method has been gaining popularity: Kanban. Kanban is Japanese for visual grid and has its origins in the Toyota production system. Kanban maps tasks to cards and tracks their progress across a board divided into columns.

Kanban is ideal for identifying specific workflow bottlenecks, such as when multiple cards start piling up in one column. Once the problem causing the bottleneck is identified, team members must communicate and collaborate on a solution. Solving these types of local problems as they arise improves team efficiency and productivity.

However, Kanban is not faultless. Common obstacles to success with Kanban include organizational dysfunction, knowledge gap and agile mismatch. To achieve maximal success with your Kanban implementation, we recommend integrating the Scaled Agile Framework’s (SAFe) Team Kanban methodology along with the right agile delivery tool.