DAtum

Product Design and Management, Entrepreneurship and the Business of Technology

Justification for “release fast – release frequently” from a queuing theory point of view

I was looking at the long respin cycles taking place in some of our projects and I came to the conclusion that we are not factoring in WIP (work-in-progress) inventory during product design. In more simple terms, it means “release fast – release often”. This philosophy is merely an implementation of queuing theory applied to fields like lean manufacturing and product design. What happens is that, classically, all work is thought of in terms of %age utilization of resources (in our case people). However, what we should be looking and analyzing instead is product design queues.

In any queue based system (like manufacturing for example), the philosophy of identifying has long since shifted from increasing utilization to reducing spare inventory. In software, spare inventory is usually work-in-progress. Practically, what happens is that when you have a long laundry list of items pending for deployment and which go together, it hits all the symptoms of getting-rid-of-spare-inventory.

What I propose is that we move to a system of much more frequent deployments. Before the product management team gets all happy (!), let me mention that it comes with its tradeoffs – reduced resource utilization is the most frequent. For example, if one looks at some of our sprints, we can see that we had very broad-impacting releases  (typically accompanied by a bunch of seller mailers, communiques, full QA cycles, etc.) – in short a lot of dependencies, which translates into long queues. What you will also see is that I deliberately reduced WIP inventory during that period, which is why you will see reduced resource utilization. However, it allowed us to focus and maintain quality in our releases.This means that product management’s metrics should factor “cycle time” as one of the metrics – time taken to conceive a product to putting it into production – rather than focus solely on resource utilization as the only metric. The important thing to remember is that more often than not, cycle-time will be inversely proportional to resource utilization. This is not an axiom but a mathematical fact born out of queuing theory.

About these ads

2 Responses to Justification for “release fast – release frequently” from a queuing theory point of view

  1. Francesco (your good old friend in lugano) January 23, 2013 at 4:25 pm

    Hy Sandeep.
    Your posts are always a pleasure for my mind.
    I appreciate a lot your demonstration, even if I still use my (opposite) paradigm:
    “For at least half of the available time talk a lot, collect requirements and extend them with almost impossible extra requirements, then design write and release once your software (with no bugs/no maintenance) that is able to handle all of the requirements by a scripting language, then forget it and let the product management and the commercial guys play with the scripts to adapt the software to their daily changes of view”.
    Sadly I frequently discover that my approach appears too risky to many shortsighted managers: they are really disturbed and don’t accept the “no bugs/no maintenance” part.

    Take care and enjoy my friend,
    Francesco

    • sandeep February 5, 2013 at 11:45 pm

      Francesco! Come sta. my apologies for the late reply.

      let me reply with a little background – when I was building my last company (Clearsenses), I saw that it was impossible to spend reasonable amount of time to understand and fix requirements. It seemed dangerous to leave scope open ended, while not spending infinite time to get an elaborate scope.

      So what I did was an out-of-scope spec – detailing what we cannot do.

      Now, the process you mention is very geared towards a desktop app world – in the web world, you wont be able to give a scripting interface…. unless you expose APIs. But then, both in the desktop and web world, you are exposing yourself to unnecessary upfront complexity. This is because you will need to think of security in your interfaces. At this point, you are likely to question whether it is worth the effort to give this scriptable interface and instead spend lesser time on building a more defined functionality.

      Cheers and keep in touch!

      -sandeep

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: