Kanban (development)
Kanban (Japanese 看板, signboard or billboard) is a lean method to manage and improve work across human systems. This approach aims to manage work by balancing demands with available capacity, and by improving the handling of system-level bottlenecks.
Software development |
---|
Core activities |
Paradigms and models |
Methodologies and frameworks |
Supporting disciplines |
Practices |
Tools |
Standards and Bodies of Knowledge |
Glossaries |
Outlines |
Work items are visualized to give participants a view of progress and process, from start to finish—usually via a Kanban board. Work is pulled as capacity permits, rather than work being pushed into the process when requested.
In knowledge work and in software development, the aim is to provide a visual process management system which aids decision-making about what, when, and how much to produce. The underlying Kanban method originated in lean manufacturing,[1] which was inspired by the Toyota Production System.[2] It has its origin in the late 1940s when the Toyota automotive company implemented a production system called just-in-time; which had the objective of producing according to customer demand and identifying possible material shortages within the production line. But it was not until Microsoft engineer David J. Anderson noted how this method devised by Toyota could become a process applicable to any type of company that needs organization.[3]
Kanban is commonly used in software development in combination with other methods and frameworks such as Scrum.[4]
Evolution and documentation of method
David Anderson's 2010 book, Kanban,[5] describes an evolution of the approach from a 2004 project at Microsoft[6] using a theory-of-constraints approach and incorporating a drum-buffer-rope (comparable to the kanban pull system), to a 2006–2007 project at Corbis in which the kanban method was identified. In 2009, Don Reinertsen published a book on second-generation lean product-development[7] which describes the adoption of the kanban system and the use of data collection and an economic model for management decision-making. Another early contribution came from Corey Ladas, whose 2008 book Scrumban[4] suggested that kanban could improve Scrum for software development. Ladas saw Scrumban as the transition from Scrum to Kanban. Jim Benson and Tonianne DeMaria Barry published Personal Kanban,[8] applying Kanban to individuals and small teams, in 2011. In Kanban from the Inside (2014),[9] Mike Burrows explained kanban's principles, practices and underlying values and related them to earlier theories and models. In Agile Project Management with Kanban (2015),[10] Eric Brechner provides an overview of Kanban in practice at Microsoft and Xbox. Kanban Change Leadership (2015), by Klaus Leopold and Siegfried Kaltenecker,[11] explained the method from the perspective of change management and provided guidance to change-initiatives. In 2016 Lean Kanban University Press published a condensed guide to the method, incorporating improvements and extensions from the early kanban projects.[12]
Kanban boards
The diagram here shows a software development workflow on a Kanban board.[13] Kanban boards, designed for the context in which they are used, vary considerably and may show work item types ("features" and "user stories" here), columns delineating workflow activities, explicit policies, and swimlanes (rows crossing several columns, used for grouping user stories by feature here). The aim is to make the general workflow and the progress of individual items clear to participants and stakeholders.
As described in books on Kanban for software development,[5][4] the two primary practices of Kanban are to visualize your work and limit work in progress (WIP). Four additional general practices of Kanban listed in Essential Kanban Condensed, are to make policies explicit, manage flow, implement feedback loops, and improve collaboratively.[12]
The Kanban board in the diagram above highlights the first three general practices of Kanban.
- It visualizes the work of the development team (the features and user stories).
- It captures WIP limits for development steps: the circled values below the column headings that limit the number of work items under that step.
- It documents policies, also known as done rules,[10] inside blue rectangles under some of the development steps.
- It also shows some Kanban flow management for the "User Story Preparation," "User Story Development," and "Feature Acceptance" steps, which have "In Progress" and "Ready" sub-columns. Each step's WIP limit applies to both sub-columns, preventing work items from overwhelming the flow into or out of those steps.
Managing workflow
Kanban manages workflow directly on the Kanban board. The WIP limits for development steps provide development teams immediate feedback on common workflow issues.[5][10]
For example, on the Kanban board shown above, the "Deployment" step has a WIP limit of five (5) and there are currently five epics shown in that step. No more work items can move into deployment until one or more epics complete that step (moving to "Delivered"). This prevents the "Deployment" step from being overwhelmed. Team members working on "Feature Acceptance" (the previous step) might get stuck because they can't deploy new epics. They can see why immediately on the board and help with the current epic deployments.
Once the five epics in the "Deployment" step are delivered, the two epics from the "Ready" sub-column of "Feature Acceptance" (the previous step) can be moved to the "Deployment" column. When those two epics are delivered, no other epics can be deployed (assuming no new epics are ready). Now, team members working on deployment are stuck. They can see why immediately and help with feature acceptance.
This workflow control works similarly for every step. Problems are visual and evident immediately, and re-planning can be done continuously. The work management is made possible by limiting work in progress in a way team members can see and track at all times.
Kanban metrics
Kanban uses specific metrics to measure team capacity and estimate project length.
Team velocity defines how many tasks a team can deliver in a given period of time, for example a week or iteration.[14] Velocity is calculated periodically and to help with accuracy of the calculated velocity, teams aim to create tasks that are similar in size. Knowing team velocity helps better predict when a project is going to end.
Lead and Cycle time defines the average time it takes to complete a task. Lead time is calculated since the team gets a request from the client and Cycle time is calculated since the team starts working on a task. Lead time is used to understand how long a client has to wait for their product and cycle time is used to understand how fast the team produces a product. [15]
Actionable Agile metrics use cycle time to better predict when each project item is going to be finished. Created by Daniel S. Vacanti in 2015,[16] actionable Agile metrics measure how much time it took to finish 50%, 85% and 95% of the tasks. And use this information to help the team better predict and control task delivery dates.
References
- Womack, James P. (2007). The Machine That Changed the World. ISBN 978-1847370556.
- Ohno, Taiichi (1988). Toyota Production System: Beyond Large-Scale Production. ISBN 978-0915299140.
- "Kanban Methodology: The Japanese Method To Streamline Your Business". Techshali.com. 2 January 2021. Retrieved 2 January 2021.
- Corey, Ladas (2008). Scrumban and other essays on Kanban System for Lean Software development. Seattle, Washington: Modus Cooperandi Press. ISBN 9780578002149. OCLC 654393465.
- Anderson, David J. (April 2010). Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press. ISBN 978-0-9845214-0-1.
- Anderson, David J.; Dumitriu, Dragos (November 2005). From Worst to Best in 9 Months: Implementing a Drum-Buffer-Rope Solution at Microsoft's IT Department (PDF). TOC ICO World Conference November 2005. USA: Microsoft Corporation. Retrieved 24 September 2020.
- Reinertsen, Donald (May 2009). The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas Publishing. ISBN 978-1935401001.
- Benson, Jim; DeMaria Barry, Tonianne (January 2011). Personal Kanban: Mapping Work, Navigating Life. Modus Cooperandi Press. ISBN 978-1453802267.
- Burrows, Mike (2014). Kanban From The Inside. Seattle, WA: Blue Hole Press. ISBN 978-0-9853051-9-2.
- Brechner, Eric (2015). Agile Project Management with Kanban. Microsoft Press. p. 160. ISBN 978-0735698956.
- Leopold, Klaus; Siegfried, Kaltenecker (2015). Kanban Change Leadership. Hoboken, NJ: John Wiley & Sons. ISBN 978-1-119-01970-1.
- Anderson, David J.; Carmichael, Andy (2016). Essential Kanban Condensed. Seattle, WA: Lean Kanban University Press. ISBN 978-0-9845214-2-5.
- Boeg, Jasper (February 2012). "Priming Kanban". InfoQ. Retrieved 17 February 2014.
- "What is Velocity in Agile? | Agile Alliance". 17 December 2015. Retrieved 22 October 2020.
- "Lead and Cycle Time - How to Use the Kanban metrics". teamhood. 15 October 2020. Retrieved 22 October 2020.
- "ActionableAgile". actionableagile.com. Retrieved 22 October 2020.
Further reading
- Kanban: Successful Evolutionary Change for Your Technology Business, David J. Anderson. (United States, Blue Hole Press, 2010. ISBN 978-0984521401
- Scrumban: Essays on Kanban Systems for Lean Software Development, Corey Ladas. (United States, Modus Cooperandi Press, 2009. ISBN 9780578002149
- Agile Project Management with Kanban (Developer Best Practices), Eric Brechner. (United States: Microsoft Press, 2015). ISBN 978-0735698956.
- Kanban in Action, Marcus Hammarberg and Joakim Sunden. (Shelter Island, NY: Manning Publications, 2014). ISBN 978-1-617291-05-0.
- Lean from the Trenches: Managing Large-Scale Projects with Kanban, Henrik Kniberg. (Dallas, TX: The Pragmatic Programmers, 2012). ISBN 978-1-93435-685-2.
- Stop Starting, Start Finishing! Arne Roock and Claudia Leschik. (USA: Lean-Kanban University, 2012). ISBN 978-0985305161.
- Real-World Kanban: Do Less, Accomplish More with Lean Thinking, Mattias Skarin. (United States: Pragmatic Bookshelf, 2015). ISBN 978-1680500776.