What’s Deming Got to Do With Agile Software Development and Kanbanby Guest Post
Guest post by Dennis Stevens
When I show the Kanban board, a tool that is borrowed from Lean, I hear,
“Well, software development is an artistic process – you can’t apply manufacturing principles to it.”
Or, “I was involved in a Six Sigma (or TQM) project that was devastating – Lean doesn’t translate to software development.”
Or, “Analysis, Development, Acceptance, Production – that looks like waterfall, haven’t we gotten past waterfall yet?”
So let me be clear up front – some amount of software development is creative, you can’t directly apply manufacturing principles to software development, applying Six Sigma and TQM to software development like it is a production line is destructive, and in most cases waterfall doesn’t make sense in software development. I may also point out that the typical Scrum board (Ready, Doing, Done) is a very simple version of a Kanban board.
Deming is About Culture – Not Manufacturing and Not Process
But Deming is not about manufacturing. He is about showing management how to create an environment for success. Deming is about culture – and his System of Profound Knowledge creates an environment that is especially effective for knowledge work. Deming’s System of Profound Knowledge has four points:
- Understand the System
- Understand Variation in the System
- Have a Theory of How to Act on The System, and
- Understand Human Psychology.
How does Kanban help us inform the context and culture of the team performing development to achieve the benefits associated with Deming’s System of Profound Knowledge?
What Does it Mean to Understand the System?
By understanding the system, participants can operate in a way that everyone (management, performers, customers, and suppliers) benefits. Understanding the system is difficult – typically everyone views the system from their own siloed perspective. Understanding the system requires that everyone rise above their siloed perspective to understand the system in the context of the overall goal, what the organization does to achieve this goal, the boundaries and constraints, and to share the sensing and feedback mechanisms.
Kanban helps participants understand the system by making the goals, capabilities, and boundaries explicit. The participatory nature of developing and interacting with the board changes everyone’s perspective from a siloed view to a focus on system level success. The board itself, metrics such as the Cumulative Flow Diagrams (CFD), the establishing of policies and tracking of performance against those policies provides feedback on the system.
How do we understand the impact of variation?
Variation is inevitable. The size of work that needs to be done isn’t uniform. The complexity of work has high variability – not just between work items – even between the types of work to be performed on each work item. For example, one item may be hard to analyze but turn out to be easy to build and test. Another may be easy to design and build but very difficult to test. It is common on teams for there to be a significant gap between the most skilled developers on the team and the less skilled developers. So the work is of various sizes, with various levels of complexity, being worked on by various levels of performers.
Kanban helps with this in three ways. First, limiting Work In Process (WIP) reduces the overall impact of variation on the system. Second, the Kanban board makes the impact of variation explicit. On a daily basis the team can work together to adjust to variation in real time by swarming or influencing what they pull. Finally, by managing the average lead time – and not trying to manage exact lead times of every item – Kanban helps smooth the impact of variation on the promises Service Level Agreements (SLA’s) make to the business.
Theory of Knowledge or “What are you prepared to do about it“?
Using the information you gain from your understanding of the system and insight into variation on the system you apply PDSA. You will see this expressed as PDCA (Plan, Do, Check, Act) or PDSA (Plan, Do Study, Act). I like to use Plan, Do, Study, and Adjust. Plan-Do is typical management – this means take specific actions that you hope will achieve a specific result. An expectation of Study-Adjust allows the organization to learn rather than blame. A culture of continuous improvement emerges where PDSA is practiced.
Kanban delivers a platform where the organization can practice PDSA. Metrics, operations reviews, the Andon, and retrospectives provide the ability to make a hypothesis about the system (Plan). The team can then make policy, process or organizational changes with the intention of achieving an improved outcome (Act). The system will expose whether the desired outcome is achieved (Study). Then the team can learn and alter their understanding of the system and adjust their actions. The transparency of Kanban helps develop our understanding and gives us courage to act on the system.
How does Kanban impact Human Psychology?
Employee engagement is a key to the successful performance in organizations. Organizations with high employee engagement have a much higher rate of employees who show a strong passion for their work and a commitment to their co-workers. Therefore it is not surprising that organizations with higher levels of employee engagement also have higher levels of employee productivity. Employee engagement arises when employees believe they positively impact the quality of the organization’s products.
In knowledge work, where products are invisible, impact can be difficult to demonstrate. Kanban clearly shows progress and demonstrates the contribution of each person to the delivery of value. Additionally, PDSA provides opportunities for everyone to contribute to improving the quality of the organization’s capabilities. By breaking down silos and creating insight that results in employee engagement, Kanban leverages human psychology to help organizations transform and mature.
Kanban supports Deming’s System of Profound Knowledge
If you equate Kanban with manufacturing you won’t be successful. You can’t explicitly apply Value Stream mapping or takt time to software development because there is too much variation in each work item. I am not suggesting we try to balance the system or produce code at the rate of demand – this won’t work. The goal is not to eliminate variation – the system has to operate well in the face of inevitable variability.
You need to understand what Deming has to say about knowledge work and how management is responsible for creating an environment for success. Kanban brings an easy to implement – low friction implementation of Deming’s philosophy. Implementing Deming’s System of Profound Knowledge through Kanban is a proven method for achieving higher levels of maturity and improved performance.
With over a decade of experience in Enterprise Agile coaching, Dennis Stevens is a pioneer in Lean and Agile Software Project Management. Before co-founding LeadingAgile, Dennis spent ten years as a software developer. He is certified in Lean Value Stream Mapping, as well as a Project Management Professional, OPM3 Certified Consultant, Certified ScrumMaster, and Kanban Coach. Dennis is a fellow of Lean Systems Society, and an avid blogger and speaker in the Agile community. His self-proclaimed passion is, “helping organizations deliver technology that makes a difference for their business.” For an extensive look at Dennis’ published works, check out his personal website.
Related: Dr. Deming: “If management truly understood the concept of continual improvement, they would give their people every opportunity to learn and improve— and a chance to make contributions to the company.” – Improving Processes Improves Innovation Efforts – Effective Communication is Explicit