InfoQ

Article

The Three M's - The Lean Triad

Posted by Roman Pichler on Feb 27, 2008

Community
Agile
Topics
Methodologies ,
Delivering Value
Tags
Complementary Practices ,
Lean ,
Continuous Improvement

The discussion of applying lean principles to software development has largely focused on identifying and eliminating waste (in Japanese: muda). Lean Thinking equally aims to remove overburden (Japanese: muri) and unnecessary variation (Japanese: mura). Muda, muri and mura are called "the three M's." Together they form a dissonant triad. All three M's must be eliminated to create a sustainable lean process. This article discusses the relationship between the three M's and argues that the elimination of overburden should be the first step for software development organizations in order to create a lean process.

RelatedVendorContent

Agile Development: A Manager's Roadmap for Success

The Agile Project Manager

The Agile Checklist

Agile Transformation Strategy

Technical Debt and Design Death

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

Waste

Waste, in lean thinking, is defined as: all activities that do not add value from a customer perspective and that can be removed. Examples are overproduction and over-processing, work-in-process or inventory, defects, hand-over and task switching, waiting and unused employee creativity.

Value-creating activities enhance the product from a customer perspective. A good question to ask is: "Would I be happy to pay for this activity as the customer?" If the answer is yes, it is likely to be a value-creating activity. Examples are discovering and understanding customer needs and writing code. Additionally, activities such as prototyping that create the relevant knowledge to develop the software system are also valuable as the late Allen C. Ward points out. Any activities that do not create value and cannot be eliminated under the current conditions are called "non-value added" activities. Examples are configuration management and project planning activities.

The Agile Manifesto acknowledges the importance of focusing on value-creating activities in software development when it states that working software is more important than comprehensive documentation. By eliminating waste we are able to create better products, faster.

Overburden

So what's wrong with focusing, first and foremost, on seeing and eliminating waste? Even though most traditional development organizations carry out few activities that truly add value, the right approach is often to attack a different disease first: overburden. As long as people work crazy hours, and as long as projects and teams are overwhelmed by the amount of work, the removal of waste alone is ineffective. Waste is likely to creep back in unless we limit the amount of work to the capacity and capabilities of the organization. Let's assume you try to eliminate defects but the project still suffers from overburden. Chances are that quality problems reappear since the project members still feel pressured and are overworked. In fact, overburden is a major source of waste such as work-in-process, waiting and delays, task-switching and defects.

Limiting demand to capacity and capabilities is exactly what Scrum and Extreme Programming do. By empowering the team to select a realistic amount of work for a given iteration, overburden is stopped and systematically avoided. A sustainable pace is achieved. Additionally, Scrum and XP create a pull process and a steady cadence where the team essentially pulls requirements from the product backlog and transforms them into product increments on a regular basis.

One of the benefits of a pull process is that in addition to avoiding overburden, it also makes waste and other problems visible. With excessive inventory buffers gone, problems now surface quickly. Scrum recognizes the importance of recognizing and removing problems and impediments. Its daily Scrum meeting serves to systematically identify problems.

Variation

A pull process with a steady cadence creates visibility of unnecessary variation, such as differences in the size and granularity of requirements put forward to the team in the iteration planning meeting, or the use of different build scripts. Other examples of unnecessary variation are using different development tools, applying development practices such as test-first and refactoring inconsistently, as well as not following coding standards. Variation creates waste such as defective software, over-processing and rework. Standards and norms eliminate variation.

Not all variation in software development is bad, though! For instance, formulating requirements at different levels of detail in the product backlog can avoid overproduction, over-processing and rework. Creating prototypes to explore different technology and design options is a form of necessary variation that creates the relevant knowledge to make the right architecture and technology decisions. Notice that is more economical to invest in organized experimentation early on rather than to bet on one grand but possibly unproven design idea only to partly rewrite the software system later on.

Summary

To establish a lean process, the traditional development system must be fundamentally changed and the right process must be established. For software development organizations this is best achieved by applying a pull process with a steady cadence as created by Scrum and XP. This is a form of radical improvement also called kaikaku in Japanese. Once the new way of working has been established, waste and variation must be systematically eliminated. The process is hence incrementally and continuously improved, which is also known as continuous improvement or kaizen in Japanese. Reflexion and continuous improvement is facilitated by regular retrospectives. In sum, establish the right process first by removing overburden. Then empower and encourage the teams to eliminate waste and unnecessary variation relentlessly.

Literature

  • Jeffrey K Liker: The Toyota Way. McGraw-Hill. 2003.
  • James M. Morgan, Jeffrey K. Liker: The Toyota Product Development System: Integrating People, Process and Technology. Productivity Press. 2006.
  • Mary and Tom Poppendieck: Implementing Lean Software Development: From Concept to Cash. Addison-Wesley. 2006.
  • Donald G. Reinertsen: Managing the Design Factory. A Product Developer's Toolkit. Free Press. 1997.
  • Allen C. Ward: Lean Product and Process Development. Lean Enterprise Institute. 2007.
  • James P. Womack, Daniel T. Jones: Lean Thinking. Touchstone Books. 1996.

About the Author

Roman Pichler of Pichler Consulting Limited, -works as an independent consultant, trainer and coach. Roman's clients value his rich and diverse experience ranging from helping start-ups as well as large global companies to apply Lean Thinking and Scrum. He is the author of the book "Scrum - Agiles Projektmanagement richtig einsetzen" (dpunkt 2007).

