Lean Software Development: An Agile Toolkit

I’ve only just started reading this book, but so far it has amazed me in pinpointing, and eloquently describing, some of the problems I’ve felt we have in my experience of Software Development and how Lean thinking (which comes from modern manufacturing) helps and can be applied.

For example:

Eliminating “wastes” of Software Development

The four which I found most relevant were:

  • Partially done work
    • Which includes code which is not deployed in the hands of the users
  • Extra features
    • Designing and building a fuller ‘solution’ up front without having any (or much) user feedback.
    • …because it’s not live, because it takes so long to build and go live, so the customer wants more features (or features which are richer) when they finally do get a release, which in turn means development takes longer and around we go…
  • Task Switching
    • The cost of people on teams being interrupted, especially if they have large (multi-day long) tasks to complete, is very high and prevents working in “flow”
  • Defects
    • waste = (impact of defect) x (time from creation to discovery)
    • e.g. a high impact defect discovered by unit tests run a few mins after writing the defect is much less waste than a lower impact defect e.g. performance defect, which isn’t detected until a few days after release to users
      Continue reading