The Death Spiral explained – Lean Laundry

January 10, 2013 — Leave a comment

LaundryPileA funny thing happened while I was writing our previous blog on Lean Laundry.  I realized that my wife and I’s laundry mismanagement put us in death spiral mode.  “Death spiral” mode is a common phenomena in software development that leads to the demise and failure of software projects.  It is specifically prevalent on large scale software development efforts.

If it hurts…do it more often!

This is a principle in the Continuous Delivery book.  Basically, if delivering software is hard, do it more often…not less often.  Over time delivery events will become routine.

My wife and I were doing the exact opposite.  Doing laundry had turned into a weekend long event.  I kid you not.  We have literally done 10-12 loads of laundry over a weekend.  Because this sucked up so much energy and time, it drove some wonky behavior.  You would think we would be more motivated to do laundry more often to keep up with the demand.   However, it was quite the opposite.  Sounds like software projects…eh? 😉

Laundry death spiral

The pain of doing laundry drove us to add buffer capacity in the form of an extra laundry basket.  However it was only a matter of time before this overflowed and we were right back where we started, only worse.  We were in the death spiral!

 

Bigger piles of laundry were leading to bigger piles of laundry and laundry inventory was everywhere.  Piles of folded clothes could be found in random places from the last big batch of laundry.  unmatched socksThe worst of all was that the number of unmatched socks constantly floated around 25-30 pairs.  This necessitated the need for a dedicated unmatched sock sorting bag to collect the large inventory of sock “defects.”  Sound like a defect backlog? 😉

Software death spiral

While our personal laundry death spiral is a bit comical, it is a microcosm of software development projects.  However, building software is exponentially more complex and can snowball out of control if not dealt with!  The software death spiral goes as follows:

  • Software features, like laundry, begin to pile up for one reason or another
  • Deploying them becomes more complex and painful leading to more infrequent deliveries.
  • Infrequent deliveries lead to bigger releases.
  • Customers begin to stuff more features per release knowing that it will be longer to realize value.  Releases get bigger.
  • Scope creep occurs with last second customer requests.  Customers know if they don’t push for it, they will have to wait for the next big release to come around.
  • IT adds buffers and resources to manage the side effects of big release SDLC’s.
    • Defect backlog(s) – think unmatched socks
    • Organize functionally to gain functional efficiency for big batch processing
    • Heavy weight vetting and requirements processes to manage those *pesky* customers
  • This continues until that vast majority of development work are defect backlog items
  • Customer(s) finds a different IT provider

Solution

Just like the solution to our laundry death spiral, the solution to software death spirals lies in Lean thinking.  Shallow, uncommitted backlogs and frequent deliveries are two practices that will drive a ton of positive behavior momentum.  With enough momentum you can reverse a the death spiral.

Shallow backlogs

  • Laundry – Use small laundry baskets equal to washing machine capacity.
  • Software – Keep product backlogs shallow and uncommitted.  This maximizes flexibility and decreases wait times.  Afterall, committed backlogs are just queues!

Frequent Deliveries

  • Laundry – Wash laundry when one of the small basket fills up.
  • Software – Deliver to production when a small batch of work has been completed.  End of sprint delivery is a good goal.  After that, check out Continuous Delivery principles and practices to enable smaller releases.

 

leangiving

Posts Twitter

No Comments

Be the first to start the conversation.

Leave a Reply

Text formatting is available via select HTML. <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*