Lot of hard work, little output

Many times in software development, we are not able to deliver on time. Everyone in the team works hard. But the team is not able to cross the hurdle and push the product to production. Everyone is stressed and worried. At some point blame game will start. 

There is a novel written by Eliyahu M Goldratt called "The Goal". It introduces you to theory of constraints (TOC). It is a good read. 

Let us take Inventory concept and apply it to software development. What is inventory in software development. All the work in progress (WIP) is inventory. When you hold lot of inventory your delivery speed is reduced. This is a proven fact in manufacturing and same is true in software development. All the WIP needs integration before product is complete. When number of WIP items increase integration becomes complex and takes lot more time.

Another concept of interest is bottleneck. Even in software development there is bottleneck. Usually it is resource capacity. In some cases it is specific skill which acts as constraint. It is easy to find the bottleneck in software development. Look where the work is stuck most of the time and you know the bottleneck.

Now let us jump into the solving the problem as per TOC. TOC tells us to identify the constraint and align the work based on constraint. Let us consider the scenario where your work needs to pass quality control. Your app can be complex and QC might have so many scenario's to test. You need to improve the QC capacity by automation or by adding resource. If this is not possible then you need to reduce the work to match QC capacity. If your bottleneck is something else then, try increasing capacity of that. If it is not possible then align the work to bottleneck's capacity.

Why WIP is so bad that TOC recommends to reduce the work? It is counter intutive. Work done is not considered as done till it is in production. Any work which is stuck adds on to the overall complexity of the process. This always leads to confusion and delay in delivery.

Comments

Popular posts from this blog

ChatGPT for cavemen

Greedy computing with API

Event driven architecture for micro services