lean thinking - lean development and agile methodologies lesson 2

56

Upload: francesco-mapelli

Post on 16-Feb-2017

340 views

Category:

Small Business & Entrepreneurship


2 download

TRANSCRIPT

Lean Thinking

francesco mapelli (@mapelli)

University of Insubria

April 22, 2016

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