Lean triad and japanese words. by Alexander Bronshtein Posted Feb 29, 2008 11:15 AM
Re: Lean triad and japanese words. by Roman Pichler Posted Mar 1, 2008 1:44 PM
3 M's and more by Vikas Hazrati Posted Feb 29, 2008 12:15 PM
Uneveness leads to overburdening leads to not eliminating waste by Jason Yip Posted Mar 4, 2008 5:54 AM
Re: Uneveness leads to overburdening leads to not eliminating waste by Roman Pichler Posted Mar 4, 2008 7:14 AM
Re: Uneveness leads to overburdening leads to not eliminating waste by Richard Henderson Posted Mar 5, 2008 6:20 AM
Re: Uneveness leads to overburdening leads to not eliminating waste by Markus Frick Posted Jul 29, 2009 6:33 AM
Important to look at pull in the entire value stream by Jesper Boeg Posted Jan 19, 2009 6:32 AM
  1. Back to top

    Lean triad and japanese words.

    Feb 29, 2008 11:15 AM by Alexander Bronshtein

    Do japanese words muda, muri, mura, etc. add any value or context to this article? Are they used to prove or illustrate any point? Are not they the waist? Do they create a variationfrom the "standard" article language?

    On the same note: Is value solely defined by the customer perspective? Would customer always agree to pay for activity that wold not benefit him in the short term? What is about the value in the case of conflict of interests between short term needs of customer A, sustainability of your organization and future needs of the future customer B?

    Is it always easy to see immediatly if variation could bring a value? How new innovative standards could take of from the ground if we ban variations from the existing standards?

    Does overburden has no rationale at all? Could (should?) overburden be always avoided?

  2. Back to top

    3 M's and more

    Feb 29, 2008 12:15 PM by Vikas Hazrati

    On similar lines we tried to use the Toyota lean concepts in working with a distributed team. The project was a huge sucess.
    More details here -->
    Agile Offshoring : It’s hard work but it works!
    on how we worked to make the project a success.

    vikashazrati.wordpress.com

  3. Back to top

    Re: Lean triad and japanese words.

    Mar 1, 2008 1:44 PM by Roman Pichler

    Alexander,

    Since lean thinking originated in Japan, I use the original Japanese terms in addition to their English translations – like most other Western authors do. This avoids ambiguity that can arise when words are translated.

    As explained in the article, I consider software development activities as valuable if they create relevant knowledge or add value from a customer perspective.

    Once a lean process has been established, unnecessary variation is systematically eliminated by applying continuous improvement. Watch out for two things: First, create pull or flow and then stabilize the new system before you try to standardize. Second, empower and encourage the doers (developers, testers etc.) to improve their work.

    I consider overburden a curse. It is plain wrong. You may gain short term wins but you sacrifice a better and brighter future.

    Roman

  4. Thought it's worth pointing to Jim Womack's e-letter that describes how mura creates muri that undercuts efforts to remove muda.

  5. Hi Jason,

    Thanks for the link – I had completely forgotten about this e-letter :-) I would still argue that in software development, the first thing you should do is to remove overburden by establishing a pull process. This will cause problems and variation to surface. Once the new process has been stabilized, tackle variation by practicing continuous improvement and standardizing the work.

    You may also find Jim Womack’s e-letter on cadence helpful: www.leanuk.org/articles/jim_eletter_200801.pdf. It talks about creating a levelled workflow (heijunka) across the organization. I have found that even though upstream processes such as strategy and portfolio management often need to be improved too, software development is usually the right place to start. Only once we know how much work the development teams can pull and consume, the upstream processes can be adequately adjusted so that value flows smoothly through the entire system.

    Best regards,
    Roman

  6. I agree. Muri first. then Mura, then Muda. that is the wisdom handed down from the original thinkers of the toyota way.

    A little explanation may help here. Overburden is only one symptom of Muri. Possibly the most obvious. But the word really means "irrational". Until rationality is introduced, i.e. an empirical approach, based on fact and logic, expressed through standards, then there is no foundation for future improvement. So eliminating muri is the essential first step.

    This link might help here: www.chcanys.org/clientuploads/downloads/Clinica...

    Thanks

    Richard Henderson

  7. In Lean thinking, pull is established in the entire value stream. It is therefore dangerous to look at pull only from the development team perspective (pulling items from the backlog). If the customer is not actively pulling functionality and cannot keep up with the pace of the team, the team is essentialy just creating muda. I have experienced this first hand where my team was adding functionality at a much higher rate than the customer was able to absorb, resulting in pure muda where test, feedback and even the relationship between the customer and the development team suffered.

  8. Hi,

    quite funny the word twisting - what Womack in his letter said, simply was his observation that often it very much seems that uneveness is the root cause of waste. In the end it's in the eye of the beholder, as which is true for many other cyclic dependencies. That's why, in my optinion, the continuous improvement is so crucial to reduce the ultimate target: waste.
    And this also makes it crucial that the entire value stream is considered.

    I found the book by Larman and Bode (Scaling Lean and Agile Development: Thinking and Organizational Tools for Large-Scale Scrum) particularly interesting in the Systems Thinking section. This is where, sometimes vicious, cycles are discussed. In the end it gives further evidence of why and how agile processes really work (allow teams to work in steady cadences (lower Mura), have the teams being empowered (allow for lower Muri) and do retrospectives (lower Mura).

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.