Lean Anti-Patterns and What to Do About Them

Summary:

When attempting to adopt best practices we often can't see the forest for the trees. We can see what we are doing wrong, but how will that help us to see what to do right? In this article, we will discuss a few common Lean Anti-Patterns. Anti-Patterns are commonly recurring practices that are counter productive. We call them quot;Leanquot; Anti-Patterns because these anti-patterns result from violating Lean principles. Lean principles form the basis for Scrum practices. Looking at how Lean Anti-Patterns violate lean principles gives us insight into how we need to modify our practices to be more effective.

What Are Lean Anti-Patterns?
Lean is the label for a way of thinking pioneered by Toyota in its approach to designing and building cars. Womack and Jones [1] extended this way of thinking, coming to view Lean as a process of quot;fast-flexible-flowquot; to convert concepts into cash quickly and sustainably. Mary and Tom Poppendieck [2] applied these ideas to software development, developing the notion of Lean Software Development.
An quot;anti-patternquot; {sidebar id=1} is a way of doing something wrong that commonly occurs again and again. An anti-pattern is not exactly the antithesis of a quot;pattern,quot; which can be considered as a solution to recurring problems within a context. Patterns focus on solving problems whereas anti-patterns focus on bad practices.
A Lean anti-pattern, then, is a commonly occurring bad practice that violates Lean principles, that works against the organization seeking to become Lean.
An example of a Lean anti-pattern is Regression Deficit Disorder (RDD). [3] RDD occurs when features are added without adding automated acceptance tests. Over time, this leads to regression testing that takes longer and longer. And costly testing makes it just that much harder to do quick releases. And that delay makes it just that much harder for the organization to deliver value to its customers quickly. Such waste is a shame.
Why do I call this a Lean anti-pattern? Because the bad practice - no automated acceptance testing - violates basic Lean principles (how they do that I will leave for you to consider):

  • Optimize the whole
  • Deliver fast
  • Eliminate waste
  • Build integrity in

The Value of Anti-Patterns

The value of anti-patterns is not to identify bad practices. That is the easy part. An anti-pattern exists because of a violation of some underlying principle. They give you a way to understanding the deeper issues that are involved and that gives you a handle to think about what to do. Thus,
The key to fixing ineffective behavior is to identify the principle(s) being violated and to stop violating them.
This article suggests using anti-patterns to improve performance by:

  1. Finding non-productive actions that are being done.
     
  2. Identifying the principles being violated.
     
  3. Seeing other ways of doing tasks that do not violate these principles.

Of course, this is easier said than done. Sometimes, you do not have control over what needs to be done. In these situations, you can use the principles to help those in control to see what is going on and encourage them to change their actions. Additionally, and perhaps more importantly, recognizing the principles being violated helps you see what you can do within your own sphere of influence. You are equipped to see in new ways: how often we are aware of ineffective behavior but justify it by saying, quot;well, this is just the way things are.quot; We do not want to be satisfied with the status quo!

Why Focus on Lean Anti-Patterns?
Now, given that you are trying to do Agile development, why should you focus on Lean anti-patterns? People who study both Lean and Agile soon realize that Lean provides a set of principles that assist in the adoption of Agile practices. Violating Lean principles guarantees that you will have bad Agile practices.

Simply tweaking a process as a quick response to fix some sort of bad practice may never fix the true problems. That approach rarely addresses the underlying root causes. That is why Step 2, above, is so important. Start by looking at the impediment, the practice or whatever is getting in the way. Then, use anti-patterns to help consider the principles being violated and thus to identify root

Tags: 

About the author

Alan Shalloway's picture
Alan Shalloway

Alan Shalloway is the founder and CEO of Net Objectives. With almost forty years of experience, Alan is an industry thought leader, a popular speaker at prestigious conferences worldwide, a trainer, and a coach in the areas of lean software development, the lean-agile connection, Scrum, agile architecture, and using design patterns in agile environments. Alan is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design and Lean-Agile Software Development: Achieving Enterprise Agility.