Software Engineering

Technical Documentation

Back

Kanban Model

Introduction

Kanban is a very popular framework for development in the agile software development methodology. It provides a transparent way of visualizing the tasks and work capacity of a team. It mainly uses physical and digital boards to allow the team members to visualize the current state of the project they are working on.

Kanban originated in Toyota in the 1940s. Kanban’s meaning in Japanese is “billboards.” The Kanban board has columns and story cards. The columns are nothing, but workflow states and cards are nothing but a demonstration of the actual task a team member is performing.

Kanban Cards

The Kanban system recommends visualization of work. It suggests the use of the physical and the digital board.

The Kanban cards are essential pieces on the Kanban board as it represents the work that the team is working on. These cards will have:

Kanban board

Kanban Board is an agile project management tool that helps implement Kanban to manage projects for personal and business purposes. It is a physical or digital (JIRA) board designed to help teams visualize their work at different stages and processes. It also helps represent the stages of work with columns using cards.

It has columns that represent the status of the work like:

Kanban Workflow

Kanban Workflow is a set of steps that helps teams to define explicit policies and principles in Kanban. It represents the rules and procedures while the work is going on across various stages of development and delivery cycles. Kanban workflow consists of step-by-step processes between starting and the delivery of a particular task.

   
States Understanding of tasks
To-do Tasks arrive here for the first time in this state.
Ready for analysis Analyze the task and add requirements completely.
Ready for development Analysis completed and development can start.
In the development Tasks are being developed.
Ready for testing Development completed, and now testing can start.
In the testing Tasks are being tested.
Ready for release Testing completed; release can happen.
Released/Done Released.

Principles of Kanban

  1. Start with what you have now:
    • Kanban system suggests working incrementally and start with what you have currently. Since one of its practice is to improve continuously, you must improve the system gradually.
  2. Agree to Pursue Incremental, Evolutionary Change:
    • Kanban recommends an incremental change in the process, and you must not make a big change in the process in one go.
  3. Respect the Current Process, Roles & Responsibilities:
    • Once again, start with what you have now and change the process, role, and responsibilities in an incremental manner.
  4. Encourage Acts of Leadership at All Levels:
    • Every individual can act as a leader and provide ideas to improve the efficiency of the overall Kanban system. You should not think that this is a management level activity, and even the youngest member of the team can act as a leader.

Core Practices

  1. Visualize the workflow:
    • This principle suggests having a Kanban board (physical or digital) to visualize the workflow. Each individual of a team must see his card and cards of other team members. You can move your cards in different columns as per the above image. It brings lots of transparency within the team and also makes it easier to resolve blockers
  2. Limit work in progress:
    • Kanban is a pull-based system, and it improves the efficiency of a team to limit work in progress and have tasks that can be completed in the given time frame by the team. This WIP limit applies from the beginning to the end of the workflow. You can apply the limit on top of the column using a positive integer.
  3. Focus on flow:
    • This principle focuses on flow and on any interruptions. If there are interruptions or blockers, they must be fixed permanently.
  4. Explicit Policies:
    • Policies can be established in a team to reduce the rework and focus on the areas which require attention or where it is more effective.
  5. Feedback Loop:
    • Feedback loops are very essential in Kanban. It is not just within the team but between multiple teams, coaches, etc. This helps in improving the overall health of the Kanban system.
  6. Continuous Improvement:
    • This is the core principle of the Kanban system. It states that you can always improve the process, and that will result in better efficiency.

Reference

Back