This article describes why we created Leanban and provides more details about Leanban.
Foundations of Leanban
We have learned a lot since the Agile Manifesto was published in 2001. Scrum, eXtreme Programming, Kanban, and others have been used with great success and they provide valuable lessons to teams using different methods. Our understanding of the application of Lean Thinking to software has grown considerably – to the point where we at Net Objectives (and others) now see Lean as the umbrella that Agile fits under rather than a method that fits under the Agile umbrella. Let’s look at the lessons from all of these areas to see how they influenced Leanban.
What we learned from Lean, Scrum, Kanban, and eXtreme Programming
We can take the best of what each has to offer so that we can apply them, or hybrids of them, in ways that fit each team’s and each organization’s context.
Lessons from Lean
Change the focus of management from Reductionism (focusing on improving individual parts) to Systems Thinking (focus on improving the entire system, even if it requires lower level inefficiencies)
Instill Lean Thinking and value Servant Leadership
Visualize the entire value stream to understand:
Where value is being added
Where waste is being created
Lead time and cycle times
Minimize waste and maximize value (build quality in)
Minimize lead time and cycle times
Use Kanban for Visibility, One-Piece Continuous Flow, and Pull
Instill Kaizen Mind to drive continuous improvement
Use PDSA for Continuous Improvement
Lessons from Scrum
Create stable teams to help teams improve faster, establish a predictable velocity, and build trust.
Build cross functional teams to improve collaboration and eliminate waste.
Use short Iterations to get faster feedback to improve learning, enable a clear definition of done, and allow for short term planning.
Develop on a cadence to foster discipline and enhance continuous improvement.
Focus on DONE to create clarity, limit WIP, and enhance coordination.
Lessons from Kanban
Use Kanban to manage flow
Visibility and explicit workflow greatly enhances learning
It is important to include management
How to manage projects without cross-functional teams
How to affect change when one can’t do any change up front (Kanban Method)
Lessons from eXtreme Programming
Test-first and automated testing results in long-term maintainable code
Continuous integration is important
Small stories are important
Collaboration is critical
Shared understanding of Agility is critical
What we learned while teaching Agile for 15 Years
Understanding Lean-Agile principles is critical to success; you cannot truly be Agile by merely following a set of practices. However, it is difficult for people to make the shift in mindset required to make decisions based on those principles. The new mindset comes with experience but people need a place to start and there is no one-size-fits-all framework (nor should there be). People also need practical guidance on how to determine which practices to adopt or abandon and how to stay on track. For these reasons Leanban consists of four parts:
based on Lean Thinking
a set of starting practices from Scrum, Kanban, and eXtreme Programming
a way of migrating to different practices when appropriate
a set of organizational commitments called Guardrails that keep everyone on track
Consolidating our knowledge
By incorporating the lessons above into a whole called Leanban we gain a consistent approach to delivering business value. Figure 1 shows where the most common Agile methods are similar and different. Figure 2 shows how each method can be expanded to incorporate ideas from the other methods (note that incorporating ideas into Scrum doesn’t mean you need to call it Lean-Scrum; you can still call it Scrum). Leanban is shown in the middle as the result of taking the best from each method.
Advantages of Leanban
Here are some of the important advantages of Leanban.
Leanban is business driven. All teams must focus on delivering value as defined and prioritized by the Business. It increases quality, reliability, and velocity
Leanban suggests core practices. Teams get started quickly by following a core set of practices and then Lean Thinking to adjust practices and add new ones based on their needs.
Leanban is tailored to each team’s situation. Each team’s situation is unique. Leanban considers the team’s current situation, including whether they are cross-functional, require iterations, and how disciplined they are.
Leanban provides a consistent approach across the organization. This enables individuals to move around easily, facilitates learning across teams, and improves management understanding.
Leanban takes a systems-approach. Teams deliver business value by working in concert; they must not simply focus on their own work. Leanban provides the mindset for coordination across teams.
Leanban provides teams a way to evolve to better practices as they learn. Leanban provides guidance to teams to evolve as practices become inappropriate. It promotes positive change based on achieving the desired outcomes of a practice.
Leanban is based on proven principles. Building on good practices improves professionalism and avoids dogma.
Leanban facilitates change. Leanban supports change at a sustainable pace guided by Lean practices. It is important to determine what degree of change is appropriate without forcing change or avoiding change.
More on the four parts of Leanban
Let’s now look at the four parts of Leanban in depth.
Lean Thinking is essentially the “laws” of lean. Here is the essence of Lean thinking:
Our work is part of a complex system. This implies we must take an holistic view and that our improvement should be guided by increasing our understanding of the system we are in and improving our methods based on that understanding.
People are our greatest asset.
Management leads the organization in continuously improving its ability to add value to its customers.
We create flow by doing things “Just-in-Time”: Eliminating delays in workflow, feedback and utilization is essential to eliminate waste.
We must attend to the quality of our process. Not doing so will result in unstable workflows and waste.
We must make all work visible.
We must manage our workflow with a pull (Kanban) system.
Leanban looks across multiple software methods to discern fit-to-purpose and to apply practices thoughtfully. It does not insist on purely following one approach when that means being limited in using good practices from others. Borrowing from Scrum, Kanban, and eXtreme Programming, Leanban prescribes these core practices:
Small batches to control Work-In-Process (WIP)
Focus on completion of work items, not starting new ones
Make all work visible at the portfolio, program, and team levels
Include management in what the team is doing
Make all workflow rules explicit
Explicitly manage WIP throughout the process
In high-level planning, use estimation and velocity
Minimize cycle time
Use Acceptance Test-Driven Development
Attend to technical practices
Migrating to different practices
Being rigid on our practices isn’t very Agile, is it? We should incorporate other practices that would help us and abandon those that are hurting us.
Selecting additional practices
In addition to these core practices, your situation may call for other or additional practices including:
Use cross-functional teams as much as possible. Start by creating cross-functional teams if possible
Use a common cadence with or without iterations
Test-first; strive for TDD when you can
Strive for continuous integration and automated testing
Iterations can provide discipline and a common cadence
This is not intended to be a complete list; add any additional practices that add value to your team.
Leanban uses Lean principles to guide teams in abandoning practices when they are not a good fit. For each practice, focus on the value that it is intended to provide and then investigate alternatives that can potentially provide that same value. See How to Abandon Practices.
We have defined a set of guardrails that teams can use to make sure they stay aligned and on track. These organizational commitments provide guidance to ensure that we are on course and allow us to make decisions local to us while ensuring we are still aligned to the rest of the value stream.