lean sw development il tech-talks
DESCRIPTION
A presentation from a talk i gave about the principles of lean thinking in software developmentTRANSCRIPT
Lean Thinking in Software Development
ELAD SOFER – AGILE [email protected]
Twitter: @eladsofBlog: blog.thescrumster.com
Origins of “Lean”
“Lean” originated from a benchmarking studypublished in 1990 between Japanese and US/European car manufacturers
Origins of “Lean”
The study showed that for certain Japanese manufacturers:
Average productivity about 50% higherAverage quality about 50% higherProduct development about 40% faster with less people
Lean is not only in production but also in product development, sourcing, sales, customer relations
Lean and TPS
The study introduce the word “lean” for the different production/thinking style.Lean is heavily based on Toyota Production System (TPS)
How it all started….
Taiichi Ohno
Build only what is needed Eliminate anything which does not add value Stop if something goes wrongrespects those engaged in the work strives for full utilization of worker capabilitiesplaces authority and responsibility for the work with those doing it
Cargo cult lean adoption
A thinking tool - not a cult
“... it was only after American carmakers had exhausted every other explanation for
Toyota’s success—an undervalued yen, a docile workforce, Japanese culture, superior automation—that they were finally able to admit that Toyota’s real advantage was its ability to harness the intellect of ‘ordinary’
employees” [Hamel06]
House of Lean.
Goal:
continuousImprovement
(kaizen)
Respect for people
Management applies and teaches lean thinking.Management decisions are based on this long-term philosophy
Highest quality, lowest cost, Shortest cycle time
Product development
The 14Principles
The goal (roof)
“All we are doing is looking at the time line, from the moment the customer gives us an
order to the point where we collect the cash. And we are reducing the time line by reducing
the non-value-adding wastes” [Ohno88]
Value stream example
A feature is born
Waiting for PM
Waiting for TL
Analyzed Estimated Prioritized Design
Waiting for PM
Waiting for Team
Waiting for team
Coding
Waiting for tester Waiting for release date
Testing
30 min 3 weeks 2 days 5 days 1 hour 8 days 2 hour 2 hour 2 days 5 days
10 days 5 days 6 days 1 month
Cycle time : 0.1 + 21 + 2 + 5 + 0.1 + 8 + 0.2 + 0.2 + 2 + 5 + 10 + 5 + 6 + 30 = 89.6
Value time = 0.1 + 2 + 0.1 + 0.2 + 2 + 10 + 6 = 18.4
80% Waste!!!
The foundation
Management applies and teaches lean thinking, and bases decisions on this long-term philosophy
All Toyota employees learn:problem solving through hands-on improvement experimentsto see how lean thinking applies in different domainskaizen mindset (continuous improvement)To appreciate a core principle in Toyota called Go See and Gemba
Managers = Teachers
Culture of mentoring.“My manager can do my job better than me”Expected to understand lean thinking.In this way, the Toyota DNA is propagated
Example: Toyota HR policies include analysis of how much time managers spent in teaching.
Pillar I – Respect for people
Don’t Trouble Your Customer!Develop People and Then Build ProductsManagers “Walk the Talk” Teams & Individuals Evolve Their Own Practices & ImprovementsBuild Partners
Don’t Trouble Your Customer!
Customer: anyone who consumes your work or decisions.Relentlessly analyze and change to stop troubling themDon’t force people to do wasteful workDon’t give them defectsDon’t make them waitDon’t impose wishful thinking on themDon’t overload them
Pillar II – Continuous improvement
Go See - GembaKaizen.The perfection challengeWork toward flow
Go see – Gemba
The first factor for success in continuous improvement [Toyota Way 2001]Management should frequently go to the place of real work and see and understand for themselves
Go see – Gemba
“You can’t come up with useful kaizen sitting at your desk… We have too many people these days who don’t understand the workplace…
They think a lot, but they don’t see. I urge you to make a special effort to see what’s
happening in the workplace. That’s where the facts are”
[Michikazu Tanaka]
Kaizen
Mindset: My work is to do my work and to improve my work.
Practice:Choose and practice techniques the team has agreed to try, until they are well understood—that is, master standardized workExperiment until you find a better wayRepeat forever
Kaizen – Remove waste
Value: The moments of action or thought creating the product that the customer is willing to pay for.Waste: All other moments or actions that do not add value but consume resources.value ratio =total-value-time / total-cycle-time
Waste (1)
Overproductionfeatures or services the customer doesn’t wantlarge engineering documents, more detailed designs than can be quickly implementedduplication of data
Waiting / delayfor clarificationDocumentsApprovalComponentsother groups to finish something
Waste (2)
Handoff, conveyance, moving Giving a specification from an analyst to an engineerGiving a component to another group for testing
Extra processing Relearning, lose of information.Forced conformance to centralized process checklists ofRecreating something made
Waste (3)
Partially done work – WIP \ DIPDesigns documented but not builtThings built but not integrated or testedThings tested but not delivered.
Task switchingInterruptionMultitasking on 3 projectsPartial allocation of a person to many projects
Waste (4)
Under-realizing peoplePeople only working to single speciality jobDo people have the chance to change what they see is waste.
Information scatter or loss Information spread across many separate documents Communication barriers such as walls between people, or people in multiple locations.
Waste (5)
Wishful thinking“We MUST follow the plan”“The estimate cannot increase; the effort estimate is what we want it to be, not what it is now proposed.”“We’re behind schedule, but we’ll make it up later.”
Kaizen events
A regular and frequent cadence of events is desirable (Daily\weekly)Steps in a Kaizen event:
Analyze some current situation until it is well-understood.Design experiments for improvementDuring this analysis and design, focus on activities rather sitting around a table and talking.
The perfection challenge
Traditional mindset: Why should we change? We’re making good money, and have established processes…
You will NEVER hear this question at Toyota!
Work toward flow
Move to ever-smaller batch sizes and cycle times to deliver value fast & expose weakness.Associated with applied queuing theory, pull systems, and more.
Product development
Outlearn the competition.Focus on uncertain thingsFocus on early testing and feedbackIntensive customer investigation.Reuse knowledge.
MentoringRecord experiments and use the data.
Challenge everything.Cadence (Rhythm)
The 14 Principles (1-7)1. Base management decisions on a long-term philosophy, even at the
expense of short-term financial goals.2. Move toward flow; move to ever-smaller batch sizes and cycle
times to deliver value fast & expose weakness.3. Use pull systems; decide as late as possible.4. Level the work—reduce variability and overburden to remove
unevenness.5. Build a culture of stopping and fixing problems; teach everyone to
methodically study problems.6. Master norms (practices) to enable kaizen employee
empowerment.7. Use simple visual management to reveal problems and coordinate.
The 14 Principles (8-14)8. Use only well-tested technology that serves your people and process.9. Grow leaders from within who thoroughly understand the work, live
the philosophy, and teach it to others.10. Develop exceptional people and teams who follow your company’s
philosophy11. Respect your extended network of partners by challenging them to
grow and helping them improve12. Go see for yourself at the real place of work to really understand the
situation and help.13. Make decisions slowly by consensus, thoroughly considering options;
implement rapidly.14. Become and sustain a learning organization through relentless
reflection and kaizen.
Long term philosophy
Refrain from local optimization.Optimize the whole.
Move towards flow
Reduce cycle time.Reduce batch sizeReduce delaysReduce WIP
A Perfection challenge.
Move towards flow
Feedback time
Batch size
$
Transaction costs
Efficiency
Queue size
Cycle Time
QualityInnovation
Use Pull systems
Everyone are customers.Don’t do anything unless the customers asks you to.Why pull?
Expose defects early.Decide at the last responsible moment.
A Perfection challenge.
Level the work - Variability
Reduce Variability:Varying cycle lengthsVarying batch sizes of work packagesVarying size of one work packageVarying teamsVarying delivery timesDefectsIrregular arrival of requests.
How?Cadence, sustainable pace.Decompose work into smaller package.
Level the work - Overburden
Reduce OverburdenOvertime for fake deadlines.Asking too much of people.Specialists as bottlenecks.
How?Detect queues and bottlenecks and eliminate.Take on less work. Descope.Spread skill and knowledge.
Stop the line - JIDOKA
When someone finds a defect:Stop the line.Take the necessary time to analyze the problem.Fix it.Continue the line.
Sends the right message
Simple visual management
Toyota uses BIG visual tools to signal problems, communicate, and coordinate a pull system.Color coding.Kanban – Visual card.Andon – Error display.
Examples of Visual
managementIn Software
Kan – banVISUAL CARD
Kanban - General
A system to manage work.A pull system focusing on visibility.A system to help limit the WIP.Focus on speed (Cycle time)
Not a complete solution, should be embedded within another solution.
Kanban – Step 1 - Analyze work
Identify the different process stages.Put them in the order of work.Map tasks into the different stages.
Kanban – Step 2 - Visualize work
Create a Kanban board.Each work item is a card.Each step is a column.Each column has two parts:
In workDone
Kanban – Step 3 – Work!
Focus on speed of getting stuff Done.Go as fast as you responsibly can.Focus on the Baton,not the runners.
Kanban – Step 3 – Limit WIP
Remember what you “Noticed”.Limit the WIP to what you find matching your needs.Respect the WIP limitIf a queue is full throw out something else.
Kanban – Step 4 – Measure
Cycle time.Why item X took twice as much as item Y.
Delay time for each queue.Why was item X delayed more than item Y.
Measure queue sizes.Why is this queue always empty \ full.
Visualize the data.Generate cumulative flow charts.
Cumulative flow chart
Books…