# Tuesday, December 23, 2003

Mary and Tom Poppendieck's have a book on Lean Software Development that's really excited me of late.  I was reading it while I was thinking about how the project I just finished on could be improved in future iterations.

Lean Software Development takes ideas from Lean Manufacturing can be applied to software development.  Their website has an excellent range of presentations and publications.  The one I first read, which I think is as good as the book, is 'The predicability paradox'.  It goes through their eight keys to lean thinking:

  • Start early. Focus on establishing good communication between the group and about the problem.
  • Learn constantly.  Look for end-to-end slices of functionality that you can build, test and deliver to learn more about the problem.
  • Delay commitment.  Use encapsulation, loose coupling, refactoring and automated testing to make it easier to change code.
  • Deliver fast. Focus on being able to deliver fast (e.g. automated build and deployment) through excellent operational discipline (source code control, build tool) in order to get quicker feedback.
  • Eliminate waste.  Focus on customer value and remove wasted processes.
  • Empower the team.  Avoid central control, focus on self-directed workers.
  • Build integrity in.  Write the tests at the start.
  • Avoid sub-optimization. Sometimes breaking a complex task into small parts leads to sub-optimum solutions.  Make sure you measure the right things and set the correct goals.

For some reason this just seemed to speak to me in ways that some of the other writing on Agile/Extreme hasn't in the past.