Lean software engineering emphasizes continuous delivery of high quality applications. Ken Pugh explains the principles and practices that form the basis of lean software development―concentrating on developing a continuous flow by eliminating delays and loopbacks; delivering quickly by developing in small batches; emphasizing high quality which decreases delays due to defect repair; making policies, process and progress transparent; optimizing the whole rather than individual steps; and becoming more efficient by decreasing waste. Ken describes lean’s emphasis on cycle time, rather than resource utilization, and demonstrates the value stream map which helps you visualize the development cycle flow to identify bottlenecks. He explores the differences between push and pull flow, describes how lean thinking shows up in agile processes including Scrum and Extreme Programming, and discusses how lean can be applied to the entire workflow—not just the development portion. Ken concludes with a discussion of how you can begin your lean transformation.
3. Ken Pugh
ken.pugh
@netobjectives.com
Photo
Size:
Height: 2.25
Position:
from top left corner
Horizontal 0.75
Vertical 1.
Picture Style: Simple Black
Frame
No code goes in till the test goes on.
A journey of two thousand miles begins with a single step.
Fellow Consultant
SPC, Lean, Scrum, ATDD, TDD, OOA&D, Design
Patterns,
Over 2/5 century of software development
experience
Author of seven books, including:
– Prefactoring: Extreme Abstraction, Extreme
Separation, Extreme Readability (2006 Jolt Award)
– Interface Oriented Design
– Lean Agile Acceptance Test-Driven Development:
Better Software Through Collaboration
5. Lean Thinking, Jim Womack and Daniel Jones
Lean Software Development, Mary and Tom
Poppendieck
The Principles of Product Development Flow:
Second Generation Lean Product Development,
Donald Reinertsen
Alan Shalloway, http://www.netobjectives.com/blog
Resources
8. Lean software engineering
– Continuous delivery of high quality applications
In short
9. Toyota Production System
– Lean Manufacturing
Lean Thinking
– Use lean thinking on workflow
– Software development is workflow
Lean Software Development
Creating software is not the same as producing a car
Principles derived from Lean
Lean Approaches
10. Taiichi Ohno, chief engineer
Eiji Toyoda (and cousin Kiichiro Toyoda and his
father Sakichi Toyoda, (Toyoda Loom Works
founder))
Design out overburden (muri) and inconsistency
(mura), eliminate waste (muda).
Smooth process - design out inconsistency
Flexible – without overburden which generates
waste
Elimination of waste
Toyota Production System (TPS)
11. Continuous improvement
– Kazien
Respect for people
Long-term philosophy
– Not short term goals
Right process will produce right results
– Stop to fix problems
– Visual controls
– Use reliable, tested technology
Add value to organization by developing your people and
partners
– Develop exceptional teams
Continuously solving root problems drives organizational
learning
– Decisions by consensus
TPS Principles
12. Value comes from end customer
Value stream
– Eliminate steps not creating value
Make remaining steps flow in integrated sequence
Let customers pull from upstream activity
Transparency
– Helps eliminate waste
– Continuous improvement
Lean Thinking
13. Eliminate Waste
Create Knowledge
Build Quality In
Defer Commitment
Deliver Fast
Respect People
Improve the System
Lean Software Development
Principle
26. Business Value – What Is It? (1)
Need to measure business value
Deliver best ROI for business value
"I can't define it, but I know it when I see it“
Question: What is it to you?
26
27. Business Value – What Is It? (2)
Business Value can be:
– Increased revenue (sales, royalties, fees) ($$)
– Decreased expenses ($$)
Less resources
More efficient use of resources
– Customer satisfaction ($$ ??)
Promoters / Satisfiers/ Detractors
– Staying in business ($$ ??)
– Staying out of jail ($$ ??)
– Avoiding risk ($$ ??)
– Your suggestions?
27
34. Business
Priority
BUSINESS DISCOVERY BUSINESS DELIVERY
Business
Planning
Business
Readiness
Ready
to Pull
Incremental
Development
Incremental
Deployment
Support &
Feedback
Decision
Is it technically
feasible?
Decision
Is it ready to
release?
PORTFOLIO
Decision
Is there enough
business value?
Flow
36. Lean Principle
Idea to Delivery
Support &
Feedback
Project
Approval
Project
Staffing
Project
Development
Project
Deploy-
ment
Visioning
Total cycle time
40. 1. Identify the actions taken in the value stream
Approv
e
Request Reqts Sign Off
Review Deploy
Analysis
Design Code Test
41. 0.5 hrs 160 hrs8 hrs 8 hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
Approv
e
Request Reqts Sign Off
Review Deploy
Analysis
Design Code Test
1. Identify the actions taken in the value stream
2. What was the real time from start to finish of the action?
42. 0.5 hrs 160 hrs8 hrs 8hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
Approve
.1 / 7.9 hrs
Request
0.5 / 0.0 hr
Reqts
60 / 100 hrs
Sign Off
1 / 7 hrs
Review
2 / 0 hrs
Deploy
3 / 5 hrs
Analysis
40 / 60 hrs
Design
40 / 80 hrs
Code
80 / 200 hrs
Test
40 / 200 hrs
1. Identify the actions taken in the value stream
2. What was the real time from start to finish of the action?
3. What was the average time working on this vs working on other things?
43. 0.5 hrs 160 hrs8 hrs 8hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
320 hrs 80 hrs 320 hrs 80 hrs
80 hrs
160 hrs 80 hrs 80 hrs 80 hrs
1. Identify the actions taken in the value stream
2. What was the real time from start to finish of the action?
3. What was the average time working on this vs working on other things?
4. Identify time between actions
Approve
.1 / 7.9 hrs
Request
0.5 / 0.0 hr
Reqts
60 / 100 hrs
Sign Off
1 / 7 hrs
Review
2 / 0 hrs
Deploy
3 / 5 hrs
Analysis
40 / 60 hrs
Design
40 / 80 hrs
Code
80 / 200 hrs
Test
40 / 200 hrs
44. 16 June 2015
0.5 hrs 160 hrs8 hrs 8hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
320 hrs 80 hrs 320 hrs 80 hrs
160 hrs 80 hrs 80 hrs 80 hrs
1. Identify the actions taken in the value stream
2. What was the real time from start to finish of the action?
3. What was the average time working on this vs working on other things?
4. Identify time between actions
5. Identify any loop backs required
80 hrs
65% defective
Repeat 3X
20% rejected
Repeat 1X
Approve
.1 / 7.9 hrs
Request
0.5 / 0.0 hr
Reqts
60 / 100 hrs
Sign Off
1 / 7 hrs
Review
2 / 0 hrs
Deploy
3 / 5 hrs
Analysis
40 / 60 hrs
Design
40 / 80 hrs
Code
80 / 200 hrs
Test
40 / 200 hrs
45. 1. Identify the actions taken in the value stream
2. What was the real time from start to finish of the action?
3. What was the average time working on this vs working on other things?
4. Identify time between actions
5. Identify any loop backs required
6. Calculate Process Cycle Efficiency:
Approve
.1 / 7.9 hrs
Request
0.5 / 0.0 hrs
Reqts
60 / 100 hrs
Sign Off
1 / 7 hrs
Review
2 / 0 hrs
Deploy
3 / 5 hrs
Analysis
40 / 60 hrs
Design
40 / 80 hrs
Code
80 / 200 hrs
Test
40 / 200 hrs
0.5 hrs 160 hrs8 hrs 8hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
320 hrs 80 hrs 320 hrs 80 hrs
160 hrs 80 hrs 80 hrs 80 hrs
65% defective
Repeat 3X
20% rejected
Repeat 1X
80 hrs
Approve
.1 / 7.9 hrs
Request
0.5 / 0.0 hrs
Reqts
60 / 100 hrs
Sign Off
1 / 7 hrs
Review
2 / 0 hrs
Deploy
3 / 5 hrs
Analysis
40 / 60 hrs
Design
40 / 80 hrs
Code
80 / 200 hrs
Test
40 / 200 hrs
Avg Time Worked
Total Cycle Time
0.5 hrs 160 hrs8 hrs 8 hrs
120 hrs 280 hrs 240 hrs
100 hrs
8 hrs2 hrs
320 hrs 80 hrs 320 hrs 80 hrs
160 hrs 80 hrs 80 hrs
65% defective
Repeat 3X
20% rejected
Repeat 1X
80 hrs
80 hrs
PCE = = 14.9%
509 hrs
3433 hrs
509 hrs
3433 hrs
Avg Time Worked
Total Cycle Time
51. DELAY IS hand-offs
bottlenecks
information delay
untested code
unread requirements
transaction related
setup/cleanup
coordination related
assign people
finding
redoing
reworking
waiting
54. Work enters queue
When someone needs new work, they
pull from queue
Work goes through stages
When the work done in a stage, it flows
to next.
Until work is done
Pull
82. Getting Started
Agree to goals
– Why change?
Map the value stream
Determine what process to use
– Scrum, Kanban, Scrumban, etc.
Agree to transparency
– Up and down the line
Agree to policies
– Done-ness definitions, etc.
Agree to operational review
– Team and organization
Educate the team(s)
Start doing it
David Anderson. XTC, London 2009, October
Getting started with kanban
83. Old Status Quo New Status Quo
Chaos Transforming Idea
Change Model
From
Virginia Satir
85. Shorten time to realize values
Pay attention to delays
Actively manage queues
Emphasize cycle time, not utilization
Summary - Focus on Flow
94. Waste and the Delay of Value
Always
7%
Often
13%
Sometimes
16%
Rarely
19%
Never Used
45%
Source: Standish Group
Study of 2000 projects at
1000 companies
Usage of Features
and Functions in
Typical System
_g
103. Focus on known, valuable features
gives greater certainty
produces greater value
lowers risk of mis-building and over-building
Deliver
in Stages when possible
104. do the most important half first
standard development sequence
More important Less important
105. do the most important 25% first
standard development sequence
More important Less important
116. Project 1
Project 2
Project 3
Month 3Month 2Month 1 Month 4
Three ways to do three projects
Do one at a time – may not be politically feasible.
Do them all at once, switching between them when delayed waiting for answers
Do them guided by Minimal Marketable Features
Product Development for the Lean Enterprise by Michael Kennedy. Oaklea Press. 2003
Task-Switching and Schedules
127. Lean-Agile: Evolving Agility
Continually evolving
Sustaining, not improving
DecliningMaturation
Lean-Agility
Year 1 Year 2 Year 3
Iterative Flow Highest Business Value
Low
∞
128. Project-based Business Value-based
• Scope
• Budget
• Schedule
Defined
• Defined without
priority
Require-
ments
• Scope
• Budget and
schedule fixed
Limited
evolution
• Build & deploy
at end
Big bang
deployment
• Highest value
• Allocate budget
Discovery
• Prioritized on
Business Value
• Sequenced on
ROI
Require-
ments
• Based on
discovery
• Budget follows
Constant
evolution
• Build & deploy
increments Increments