The Four Demands of Software Development
A team's investment (time, money etc) can be broadly split into four 'pots':
- External Demand. User-facing features, new functionality.
- Internal Demand. Improvement. Kaizen.
- Failure Demand. This is the surprises. Often nasty, time consuming surprises.
- Business As Usual (BAU). Keeping lights on. Those essential maintenance tasks that keep things ticking over.
Any team that understands this, and knows how interdependent they are will generally thrive.
Wait...interdependent?
Yes indeed. This is a zero sum game, and any team needs to make a conscious decision of how much of their finite budget (people, time, money) to invest in each at any given time.
- External Demand defines how fast the project features are delivered. BUT will degrade if Internal Demand is ignored.
- Internal Demand defines how delivery improves, and stops the software becoming unreliable (increasing Failure Demand). BUT needs to be balanced with External Demand and BAU.
- Failure Demand defines how much time is “stolen” by firefighting avoidable issues. This is a project and company killer! BUT can be kept under control (or even eliminated) by managing Internal Demand.
- BAU is the unavoidable overhead of keeping the lights on. Automation is your friend here, but it is fundamentally unavoidable.
So how does a team decide where to focus? Unfortunately I cannot offer any silver bullets or magic pixie dust to magically have teams get this balance right, but I can offer some generic advice that I *know* will help.
- Limit Work In Progress. Keep the amount of work in-flight minimal, and focus on finishing work. The old adage "Stop starting, start finishing". This counter-intuitive approach usually frees up a remarkable amount of effort almost like magic (it's the closest thing to pixie dust I have), and gives a team space to think.
- Look honestly at the categories, and decide if Failure Demand (or BAU) is causing trouble. If it is, then invest more into improvement (Internal Demand) while keeping the customer happy (External Demand).
- If BAU is not too onerous, and there are few, if any, nasty surprises, then you are in great shape. Go deliver! But never, ever believe you do not need to improve! There is always something needed to keep failure at bay.
(Hat tip to Dan North who introduced me to this model of team demands ages ago!)

Comments
Post a Comment
Comments on this blog are moderated. Intelligent comments will be published, but anything spammy or vexatious will be ignored.