2010/01/14

Codemash Keynote: Mary Poppendieck – Five Habits of Successful Lean Development

What a way to kick off the actual part of the Codemash conference with a keynote from one of the major voices of the Lean development segment.  None other than Mary Poppendieck.  Some of the points of her talk:

  • Key tenants of Lean:
    • Eliminate Waste
    • Focus on Learning
    • Build Quality In
    • Defer Commitment
    • Deliver Fast
    • Respect People
    • Keep On Improving
    • Optimize the Whole
      • Think about the entire process, not just the software
  • The 5 Habits
    • Purpose
      • Many developers are only doing their job because somebody told them to do it.  Sure coding it fun, but do they really know why they’re doing it?
      • Keep the development staff near the customers to focus on what the end users actually NEED vs keeping them completely separate and all the requirements are tossed over the wall where the developed software is most likely never used.
      • Essentially just get the developers involved in the business to better understand what the needs of the business are.
      • Possibly have the developers actually do the job that they’re developing the software for to understand the pain points.  e.g. call center software.
      • If nobody’s requesting new software features, it means nobody’s using the software.  It doesn’t mean the software is feature complete.
      • That’s why open source software seems to be so easily programmed.  Those programming it are those that use it because they need to use it.  They know where the pain points are.
    • Passion
      • Developers like getting passionate about their work.  If they’re not passionate about their purpose at the company, they tend to get passionate about the minutia of development tasks.
      • Cost Center Disease – focus on cost reduction instead of delivering value.
        • Typical places this is found: IT departments, government organizations, some consulting firms
        • The problems include not being able to focus on giving better customer outcomes, no real engagement with customers.
      • Example of a passion – the Launchpad developers back when it was a for-pay development package.  Even though it was for-pay, it was very open source style based.
      • Typically if you are very passionate about something (like programming) it’s hard to make a living at it because you enjoy it too much.
    • Persistence
      • There’s no substitute for being careful and doing really good work.
      • The most accomplished people need around ten years of “deliberate practice” before becoming world-class.  This is also known as the ten-year rule.
      • Identify a specific skill that needs improvement.
      • Devise (or learn from a teacher) a focused exercise – designed to improve the skill.
      • Practice repeatedly.
      • Obtain immediate feedback – adjust accordingly.
      • Focus on pushing the limits – expect repeated failures
      • Practice regularly & intensely – perhaps 3 hours a day.
      • Open source development is a good way to learn – you generally have a teacher, are challenged, get immediate feedback, and dedication to the project.
      • Improvement kata
        • Visualize perfection – visualize what the ideal world is
        • Have a first hand grasp of the situation – understand how you can improve the situation
        • Realize that there’s a huge gap between the first 2 steps – find the minor steps inbetween the 2 points
        • understand obstacles that come up between the minor steps and overcome them.
      • Dijkstra’s Challenge
        • If you want more effective programmers, you will discover that they should not waste their time debugging – they should not introduce bugs to start with.
        • Find as many bugs early so the “code freeze” phase can be brought down to less than 10% of the release cycle.  Typical is around 30% of the cycle, sometimes 50%.
    • Pride
      • Story about a philosopher asking 3 stone cutters what they were doing.  “I’m cutting stones”, “I’m earning a living”, and “I’m building a cathedral”.
      • Move responsibility and decision-making to lowest possible level. 
        • “If you’re a manager, your job is to be lazy.  Have those lower than you helping drive decisions”
      • Litmus test for those with pride: how do people handle their frustration with their job? Do nothing, complain about it but overall do nothing, or find a way to fix it.
    • Profit
      • The examples given are large companies, consistently profitable, they dominate their industry and for a long time.  The front-line people are highly valued, expected to make local decisions and effectively engaged in delivering superior customer outcomes.
  • Talked about Tandberg’s successful implementation of Lean
    • Talked with really individual, front-line workers
    • The workers knew by heart the 1-line pitch of company for what the company’s purpose was.
    • The workers also knew exactly why they were doing their job.  They were passionate about what they did because they knew why they’re job was in place.
    • http://www.pvv.org/~oma/SoftwareDevelopmentAtTandberg_March2009.pdf

Overall really great information presented.  If you ever have the chance to listen to Mary give a presentation, don’t miss out.

No comments: