How to Troubleshoot Apps for the Modern Connected Worker
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
1. THE SEVEN WASTES
and Agility
What stops you from producing great work, and what
you can do about it.
2. Andrew Webster
• Agilist since 2004 (CSM 2009)
• Developer since 1997 (MCSD 2000)
• UK born, lived in Australia 2000-2009, Alabama until
2013, now San Jose CA
• Married since 2009
• Worked on roughly 60 projects to date
• ~40 agile,
• ~20 not so much!
• Currently with SolutionsIQ as an Agile Coach in San Jose
• Blog at http://succeedable.wordpress.com/
• Reach me at andrew@webster.org
4. Agile Manifesto
We are uncovering better ways of developing software by doing it and
helping others do it.
Through this work we have come to value:
That is, while there is value in the items on the right, we value the items
on the left more.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
5. What else can we think of like this?
Delivering value over cost and schedule
Customer needs over balancing numbers
Pushing forward over pulling back
Earning over saving
6. Pull back costs→ 0
$-
$5,000
$10,000
$15,000
$20,000
$25,000
$30,000
$35,000
$40,000
$45,000
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Costs
7. Push forward Value → ?
0
200
400
600
800
1000
1200
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Value
10. Background: Ohno, Lean, & TPS
Taiichi Ohno – father of the Toyota Production System
(TPS)
• Manufacturing cars is expensive
• So cars are expensive
• 1940’s Japan was broke
• Reduce price of cars by reducing manufacturing cost?
• Mass produce? No – small poor market!
• Ohno:
• “All we are doing is looking at the timeline from the moment a
customer gives us an order to the point when we collect the cash.
And we are reducing that timeline by removing the non-value-
added wastes.”
12. How does this relate to quality?
• Google: “define quality:
13. Is all “waste” bad?
• Fail forward
• Fast fast!
• Fail early!
• Fail often!
• Humans learn quickest
when failing about 50% of
the time
• “Gamers fail 80% of the
time” *
* Jane McGonigal Ted Talk
14. Is all “waste” bad?
• Risk reduction
• Risk = “Non-value”
added
• Potential “value-loss”
removed
• Would it have been
valuable to have
avoided this?
15. Muda, Muri, Mura
• Muda (“Waste of activity”)
• Type I – non-value-added tasks that are essential
• Type II – non-value added tasks that aren’t essential
• Muri (“Overburden”)
• Mura (“Unevenness”)
16. Muda: The Seven Wastes
Manufacturing Waste (Shigeo Shingo) Software Development Waste (Poppendieck)
1. Inventory 1. Partially Done Work
2. Overproduction 2. Extra Features
3. Extra Processing 3. Relearning
4. Transportation 4. Handoffs
5. Waiting 5. Delays
6. Motion 6. Task Switching
7. Defects 7. Defects
18. Take a look
Where’s the Value in
housing?
Which row of houses
has more people living
in it?
Where’s the Waste?
19. Waste 1: Partially Done Work
• “Partially Done Work” means “Work In Progress”
• Work cannot realize its Value until it’s Done & Deployed
• High amounts of Partially Done Work are the problem
• Examples:
• Uncoded documentation – may be obsolete before code is
finished
• Unsynchronized code – increases integration risks
• Untested code – breeding ground for bugs, unable to repeatably
prove code works
• Undocumented code – (ideal is self-documenting) must be
developed in parallel or causes delays and possible error
• Undeployed code – can’t get feedback, can’t deliver value, may
overwhelm users if “big bang”
22. Waste 2: Extra Features
• Stakeholders Pet
• Long feedback cycle may encourage redundant features
• Gold-plating
• RDD (Résumé Driven Development… latest tech)
• DDD (Developer Driven Development… “just knows it’ll be useful”)
• SGE (Sounded Good to Everyone… but never used)
• Exponential - may have all the other wastes!
• must be tracked
• must be compiled
• must be integrated
• must be tested (every time the code is touched!)
• must be maintained (for the life of the system!)
• increases complexity
• adds a potential failure point
• likely will become obsolete before it's used
• ……………………….aaaaaaaarrrrrrgggggggggh…….!
25. Waste 3: Relearning
• Learning is good, right?
• Relearning means either:-
• The learning didn’t take… WASTE!
• Someone else has to learn – Handoff!
• Delays fuel relearning
• Lengthen feedback loops
• Examples:-
• Not writing down a good idea
• Not using existing knowledge – go it alone, or unaware
• Poorly written/undocumented/over-documented code
• Task switching
28. Waste 4: Handoffs
• Narrow band communication
• Documents and diagrams must lack tacit knowledge
• Phone “meetings” miss body language
• Poppendiecks suggest that 50% is lost in handoff
• 25% of knowledge left after 2 handoffs
• 12% of knowledge left after 3 handoffs
• 6% of knowledge left after 4 handoffs
• 3% of knowledge left after 5 handoffs
• Waterfall…?
• Cross-team “integration”…?
• Dev QA…?
30. Incremental and Iterative – uh-huh?
Incrementing calls for a fully formed idea built a bit at a time.
Which risks “Delay”? And how?
Credit: Jeff Patton
Iterating allows you to move from vague idea to realization.
Iterating builds a rough version, validates, then builds quality on each pass.
Tip: It is not an iteration if you only do it once. Iterate work - Increment value.
31. Waste 5: Delays
• Two kinds
• Delay the START of a value-add activity
• Make a value-added activity TAKE LONGER than it should
• Typical examples
• Long, exhaustive requirements phase
• Building ALL the features (see previous slide!)
• Review/approval processes requiring scarce individuals
• Increased WIP (more cars on a freeway, slower the traffic goes)
• Gaps between Dev and QA
• Gaps between QA and deployment
• Waiting for cross team dependencies
39. 1. Form small groups
2. Cluster the wastes you’ve found
3. Label with Agile practices that manage the
wastes
Partially Done Work
Extra Features
Relearning
Handoffs
Delays
Task Switching
Defects
(Overburden)
(Uneveness)
Now…
Exercise
Practice
1
Practice
2
Practice
3
Practice
5
Practice
6
Practice
4
Practice
7
etc
My
thingMy
thingMy
thingMy
thing
My
thingMy
thingMy
thingMy
thing
My
thing My
thing
My
thing
My
thing
My
thing
42. References
• Inspired by an article published originally at DZone, author, Matt Stine
• Further reading
• InfoQ eMag: Lean and Kanban
• Ohno, Taiichi. Toyota Production System: Beyond Large Scale Production. Productivity Press, 1988
• Shingo, Shigeo. A Study of the Toyota Production System. Productivity Press, 1981.
• Poppendieck, Mary and Tom. Implementing Lean Software Development: From Concept to Cash. Addison-
Wesley, 2006.
• http://agilesoftwaredevelopment.com/blog/jackmilunsky/7-wastes-part-1-partially-done-work
• You Ain't Gonna Need It: http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it
• Software Maintenance Costs: http://users.jyu.fi/~koskinen/smcosts.htm
• http://en.wikipedia.org/wiki/Tacit_knowledge
• Shore, Jim. "Task Switching."
http://jamesshore.com/Articles/Business/Software%20Profitability%20Newsletter/Task%20Switching.html
• http://agile.dzone.com/articles/you-are-your-softwares-immune
• http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/deed.en_US. Andrew Webster 2014