Showing posts with label Goal-Driven lean. Show all posts
Showing posts with label Goal-Driven lean. Show all posts

Saturday, April 18, 2020

Essential Lean - Searching for a Definition


Starting with the need - Taiichi Ohno, Toyota Production System 

Searching for a definition

Lean is a systematic approach that offers a specific capability and/or offers solutions to problems from specific domains (for example software development).


Why do we need a clear, generic definition? Existing ones are focused on enumerating the “how”-s, and consequently exclude some of the great contributions to Lean.
Initial promised capability: efficiency.
For both manufacturing and knowledge work, there is a catch! You will not get efficiency by blindly following this goal. Effectiveness and efficiency are working together in any context defined by complexity and incertitude.


 Concrete promised capability: work optimization (efficiency & effectiveness)

Lean Definitions Pitfalls


Jumping to solutions is prescriptive – The currently existing definitions are "enumerations", describing some of the main categories of solutions and do not fully address the promised capability or the problems to solve. This approach – jumping into solutions - is somehow prescriptive and cannot offer an optimum (leaner) response in context.
 
Example: The recommendation to reduce the delivery level feedback cycle with Kanban and continuous flow is a good general guideline, but for a specific context, the leaner option could be an iteration-based life cycle with Kanban used internally. In other contexts, the reverse could be true. Given these prescriptions, we will start to "believe" in labels. For example, one big confusion is the one between Kanban and Lean, where Kanban is just one of the Lean practices.

Disregarding significant problems - The most common problems for software development efficiency should be also covered by Lean. Some examples include:
  • undesired complexity
  • lack of collaborative work
Both categories of problems are generating a lot of well-known wastes such as waiting, excessive handovers, and defects.  
Most known Lean approaches have inherited from manufacturing the subject of the waste produced by defects but failed or forgot to discuss the main root cause of the defects - undesired complexity and poor design - that is specific to software development. Unfortunately, non-software thinking mode still predominates in lean.


No problem-solution traceability – we should start from identifying the main problems and then find the best solution in context instead of starting from a list of enumerated good practices. Unfortunately, Lean is currently still delivered in a "methods" based package: here is our solutions list, just do it.   

A point of start


We should extract and use knowledge from different sources as Al Shalloway points out here: ".. if we take from Scrum what we’ve learned, not about Scrum, but about the methods it pulls from, about the ideas, about the concepts it pulls from, about why getting quick feedback is good, why having teams is good. Now, what if we go to Kanban and say what have we learned about these axiomatic truths from using Kanban, why is managing queue size good, why is managing flow good, why are explicit policies so good. And then kind of throw away both Scrum and Kanban so to speak, but keep all that knowledge of this axiomatic knowledge and then say, well, what if we created a new method, what if the people who know Scrum and Kanban are really good at it and now understand these axiomatic methods were to come up with, what would we build now if we knew back then what we know now?

It is interesting that the same thinking could be found in the foundations of world philosophy: “The fish trap exists because of the fish. Once you've gotten the fish you can forget the trap. The rabbit snare exists because of the rabbit. Once you've gotten the rabbit, you can forget the snare. Words exist because of meaning. Once you've gotten the meaning, you can forget the words. Where can I find a man who has forgotten words so I can talk with him?” - Zhuangzi, Chuang Tsu, Chapter XXVI.

Returning to software, we might have some similar goals in different software efforts, but the context is different, so we can't rely on prescribed process solution. So we should pay attention to what is a principle, an axiomatic knowledge, and what is closer to concrete practices. An excellent approach could be one expressed by Scott Ambler and Mark Lines:: "Our philosophy is to look for great ideas regardless of their source and to recognize that there are no best practices (nor worst practices). When we learn a new technique, we strive to understand what its strengths and weakness are and in what situation to (not ) apply it." [2]. We should creatively apply our domain principles and select the practices/process solutions that work better in our specific context.     


Essential Lean Series

Read first: Principles of lean thinking (by Mary Poppendieck)   


Essentializing Lean - essay
Essential Lean - Red Flags


References
[1] - Al Shalloway Discusses the Lean-Agile Method
 [2] - Choose your WoW: A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working, 2020 Edition, by Scott Ambler, Mark Lines 

Essentializing Lean - Essay


Starting with the need - Taiichi Ohno, Toyota Production System

We suggest reading first: Principles of lean thinking article (by Mary Poppendieck)   


SEARCHING FOR A DEFINITION... – We need a clear definition, with a clear promised capability, and that will starts from the needs, and that will not exclude any great existent contribution.   

LEAN DEFINITIONS PITFALLS... – lean should be goal-driven. Just enumerating some of the lean solutions is merely a prescriptive approach. Software development's biggest problems -  such undesired complexity and lack of collaborative work - are too often disregarded in these solutions. We need traceability between industry problems/specifics and lean solutions.
 
PROBLEMS/SOLUTIONS INVENTORY... – Main software domain's known generic problems and traits include: 
  • complexity, incertitude, and knowledge work
Existing lean solutions have these generic recommendations:
  • studying the way of working & improving it by avoiding waste, 
  • maximizing the produced value
  • producing the value early.  

ANALYZING LEAN SOLUTIONS... – We cannot disregard any of the major sources of waste. There is an avalanche effect: one source of waste will produce more others and so on. All lean categories of solutions (avoiding waste, maximizing value, delivering early) are related to the main domain problems/traits: complexity and incertitude. Instead of just enumerating lean solutions we should consider exploring and experimenting with any approach that will address these main problems.
 
GOAL DRIVEN LEAN... - Lean should be goal-driven. Work optimization - the main purpose of lean – could be performed only by discovering the problems and finding the solutions that are specific for a team and organization context. Since we already have a good goal-driven approach in Disciplined Agile that could be an inspiration for organizing and essentializing Lean.
 
LEAN DEVELOPMENT GOALS... – instead of jumping to directly to practices, we could propose a list of Lean goals:
  • avoiding waste
  • delivering value early
  • maximizing delivered value
  • managing complexity
  • managing incertitude
For avoiding waste, the current works that start from the sources mentioned by the Toyota Production System are a good starting point.    

GUIDANCE EXAMPLE: AVOID DEFECTS GOAL... – First we need to evaluate and assess the impact of the defects. Product complexity and its criticality should influence quality politics. Then we should identify the root causes and the recommended practices in context. Some examples of causes are an unnecessary big scope of work, no built-in quality, and lack of skills. 
 
RED FLAGS... – if we want a quick, but not necessarily accurate, assessment of work there are some red flags, such as two sources of waste that are easier to measure: Waiting and Defects. Anyway, one should remember the “waste avalanche effect” and search for all significant sources of waste and their root causes.   


Essential Lean Series

Essentializing Lean - essay