lean thinking - lean development and agile methodologies lesson 2
TRANSCRIPT
Waterfall Development Process Lean Approach Lean Development References
Waterfall Development Process
Lean Approach
Lean Development
References
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Introduction
Waterfall Approach: Building software it's like building anhouse
I Analyze requirements
I Design
I Build
I Verify
I Mantain
I Linear process: each phase completedbefore the next one can start
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Phases
Analyze requirements
I Who are the stakeholders?
I What is this software supposed to do?
I Do we have con�icting requirements?
I ...
I Requirements should beI DocumentedI ActionableI MeasurableI TestableI TraceableI ...
I The output is a Product Requirement Document
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Phases
Design
I Architecture of the software
I How can we satisfy the requirements?
I What aspects should we maximize?I Compatibility?I Security?I Performance?I Modularity?I ...
I Design principles
I Output is a Design Description
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Phases
Build
I Actual coding
I Testing of the single components
I Integration between various parts
I Output is the software solution
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Phases
Verify
I Testing of the entire solution
I Fix of the issues
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Phases
Maintain
I Support
I Maintainance
I Other �xes...
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Conclusions
Advantages
I Easy to understand
I Good planning reduces costs
I Easy to manage
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Conclusions
Useful for projects with
I clear requirements
I �xed context
I clear timeframe
I �xed resources
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Conclusions
In the real world it often does not work :(
I IssuesI Not �exibleI Late feedbacksI High cost for delaysI No customer interaction
I Decisions are taken far from the moment they will be applied
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Conclusions
Usually building software is not at all like building an house
I Answers to a lot of questions changes during the projectI What do we want?I Are we going in the right direction?I Does it really work as expected?I Does it really feel as expected?I Do we still have the same resources available?I ...
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Conclusions
Let's get inspired by some other kind of production system...
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
History of Manufacturing
USA - Ford: Continuous system for mass production
I Model T - 1910s-30s
I "A bomber an hour" - 1944
I Based onI StandardizationI Assembly lineI No variation of the product
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
History of Manufacturing
Japan - Toyota - Toyota Production System (1948-1975)
Initialy called Just In Time
I Adapt to changing requirementsI Reduce setup costsI Allow small batchesI the market requires more customization and personalization
I Workers can contribute more
I Availability of component is keyI Not inventory!I Kanban
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
History of Manufacturing
Kanban
I Inspiration: shelf �lling policy in a supermarket
I When a order comes, the needed parts are taken andassembled, the ticket is sent upstream to the previous step
I the previous steps prepare what is written on the kanban andsend the product with the kanban downstream
I if at this stage materials from a precedent step are needed, thekanban mechanism works the same with the previous-previousstep as well
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
History of Manufacturing
Example
I customer asks for a bike
I assemblyI take the wheels and send the wheel kanban upstreamI take the frame and send the frame kanban upstreamI assemble the bike and give it to the customer
I wheel areaI recieve the kanban, prepare a new pair of wheels, attach the
wheel kanban to the wheelsI each part needed to build has a kanban, that is sent upstream
I frame production areaI recieve the frame kanban, prepare a new frame, attach the
kanban to the frameI each part needed to build has a kanban, that is sent upstream
I ...
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
History of Manufacturing
Lean Manufactoring is a concept expressed in 1990 in thebook "The machine that changed the world"
I In a chapter by John Krafcick, CEO google self driving cars
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Manufacturing Concepts
Lean Manufacturing
I Focus on reducing everything that does not provide value
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Manufacturing Concepts
Key Concept: Value
I Value is everything the customer is willing to pay for
I Value is de�ned by customer
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Manufacturing Concepts
Key Concept: Waste (MUDA)
I Waste is bad and undesirable both from an economical andethical point of view
I Waste is any activity that does not produce value
I Is waste so bad?I Someone has to pay for the waste. This means minor margin
or customer paying more than needed.
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Manufacturing Concepts
The 7 Kind of waste
I overproduction
I transportation
I stocks
I motion
I waiting
I defects
I overprocessing
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
Overproduction
I Producing items not needed right now- why?
I needed = required to satisfy an ordercoming from a customer
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
Transportation
I Moving things does not change their value
I risk and cost
I producing where it costs less then moving where you sell worksonly if you think in huge batches: you reduce the cost per unitand if you produce enough you will have an advantage
I so we somehow produce a lot and move things around tosatisfy the process, not the customer
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
stocks
I raw materials / uncompleted items / �nished goods
I storing, counting, and listing items does not change their value
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
motion
I Of people or parts during production, useless and risky
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
waiting
I goods not being processed
I value is not reaching the end of the�ow as fast as possible
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste
overprocessing
I more work than needed
I producing with higher quality than needed
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Lean Manufacturing principles
I 1) Specify Value
I 2) Identify Value Stream
I 3) Make the Value Stream �ow
I 4) Implement Pull Scheduling
I 5) Pursue Perfection
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Specify value
I What is value for the customer?I De�ned by customerI In a speci�c timeI At a speci�c priceI Represents needs of the customer
I Are you willing to pay...I $20 to Bill, so he can add MP3 player to your car?I $20 to John so we can store your car for two days?I $20 to Marie, so we can �x the mp3 player Bill installed upside
down?I ...
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Identify Value Stream
I each step in the entire productionI creates valueI creates no value but is (still) needed
I Muda type 1
I does not create value and it is not neededI Muda type 2
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Make the Value Stream Flow
I remove type 2 waste
I work on type 1 waste usually caused byI batch & queueI goods waiting for a next stepI meanwhile, value is postponed, we're waiting for the economy
of scale to be happy
I rethik process and stepsI every aspect: position, assumptions, speed, noiseI small improvements can give more bene�ts than New Big
MachinesI workers are key pieces of this approach as they know better
their job
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Bicycle production - traditional
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Bicycle production - lean
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Implement pull scheduling
I produce something only if a subsequent steps requires so
I from production for inventory to production for customer
I resources are used only if there is real demand
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean Principles
Pursue perfection
focus and iterate
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Example: Cola value �ow
Auminum production
I australia, bauxite, estraction phase
I 4tons to �ll a truck
I factory, 2tons of alumina powder - 30 mins
I 500k tons to �ll a ship container - 2 weeks
I travel to norway - 4 weeks
I wait in the foundry - 2 months
I melted
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Example: Cola value �ow
From Aluminium to can
I hot rolling, sweden / norway
I cold rolling, somwhere else (sweden / germany)
I cut and preparation, uk
I printing and cap
I sorting
I shipment to �ller
I �lling
I deposit
I supermarket
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Example: Cola value �ow
Sumary:
I Total time of value production: 3 hours
I Elapsed: 319 days
I lift up: 30 times
I 14 storage facilities across the world
I 4 times pack and unpack
I 24 percent of aluminim lost
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Example: Cola value �ow
Why?
I A single can is very small
I Everything in the �ow is very largeI Economy of scale requires so
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Introduction
Lean Development
I Rethink development with lean principles in mind
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Waste types table
I
Lean Manufacturing Lean Development
Overproduction Extra featuresTransportation Task switchingInventory Work partially doneMotion MotionWaiting WaitingDefects DefectsOverprocessing Extra processes
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Overproduction -> Extra Features
I Real temptation for Product Owners and Developers
I Adding extra features is percieved as harmless, it is notI needs to be testedI needs to be maintainedI can contain bugsI becomes obsolete
I Cost of development is not always percieved
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Transportation -> Task switching
I People are often assigned to multipleprojects
I Or multiple teams
I Or multiple roles
I This may be needed in some scenariosbut every context switch creates waste
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Inventory -> Work partially done
I Uncompleted features
I Something is there, so you do not want to remove it
I But is not �nished so you cannot enable it
I Will it really work at the end?
I Is code you have spent resources on, but is not producing value
I Brings costs and risks for no reason
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Motion
I Also, accessibility issue
I How far should I go to get the answer?
I Artifacts move as wellI RequirementsI design docsI codeI code / feature hando�
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Waiting
I Each wait postpones the value for the customer
I Slower ouput means slower response to request
I One of the principles of lean development is to decide as lateas possible, waiting makes this less e�cient
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Defects
I Waste amount is the impact multiplied the time it goesundetected
I Finding defects early is crucialI test immediatlyI iterate oftenI release in production soon
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Waste Types
Overprocessing -> Extra processes
I Excessive Paperwork
I If there is noone waiting for it, it is a waste
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Principles
Seven Principles
I Eliminate waste
I Amplify Learning
I Decide as late as possible
I Deliver as fast as possible
I Empower the teamI Technical decisions taken by techicalsI Late decisions means not having time to review everything
I Build integrity inI External and internal
I See the whole
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Tools
Tools to...
I Eliminate WasteI Map the value stream, �nd the blocked areas, correct them
I Amplify LearningI Feedback LoopsI Iterative processes
I Decide as late as possibleI Concurrent developmentI Keep options availableI Wait until the last responsible moment
I Deliver as fast as possibleI Pull system: let people �gure out what to doI Kanban or similar signals
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Tools
This course as a kanban board
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Tools
Tools to... (2)
I Empower the team
I
Manager LeaderCope with complexity Cope with changePlan and budget Set directionOrganize and sta� Align peopleTrack and control Enable Motivation
I "hire good people, and leave them alone"I "If you put fences around people you get sheep"
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
Lean from the real world
Stories from the real world
I Reduce Waste in bugs
I Lean handling of icons and strings
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
References
Bibliography
I Lean Thinking - Womack and Jones - part 1
I Lean Development - Poppendieck and Poppendieck -introduction, chapter 1, concepts from other chapters as well
francesco mapelli (@mapelli) University of Insubria
Lean Thinking
Waterfall Development Process Lean Approach Lean Development References
References
Attribution
I Diagrams of the bicycle factory layout taken from "LeanThinking and Strategic Asset Management" , MRO Software
I Salami picture by André Karwath aka Aka
francesco mapelli (@mapelli) University of Insubria
Lean Thinking