Wednesday, February 3, 2016

Lean on ME: What can software learn from manufacturing?

Host: David Whitlock
Date and Time: Wednesday, 1:00 PM

Lean on ME: What can software learn from manufacturing?

What do I I need to learn?
  • New Product Integration
  • Six Sigma?  Danger!  (We don't necessarily want to stamp out variation)
  • How to deal with "waste"?
    • In software, we need to be cognizant of local versus global optimization
      • Swarming is an example of a global optimization
    • Idle work versus idle people
      • In Mob programming, some people might appear idle
    • Setup and teardown time
    • Utilization versus productivity
Is refactoring "waste"?
  • No, it's like setup/teardown: refactoring keeps the work space clean which promotes safety, productivity, and quality
  • Should we treat people like "machines"?
    • Maybe?  "Would you treat your servers that way?"  (Would you over-work them, ignore them when they show signs of stress, etc.)
    • Toyota Production System (TPS) has slack built in.  They don't have the machines at 100% utilization
Acknowledge that the failure and its root cause is in the system, not the individual
  • See/visualize the gemba
  • Instrument software to be able to assess quality
    • This is analogous to being able to verify the quality of a part that is misaligned by 0.5 millimeters -- a human can't see it
Find the value stream
  • Must be the customer's value stream, not just the engineering process
  • Start at the end (deliverables)
  • Iterative to surface cognitive biases
Andon: Do we respect people enough to support them when they pull the chain?

Lean for defining and prioritizing upstream work

Look for a piles of Work in Progress (WIP) in the system
  • Limit WIP and make it visible
  • Ideas are inventory (waste)
  • How do we kill (discard) ideas quickly and make it clear as to why?
  • "Options" with expiration, instead of "backlog"
  • Coalesce similar backlog items
New Product Inception
  • In manufacturing, car companies will prototype partial "cars" to learn
    • Like a "stub" in software
  • Kaizen: Keep changes small
  • "Concurrent Engineering"
  • Walking skeleton
Is there such a thing as Takt time in software?
  • (Takt time is the available production time divided by customer demand.  It's used to match production with demand.)
  • Can we ever deliver features as fast (or faster) than our customers can think them up?
  • Cadence (like a 2-week Sprint) is not takt time
  • If you have small stories that can be predictably delivered, can you establish a takt time?
  • Perhaps not because the "assembly line" (the environment in which the software is deployed) is always changing/evolving
"Waste" is software is anything that doesn't contribute to value
  • Focus off removing waste and focus on delivering value
  • Does reducing variability among create humans actually end up introducing variability and quash innovation?
Andon may be a leading indicator of quality

Use Kanban to make work visible
  • Makes decisions visible, especially decisions made based on tradition
  • Might those decisions or certain metrics be waste?
What books do you recommend?

David Whitlock
Adjunct Lecturer
Portland State University

No comments:

Post a Comment