Kanban in Project Management
(→Kanban in Software Teams) |
(→Kanban in Software Teams) |
||
Line 81: | Line 81: | ||
Kanban in software developments originated within the Microsoft organisation in 2004, when David J. Anderson was assisting an IT-development team that was performing poorly. Anderson implemented Kanban so that team members could visualize their work and limit the WIP. | Kanban in software developments originated within the Microsoft organisation in 2004, when David J. Anderson was assisting an IT-development team that was performing poorly. Anderson implemented Kanban so that team members could visualize their work and limit the WIP. | ||
− | In this way the team could identify bottlenecks and increase the throughput of finished tasks. This enables a '''pull approach''', the team members pull new work items (cards) when they have finished a task. Which is in opposition to the traditional software development practices (as seen in Scrum) which is based on puch approaches. The work is pushed through and it is set a finish date, now the team members have to work fast enough to | + | In this way the team could identify bottlenecks and increase the throughput of finished tasks. This enables a '''pull approach''', the team members pull new work items (cards) when they have finished a task. Which is in opposition to the traditional software development practices (as seen in Scrum) which is based on puch approaches. The work is pushed through and it is set a finish date, now the team members have to work fast enough to meet the set dead-line. |
A pull approach can be extra beneficial for software teams because of the fast changing customer demand (customer change their mind) and the often incorrect time and cost estimation. | A pull approach can be extra beneficial for software teams because of the fast changing customer demand (customer change their mind) and the often incorrect time and cost estimation. |
Revision as of 15:25, 19 September 2016
Kanban(看板 signboard from Japanese) aims to provide visibility, highlight bottlenecks and improve communication and work flow throughout a project, a process or similar. The Kanban system was originally an inventory control system developed by Taiichi Ohno, an industrial engineer at Toyota. The vision then was that the system would reduce the waste (muda) in the production line and improve the manufacturing efficiency. Kanban is a flowcontrol system for pull-driven JIT (just-in-time) production, the upstream processing activities are triggered by the downstream demand signals[1][4]. The Kanban system is now, with some alterations, applied as an agile project management tool. It is argued that the system offers improved project visibility, product quality, team-motivation, communication and collaboration [2].
The basis of the Kansan system is to have a board with cards attached. Different parts of the board represent different stages of the development which all work items go through. The cards represent the different work items in the project, and move from left to right on the board. The board and the cards can be arranged and divided however the user would like. Nonetheless the main concept of Kanban is always the same, and can be summarized by these six points[5]:
- Limit WIP (work in process): The board is divided in parts, and each part can only have a pre defined number of work items, WIP limit, thus this don't need to be the same for every part. This is true for all parts except the “backlog” and “done” part, which is always unlimited
- Cards : Each work item is represented by a card (sticky note or similar)
- Flow: The work items on the board are moved from left to right between the different parts. The person performing the work, is also the one moving the card
- Team: The team working with the Kanban board agree on some rules for when the cards can be moved
- Kaizen (constant improvement)
- The team working with the Kanban board have to get together on a regular basis to analyze the flow, focusing on work items that are stuck on the board
- There is no Kanban police - and if you need to alter the board or break the rules that's ok, but inform the rest of your team
Contents |
Kanban in Project Management
The goal of project management is to improve the total quality of project results. This include on time delivery, stakeholder satisfaction and financial results. In otder to do so one have to poperly execute the five processes of project management, see figure 1 [3].
The Kanban project management tool can help in regards of the planning, executing and monitoring and controlling aspect of project management by solving the questions stated below.
- How can workflow be visualized in real time?
- How can team members and stakeholders get a sense of understanding of the whole project?
- What is the bottleneck in the workflow of this project?
- How can we improve day-to-day openness in the project?
- How can a project be lean and agile at the same time?
How each of these questions is solved is explained throughout this article and subsequently summarized in the benefit section.
History
Kanban is now a popular system used by teams practicing agile and lean project work. In recent years Kanban has become a popular framework for managing software development teams, and is now often implemented to complement Scrum or other agile software development methods[4]. Kanban is considered to be a prominent and relatively new framework, it was first introduced (to this use) in the early 2000’s. Nonetheless the Kanban methodology dates back more than 50 years.
1953: Kanban was first implemented in the Toyota factory by Taiichi Ohno and can be summerised in these points[6]
- Inspired: by the grocery store model, the concept was that grocery stores was stoking just enough product to meet customers demand. This practice enables the inventory levels to match the customer pattern and therefore be at a minimum without affecting the customers in a negative manner. Thus the store can gain efficiency in inventory management by decreasing the amount of excess stock.
- Vision: to align Toyota's massive inventory with the actual consumption of materials.
- Communication: capacity levels at the different workstations on the factory floor would be communicated in real-time. Workers passed a card with capacity information between workstations.
- Re-stock: When the batch of materials used at one point in the production line was emptied, a card with this information was sent to the warehouse. Here it would be a new batch ready to be transported to the production line.
The Kanban framework for production lines is still very much used today, though it has been developed in line with the the technology to a faster and more agile version of the same system. Kanban was introduced as a project management tool for software development by Microsoft in 2004, now the workstations were replaced by parts of a Kanban board and the cards was replaced with sticky notes. Other than that, the concept, value and advantages remained the same.
Kanban Step-By-Step
To visualize the work of your team with Kanban project management all you need is a board and cards of some kind. This can be either physically, a board and sticky-notes, or virtually, using an online platform. There are numerous variations of booth of this (which a quick google search can show you). After choosing a type of Kanban system it is time to set up the board and make rules for the cards. There is no limitation to the different variations of boards division and card rules, the example in this article is just one way of doing this.
There are several ways to mark the priority of the work items, one can for example organize them in line, where the top one is the most urgent, see figure 1. This priority of work items are most often carried out in stand-up meetings. These meetings take place in predefined time slots, last 5-30 minutes, and address all "issues of the day".
The Board
The Kanban boards for project management most often consists of three main parts To Do, Doing and Done. Each of these is divided in sub sections. There are many advantages to do it in this way, the main one being the visualization of when work items are ready to go to the next main part of the board. Each section also have a WIP-limit, this is the maximum number of work items that can be at that part of the board. These will of course be different for the different parts as the workload varies. The parts with a higher workload should have a higher WIP. In order for this to not limit the flow, and become a bottleneck, the number of employees assigned to the different parts of the board should be according to the maximum WIP level.
To Do
Backlog: In this section cards with work items which is to be performed in the future, but have not started on yet, is placed. This part of the board have no rules of an upper limit. The number of cards here is most often limited by your lack of knowledge of the future, as you don't know of all your future work yet. To indicate which of the work items that is most urgent in the backlog they are sorted by urgency on the board. This can be done in the stand-up meetings.
Breakdown: The Breakdown part is managed by a rule limiting the work item size. An example of this can be that all work items must be limited to take approximately two working days. If the work item initially is longer/larger than this, it is divided into several smaller work items before moving on to this part of your board. The work items are broken down like this to enhance the flow of work items in the project. If a work item is too big it is both a higher chance it will get stuck at one part of the board, and more difficult to diagnose why the work item is stuck. When a work item is placed in the breakdown part of the board, it is ready for the next main part Doing.
Doing
All work items that are undergoing some kind of work is located in this part. This part of the board is almost always divided into several smaller parts as it is where the most complex and challenging activities take place. An example of this can be Plan, Develop and Test. In each of the subsections of this part of the Kanban board, it should be a limitation of work items. This is to limit the WIP, and secure a agile project work. In some cases a work item is stuck in a section of the doing part due to interdependencies of outer work items or people, and there is no current work to be done on the work item. In this case you can mark the activity as stuck and the work item does not count as your WIP.
Plan: In this section the work is planned, this includes both allocation of resources and finding possible ways to perform the work.
Develop: In this section the work item is developed from an idea to a product. This section is often divided in two subsections, In Process and Done. The reason for having a Done part, is to visulize when the work items is ready to be transferred to the next stage, testing.
Testing: After the development, the work item/product is tested or checked, before being marked as finished. This is often done by a different person than the developer. This stage often have some rules set by the team to secure the quality of the end product. When this stage is completed the work item moves to the last and final part, for this Kanban board, Done.
Done
When the work items arrives at this area of your Kanban board it means that your team is done with this work item. The done area, of course, do not have any WIP-limit, but it can be a good idea to set some goals and milestones related to this part of the board. This should be related to the throughput of work. Nonetheless it is important to remember that all work items do not have the same work load, and that it is the workload throughput that should be celebrated, not the number of work items.
The Cards
The cards include critical information about the particular work item. This includes a short description of the job, the time estimate, and so on. In the virtual Kanban cards it is possible to add more information, as pictures, technically detailed information and other documents that may be valuable.
Kanban cards can have three stages pending, undergoing work or finished. When a team member is finished with his or her work they go to the board and mark their work item as finished. If there is room for the item in the next part of the board, it is moved there and the status is now pending. Now the team member can choose a new work item matching their capability and with the highest priority on the board, this should now be marked as undergoing wok.
Kanban in Software Teams
The proclaimed benefits presented in the literature and a strong support from practitioners is important factors to the growing interest of Kanban in software development. [6] [7]
Kanban in software developments originated within the Microsoft organisation in 2004, when David J. Anderson was assisting an IT-development team that was performing poorly. Anderson implemented Kanban so that team members could visualize their work and limit the WIP.
In this way the team could identify bottlenecks and increase the throughput of finished tasks. This enables a pull approach, the team members pull new work items (cards) when they have finished a task. Which is in opposition to the traditional software development practices (as seen in Scrum) which is based on puch approaches. The work is pushed through and it is set a finish date, now the team members have to work fast enough to meet the set dead-line.
A pull approach can be extra beneficial for software teams because of the fast changing customer demand (customer change their mind) and the often incorrect time and cost estimation.
To compare Kanban with other management tools from the IT field Scrum, with is the most similar project management tool, is used as an example.
Kanban vs. Scrum
Both the Kanban and the Scrum method focus on quick response to changing customer requirements, and full utilisation of resources. The methods can therefore be described as both agile and lean [2]. Both methods are also highly adaptive and are based on self-managing teams with a high level of cooperation. The methods depends on a visual representation of future and ongoing work and includes short stand-up meetings with the project-teams.
The most prominent difference between the stand-up-meetings is that in the Scrum meetings every team member states what they did and what you are doing next, but in the Kanban meetings only the issues of today are discussed. Thus the Kanban meetings are severely shorter and less informative, a team member who wants to obtain this information can do so from the information on the Kanban board. Because of this difference between the two systems, the Kanban can be used for much larger teams than the Scrum. In Microsoft a Kanban board have been used for teams up to 75 people, the stand-ups then took around 15 minutes, which would not have been feasible for the Scrum [8].
Opposite to Kanban, the Scrum method does not visualize continuous flow and delivery, and it is not possible to make managerial changes during a ‘’sprint’’. The work items are also released in batches so that there is a WIP-limit for the system, but not for each piece of the system (as in Kanban). The Scrum method also requires the team to define a “Scrum master” and in Kanban there is no predefined roles. To get an overview of the previous mentioned differences, see table below.[4][2]
Number | Kanban | Scrum |
---|---|---|
1 | No roles in team | Predefined Scrum-master |
2 | Continuous delivery | Deliver after every sprint, predefined |
3 | Work is pulled through system in single pieces | Work is pulled through the system in batches |
4 | Changes can be made continuously | Changes only allowed between sprints |
5 | Optional commitment to work load | Mandatory commitment to workload over a time period |
6 | Direct WIP-limitation | WIP only limited per sprint |
7 | Persistent board | Board rest between sprints |
8 | Talk only about problematic work items in meetings | Talk about all flow of work items before the previous and current meeting, and between current and the next meeting |
Developing from Scrum to Kanban
Implementing Kanban should not be experienced as a revolutionary change for participants of the team. Especially if the team is already working with Scrum, as they already have a board with work items moving through, a definition of "done", daily stand ups etc. The team do not have to rely fully on the new Kanban system from the start, as it can at first be supplementing the existing project management system. Idealy there should be one or more experienced Kanban user(s) in the team, to prevent insecurities that may cause the team to stop using Kanban and fall back on their old management system. [4]. If the team is moving from Scrum to Kanban it is recommended to keep the Scrum master and meetings at first. In time you introduce the new aspects (see table ‘’Differences between Kanban and Scrum’’) of the Kanban system step-by-step [8].
Benefits
The Kanban project management tool can help in regards of the planning, executing and monitoring and controlling aspect of project management by solving the questions stated below.
1. How can workflow be visualized in real time?
Kanban helps the team to visualize the work in real time, it is therefore easier to see emerging patterns. The possibility to find new waiting task on the Kanban board makes the team work visually and consistently, and the time when waiting for new tasks is eliminated. By limiting the WIP at each step in the process Kanban prevents overproduction and reveales bottlenecks dynamically so that you can address them before they get “out of hand”.[7]
2. How can team members and stakeholders get a sense of understanding of the whole project?
The most important benefit from using Kansan is maybe that the team can get a better understanding of the whole process. In general it is also proven that the quality of communication both within the team and with stakeholders improve. This, in the end, result in higher customer satisfaction.[4]
3. Is there an critical bottleneck in this project?
The critical bottleneck is easy to spot when using Kanban, if a part of the board is filled up, this is the critical bottleneck. This can be eliminated by requiting extra resources to this part of the project, subsequently the WIP-limit in this part then be increased. This part will stop filling up, and is not the bottleneck anymore.
4. How can we improve day-to-day openness in the project?
Each team is different, and it is therefore a huge advantage that the Kanban system can be adapted to fit various team cultures. No matter how the system is set up, or how the board is designed, the outcome is always the same as long as everything is tracked and followed accordingly. As each member contributes to the the Kanban system it often emerges a sense of comradery around it, day-to-day conversations and openness. All concludes to a improved team mentality.[8]
5. How can a project be lean and agile at the same time?
By not allocating resources before they are starting work on the task, and by only working on one task at a time so that there is a continuous output, the project can be highly agile. This means that it is easy to change to fit customers continually changing demand. In order to be lean the project have to reduce waste. By using Kanban the waste is reduced by eliminating waiting time, reducing waste of resources, simplifying planning process and identifying problems continuously while the project is running.
Limitations
Expertise
If the team consist of highly diverse personnel with no overlapping knowledge fields, Kanban may not be the ideal tool. This is not because it will not work, but because the advantages of Kanban will not come to full use, as all the work items are already assigned to a team members. On the outher hand, if you want to make your team more robust, you can use Kanban as a learning tool, where the work item gets one inexperienced owner, and one experienced supporter.
Learning
The Kanban system is always focusing on ‘’right now’’ - never the past. This limits the learning, especially double loop, and future risk management. To enable double-loop learning when using Kanban it has to be supplemented with another tool or system, this is in opposition to Scrum which has learning and after action review embedded in its structure. However some "Kanban enthusiasts" argue that the visibility in the Kanban system give the team members instant feedback on what is going wrong, thus the "looking back" part is not necessary to learn from the projects [8].
Dependencies
The dependencies is not directly visualized in the Kanban system. The system is therefore most suitable to project with a relatively small amount of dependencies.
Focus on End-Date
With the Kanban system it is easy to visualize the time it will take for your team to finish the work on the board. Nonetheless it is difficult to estimate end dates if your project is large and the work items exceeds the work items visualized on the board. Nor is there an option for marking a fixed deadline or end date set by the customer or another stakeholder. This does not necessarily have to be a problem, but it is something that requires extra attention when using Kanban, and in large projects a supplementing ‘’planning’’ tool should be utilized.
References
- ↑ Emerging Technologies and Factory Automation, 2008. e-based inter-enterprise supply chain Kanban for demand and order fulfilment management.
- ↑ 2.0 2.1 2.2 Ahmad, O. M & Kuvaja P, C. F. (2016). Transition of Software Maintenance Teams from Scrum to Kanban . 2016 49th Hawaii International Conference on System Sciences
- ↑ Project Management Institute. (2010). The Value of Project Management. Available Online Version
- ↑ 4.0 4.1 4.2 4.3 Ahmad, O. M & Markkula, J. , C. F. (2014).Usage of Kanban in Software Companies Retrieved 19.09.2016. [1]
- ↑ Agile Project Management with Kanban: Eric Brechner Presentation (2015, 18 jun.). Kanban in Microsoft [2]
- ↑ K. Hiranabe (2008). Kanban applied to software development. InfoQ. (2008) [3]
- ↑ Shalloway, B.Guy, and R. James Trott (2009).Lean-agile Software Development:Achieving Enterprise Agility. Pearson Education, 2009
- ↑ 8.0 8.1 8.2 8.3 Brechner. Eric (2015). Agile Project Management with Kanban (Developer Best Practices) . 2016 49th Hawaii International Conference on System Sciences
Annotated Bibliography
Project Management Institute. (2008). A Guide to the Project Management Body of Knowledge.
This is a recognized formal standard for the project management profession and describes established norms, methods, processes and practices for project, program and portfolio management.
Agile Project Management with Kanban, By Eric Brechner.
Eric Brechner is a development manager for the Xbox engineering team at Microsoft. He have previously worked in Bank Leumi, Jet Propulsion Laboratory, Graftek, Silicon Graphics and Boeing. While working in Microsoft Brechner have used numerous project management tools/consepts like Waterfall and Scrum but now he quote: in the 2010s, I’ve found continuous deployment, Kanban, and a little nirvana.This book is a step-by-step recipe on how to apply the Kanban project management in your IT-group or organisation. Brechner is also the author of a book and blog on software best practices (as I. M. Wright), he holds eight patents and a Ph.D. in applied mathematics.