2012/03/20

Agility, Continuous Delivery, BigData and the Theory of Constraints

I was always fascinated by the new ideas driving our IT landscape. Oh, these new buzzwords changing so fast, these new trends giving us the ability to convince the customer and allowing our IT-ego to grow up, and this tremendous feeling during learning something new, that nobody else knows…

However the “dark side of the moon” of this feeling was always the uncertainty if the chosen topic would be later the hype on the market that could guarantee the ROI or just a simple flop… My decision what to choose, was made mainly based on my stomach feeling, which as you may suppose, was not the most effective method. I needed a better one.

The process of decision making requires setting up objectivities. As a big fan of simplicity I reduced this step to a just single objectivity and renamed it into the goal. So what is our goal? Our goal is to make money.  Ok, in case of a non-profit organization it might not be the case but most of us work for a “normal” company, which has to be profitable. How can I recognize then if the improvement being expected by the introduction of a new IT-trend has really caused that my company makes more money? Everyone who has had something to with the process of improvements would immediately say: we need some measurements. And these are: throughput, operational expense, and inventory.
The most important information you can get from these measurements is the direction of change of the measurement values. We are making more money only when the throughput increases and the inventory and the operational expense decrease. And only then when all three measurements behave like that in parallel.

So let’s try with the Agility: will the introduction of the Agility cause my company making more money?
IT-Trend Throughput Inventory Operational expense
Agility Driven by queuing theory and concentrating on eliminating bottlenecks Agility clearly increases the throughput. The introduction of frequent deliveries, definition of done etc. clearly reduces the size of unfinished code thus decreases the inventory. Reduced inventory as well as self-organizing and role-less teams clearly decreases the operation expense.
 
As you can see the Agility increases throughput and in parallel it decreases inventory and operational expense thus the introduction of Agility will cause you company making more money. It’s great, isn’t it?
 
However what about other IT-trends like Continuous Delivery?
IT-Trend Throughput Inventory Operational expense
Continuous Delivery Automating the process of delivery clearly increases the throughput. Frequent deliveries decrease the inventory. However the non-reliable automation of delivery plus lack of release coordination might increase the operational expense.
 
As you can see in this example the introduction of Continuous Delivery might not guarantee your company will make more money.

And what about BigData?:
IT-Trend Throughput Inventory Operational expense
BigData Using new ways of storage (e.g. NoSQL) clearly increases the throughput. Big amount of data might increase the inventory (unused data which has to be maintained). The way how data is stored (e.g. key-value) might decrease the operational expense.
 
Looking at the table above you can expect some problems with the introduction of the BigData solution and similar as in case of Continuous Delivery it might not guarantee your company will make more money.

These were only three examples of rather subjective evaluation, however the way of deciding is much better as in case of decisions made based on the stomach feeling. I’d like to encourage you to try with other IT-trends. It really works :).

The notion in this post is based on the ideas found the ingenious book The Goal: A Process of Ongoing Improvement by Eliyahu M. Goldratt and was driven by his Theory of Constraints.
 
The underlying premise of theory of constraints is that organizations can be measured and controlled by variations on three measures: throughput, operational expense, and inventory. Throughput is the rate at which the system generates money through sales. Inventory is all the money that the system has invested in purchasing things which it intends to sell. Operational expense is all the money the system spends in order to turn inventory into throughput (Wikipedia).
---