2. Lesson Topics
● Waterfall Development
● Lean Manufacturing
○ History of manufacturing
○ Lean manufacturing concepts
○ Value and Waste
○ Lean principles
● Lean Development
● Kanban in project management
4. Waterfall - traditional development process
● First software engineers were engineers trained and raised with
manufacture and construction industries in mind. They applied to software
development the consolidated engineering processes that were the
industry standard for the other engineering sectors.
6. Building software is like building an house
1. Analyze requirements
2. Design
3. Build
4. Verify
5. Maintain
7. Waterfall is a linear process
● Each phase must be completed before the next one can start
● Document driven: each stage produces documents or artifacts (technical
documentation, code…) that are verified
○ signed by the customer if we have a customer
○ or verified by the main stakeholder
● Each steps is completed with a verification phase. This is needed to allow
the next stage to start
8. Why requirements
and design are
done upfront?
The cost of changes increases
as time passes: it is cost
effective to define everything in
the early phases to avoid having
to change something later
9. Waterfall Phases
1) Analyze requirements
● Who are the stakeholders?
● What is this software supposed to do?
● Do we have conflicting requirements?
● …
● Requirements should be
○ Documented
○ Actionable
○ Measurable
○ Testable
○ Traceable
The output is a Product Requirement Document
10. Waterfall Phases
2) Design
● Architecture of the software
● How can we satisfy the requirements?
● What aspects should we maximize?
○ Compatibility?
○ Security?
○ Performance?
○ Modularity?
○ ...
● Design principles
The output is a Design Description
11. Waterfall Phases
3) Build
● Actual coding / UI etc.
● Testing of the single components
● Integration between various parts
The output is the software product
12. Waterfall Phases
4) Verify
● Testing of the entire solution
● Fix of the issues
● The output is a testing document
15. Waterfall strengths
● Easy to understand
● Process is straightforward
● Good planning reduces costs
● One single pass to have the solution implemented
● Easy to manage
16. Waterfall works for projects with:
● clear requirements
● fixed context
● clear timeframe
● fixed resources
17. The Sad Truth about waterfall
In the modern world it often does not work
● Issues
○ Not flexible - past is frozen!
○ Late feedbacks
○ High cost for delays
○ No customer interaction
○ Customer / stakeholder never knows exactly what they want or need
○ No iteration or evolution of the software
● Decisions are taken far from the moment they will be applied
18. Usually building software is not at all like
building an house
Answers to a lot of questions changes during the project
● What do we want?
● Are we going in the right direction?
● Does it really work as expected?
● Does it really feel as expected?
● Do we still have the same resources available?
● Do we still want what we wanted six months ago?
● ...
21. USA - Ford: Continuous system for mass
production
● Model T - 1910s-30s
○ "A bomber an hour" - 1944
● Based on
○ Assembly line
○ Standardization
○ No variation of the product
22. Ford built the factories to optimize the
production flow of a specific product
● The assembly line moves the product from one worker to the other
● Each worker is always busy
● Each part of the product currently in the product line is always being
worked on
● Variations / Customizations: not required (thus not supported)
● Workers doing a simple job, no much training needed, nothing more asked
to them, no other contribute coming from workers except manual job
23. Japan - Toyota - Post WW2
Different environment, different times
● Smaller market
● One product with no variations is no longer ok
● Inventory is there to provide availability: can we have availability reducing
the inventory?
● Should we rethink the worker’s role?
24. Japan - Toyota - Toyota Production System
(1948-1975)
Initially called Just In Time
● Adapt to changing requirements
○ Reduce setup costs
○ Allow small batches
○ The market requires more customization and personalization
● Workers can contribute more and know how to improve the process
● Availability of component is key
○ Not inventory!
○ Introduction of Kanban
26. Inspiration: shelf filling policy in
supermarket
● Shelves have a low number of items ready
● User comes and take one item
● When there are no items left (or very few) the shelf that needs to be
replenished is replenished
27. Applied to production steps
(“Kanban” literally means billboard, ticket)
● When an order comes, the needed parts are used and assembled. If we are
below a certain amount of parts available, the corresponding ticket
(kanban) is sent upstream to the previous step
● The previous step prepares what is written on the kanban and send the
product with the kanban downstream
○ if at this stage materials from a precedent step are needed, the kanban mechanism works
the same with the previous-previous step as well, and so on.
28. Example
● Customer asks for a bike
● Assembly section
○ Takes the wheels. There is still a couple of wheels so no need to send the wheel kanban
upstream
○ Takes the frame. Since this is the last frame the frame kanban is sent upstream
○ Assembles the bike and give it to the customer
● Wheel area
○ Nothing to do right now
● Frame production area
○ Receives the frame kanban, prepares a new frame, attaches the kanban to the frame and
sends the frame with the kanban to the assembly section
○ Each part needed to build the frame has a kanban that is sent upstream if needed
29. Lean
Manufacturing
Focused on reducing
everything that does not
provide value
Lean Manufacturing is a concept expressed in 1990 in the book "The
machine that changed the world" (Womack, Jones), in a chapter by
John Krafcick, currently CEO of google self driving cars.
30. Value
● Value is everything the
customer is willing to pay for
● Value is defined by customer
31. Waste (MUDA) ● Waste is any activity that does
not produce value
32. Waste
● Waste is bad and undesirable both from an economical and ethical point
of view
● Is waste so bad?
○ Someone has to pay for the waste. This means minor margin or customer paying more
than needed.
35. Transportation
● Moving things does not change their value
● Moving things implies risk and cost
● Producing where it costs less then moving where you sell works only if you
think in huge batches: you reduce the cost per unit and if you produce
enough you will have an advantage. So we somehow produce a lot and
move things around to satisfy the process, not the customer
36. Stocks
● raw materials / uncompleted items / finished goods
● storing, counting, and listing items does not change their value
● Having stocks and inventory is a cost
37. Overprocessing
● More work than needed is not… needed
● Producing with higher quality than needed is a waste
● Using tools or technologies that are more complex than what we need
38. Motion
● Moving people or parts during production does not add value.
● Motion increases risk and can damage parts
39. Waiting
● Goods not being processed
● Value is not reaching the end of the flow
as fast as possible
○ We have produced value, but we’re not
allowing it to reach the customer
40. Defects
● Work has been done, but with low quality
● The user is not willing to pay for a defective product
● It cost to fix the defect or discard it
41. Recap: 7 kind of waste
● Overproduction - producing something not required by an order
● Transportation - moving things around does not change value
● Stocks - storing item does not improve their value
● Overprocessing - additional steps or higher quality than needed
● Motion - useless and risky
● Waiting - value is not reaching the end of the flow
● Defects - broken stuff is not providing full value
42. Find balance
Some kind of waste have reasons to be there.
● Stocks are a waste.
○ But can serve to cover uncertainty, unexpected events etc.
● Finished goods produced in advance are a waste
○ But a customer can appreciate having the option to just enter a car dealer and come out of
it with a new car an hour later.
● ...
43. Lean Manufacturing Principles
1. Specify Value
2. Identify Value Stream
3. Make the Value Stream flow
4. Implement Pull Scheduling
5. Pursue Perfection
44. 1) Specify Value
● What is value for the customer?
○ Defined by customer
○ In a specific time
○ At a specific price
● Represents needs of the customer
○ Are you willing to pay…
○ $20 to Bill, so he can add MP3 player to your car?
■ Yes I like listening to “Mad Max: Fury Road” Soundtrack while I drive! Witness me!
○ $20 to John so we can store your car for two days?
■ No, just give me the car two days earlier!
○ $20 to Marie, so we can x the mp3 player Bill installed upside down?
■ No, you should have installed it properly the first time
○ ...
45. 2) Identify Value Stream
Look at the entire production flow (including other companies), assign each
step to one of the following groups
● Creates value
● Creates no value but is (still) needed
○ Muda type 1
● Creates no value and is not needed
○ Muda type 2
46. 3) Make the value stream flow
● remove type 2 waste
● work on type 1 waste. Usually type 1 waste is caused by
○ batch & queue mindset
○ goods waiting for a next step
○ meanwhile, value is postponed, we're waiting for the economy of scale to be happy
● rethink process and steps
○ every aspect: position, assumptions, speed, noise
○ small improvements can give more benefits than New Big Machines
○ workers are key pieces of this approach as they know their job better than anyone else
47. Traditional bicycle production
● A section for each activity (tube cutting, tube bending, frame welding,
washing…)
● Fast machines allow to produce multiple pieces
● Reconfiguration of machines takes time, so it is better to produce a batch
of parts, then change the configuration, then produce a batch of the
second part
● Storage is needed to keep the produced parts
● Tracking of the inventory is needed to know when new batch is required
49. Wastes
● If inventory is inaccurate we have missing parts and the flow needs to wait
for the missing parts. Waiting
● If we increase the production too much to avoid missing parts we have
overproduction
● Since we need to produce pieces in advance we have to estimate the
orders in advance (stocks / overproduction / waiting)
● If we change a project for which we already produced the part we have
produced something that has now a defect
50. Lean bicycle production
● Three productive lines (depending on the material used for the frame)
● Focus on the production flow
● Small, slower machines with very fast reconfiguration time
● Production does not need to be planned, it simply follows the orders
coming from the customers
● Reduced storage is required
52. 4) Implement pull scheduling
● produce something only if a subsequent steps requires so
● from production for inventory to production for customer
● resources are used only if there is real demand
54. Analysis of Cola Value Flow
● Real case study: what is the value flow of a Cola can?
● Let’s focus on the production of the can
55. Aluminum production
● Australia, bauxite, extraction phase
● 4 tons to fill a truck
● factory, 2 tons of alumina powder - 30 mins
● 500k tons to fill a ship container - 2 weeks
● travel to Norway / Sweden on a ship - 4 weeks
● Wait in the foundry - 2 months
● Alumina transformed in aluminium
56. From aluminium to filled can
● 2 weeks waiting, then shipped to Sweden / Germany
● 2 weeks waiting, then hot rolling (1 minute)
● 4 weeks waiting, then shipped elsewhere
● 2 weeks waiting, then cold rolling and shipment to UK
● 2 weeks waiting.
● Cut and preparation, printing and cap, sorting: 10 seconds of effective
work. But works in large batches. Waiting. Then shipment to filler.
● 4 days waiting. Filling
● Deposit, 5 weeks waiting
● Supermarket
57. Summary
● Total time of value production: 3 hours
● Elapsed: 319 days
● Stocking time: 6 months
● lift up: 30 times
● 14 storage facilities across the world
● 4 times pack and unpack
● 24 percent of aluminium lost
58. Why?
● A single can is very small
● Everything in the flow is very large
○ Economy of scale requires so
60. Waste mapping
Lean Manufacturing Lean Development
Overproduction Extra features
Transportation Task switching
Inventory Work partially done
Overprocessing Extra processes
Motion Motion
Waiting Waiting
Defects Defects
61. Overproduction -> Extra Features
● Real temptation for Product Owners and Developers
● Adding extra features is perceived as harmless, it is not
○ Features need to be tested
○ Features need to be maintained
○ Features can contain bugs
○ Features become obsolete
● Cost of development is not always perceived
62. Transportation -> Task switching
● People are often assigned to multiple
projects
○ Or multiple teams
○ Or multiple roles
● This may be needed in some scenarios
but every context switch creates waste
63. Inventory -> Work partially done
● Uncompleted features
● Something is there, so you do not want to remove it
● But is not finished so you cannot enable it
● Will it really work at the end?
● It is code you have spent resources on, but is not producing value
● Brings costs and risks for no reason
64. Overprocessing -> Extra processes
● Excessive Paperwork
○ If there is no one waiting for it, it is a waste
● Recurring meetings (when useless)
● In general, parts of the process that are not needed but are done for some
unknown reasons, or are needed by a very small number of people
○ usually there’s some other way to provide them what they need
65. Motion
● Also, accessibility issue
○ How far should I go to get the answer?
● Artifacts move as well
○ Requirements
○ design docs
○ Code
● Code / feature handoff
66. Waiting
● Time spent waiting postpones the value for the customer
● Slower output means slower response to new requests
● One of the principles of lean development is to decide as late as possible,
but if your process includes 1 month spent waiting, this makes “as late as
possible” date come one month earlier that it could be
67. Defects
● Waste amount is the impact multiplied the time it goes undetected
● Finding defects early is crucial
○ Test immediately
○ Iterate often
○ Release in production soon
68. Lean Development principles
● Eliminate waste
● Amplify Learning - sw development is a discovery process
● Decide as late as possible
○ You will have more information
● Deliver as fast as possible
○ Short cycles to improve learning, find the best solution and discover defects
● Empower the team
○ Technical decisions taken by technicals
○ Deciding late means not having time to review everything
● Build integrity in
○ External integrity: product achieves balance that delight users
○ Internal integrity: internal structure is coherent
● See the whole
○ Look at the sw as a whole entity, keeping in mind all the aspects
69. Tools
● Eliminate Waste
○ Map the value stream, find the blocked areas, correct them
● Amplify Learning
○ Feedback Loops
○ Iterative processes
● Decide as late as possible
○ Concurrent development
○ Keep options available
○ Wait until the last responsible moment
● Deliver as fast as possible
○ Pull system: let people figure out what to do
○ Kanban or similar signals
71. Kanban in project management
Kanban can be used to manage project. Two core principles
● Visualize your work
● Limit the amount of work in progress
Usually there is a kanban board with columns representing the steps needed to
complete a work item and cards representing the single item being worked on
73. Define the columns of a kanban board
Each project / area has different steps.
● Backlog - Design - Implementation - Validation
● Candidates - Phone screens - Interviews - Hires
● Evaluate - Attend lessons - Prepare exam - Pass exam
● …
Each intermediate step may have an “active” and “completed” subcolumns
74. Limit Work In Progress
● Kanban: “Start finishing, stop starting”
● We want items to reach the end of the flow as fast as possible.
● To do this we set limits of items in each step
○ This limit the amount of work impacted by changing requirements, and allows the team to
react quickly and abandon little
○ Also this makes the steps to match the slowest steps in the flow, this gives the greatest
efficiency and productivity possible
77. Bibliography
● Lean Thinking - Womack and Jones - part 1
● Lean Development - Poppendieck and Poppendieck - introduction, chapter
1, concepts from other chapters as well
78. Attribution
● Diagrams of the bicycle factory layout taken from "Lean Thinking and
Strategic Asset Management" , MRO Software
● Salami picture by André Karwath aka Aka