Theory Of Constraints And Software Concerns

Unlike a lot of others, I was introduced to Theory Of Constraints (TOC) by the business novel

Necessary But Not Sufficient

and was instantly addicted to the revolutionary approach, an output of exceptional work by Eliyahu Goldratt.

The Theory

Theory Of Constraints (TOC) is, at its basics, a problem solving approach that focuses on the constraints or limitations involved. Anything that we are part of today – work or family or organizations – involves multiple factors. There is a continuous effort to get better at it. The apparent approach is to maximally use the resources, change all the variables so that the betterment is optimum. However, the working is usually limited by not all, but some factors – the constraints. TOC makes this more explicit by approaching the solution by looking at an entity through its constraints. A business has to work under constraints – monetary, time, workforce, competition and probably hundreds more. To bring about an improvement, the effort should be directed towards the constraints.

At its center is a set of tools called Thinking Processes, containing causality and necessity as two basic elements. The revelation of cause and effect can identify root cases of undesirable effects (UDEs) and help us answer the three important questions:

  • What to change?
  • To what to change?
  • How to change?

Consider the following excerpt from the video transcript of introduction to TOC“:

Just to give us a couple of very simple, trivial examples. If we talk about causality, it might be as simple as “if I touch a hot stove, then I get burned.” That’s our understanding of reality. And if we want to change it, then we may look at some of the assumptions and alter the situation that says, for example, now “if I touch a hot stove and I’m wearing a pot mitt, then I don’t get burned.”

Instead of one reality, we have what we’ve put into place that alters that reality. This is utilizing this cause and effect.

Had we expressed it more in the realm of necessity, it might appear that “in order to avoid getting burned, I must not touch the stove.” Why? “Because touching a hot stove might burn me.”

Thinking Process provides following tools for a systematic approach:

  • Current Reality Tree (CRT): to identify UDEs and their root causes
  • Clouds: to resolve conflicts that causes UDEs
  • Future Reality Tree: future state of the system after some actions are identified
  • Negative Branch Reservations: possible negative ramifications of actions chosen
  • Prerequisite Tree: a pre-plan which identifies the intermediary objects required and possible obstacles
  • Transition Tree: details of the action to be taken

This is very analogous to what my friend says about using Business Models for as-is system, to-be system and the transition.

TOC And Software Industry

TOC has been applied to multiple industries like Production, Logistics, Accounting, Marketing and many more. It has resulted into amazing processes like Drum-Buffer-Rope (DBR) that lead to synchronized manufacturing or throughput accounting or Critical Chain.

I want to tackle application of TOC to software industry in two different ways. One is impact of TOC on software concerns to provide maxium ROI. The other is use of TOC in managing software processes.

ROI From Softwares

Scott swirls his brandy and takes a taste. “When does a new technology bring value?” He starts with a rhetorical question. “We expect that a new technology will bring benefits, when and only when, the new technology diminishes an existing limitation. It is simply common sense.”

“Maybe to you. What do you mean?”

“If the new technology does not diminish any limitation whatsoever, there is no possible way in which it can bring benefit.

This is an excerpt from Chapter 12 from the book that I mentioned before.

TOC tells that an organization can benefit if its constraints are targeted and resolved. If a software has to be beneficial, it has to follow the same way. The key benefit of software is automation – automation of processes. TOC, through its focus on constraints, which are part of processes in an organization, typically leading to BPR. Use of TOC in Business or System Modeling can lead to right automation of these optimized processes which will provide maximum benefit to the organization.

TOC In Software Engineering

Software businesses can use TOC to improve by overcoming its constraints. Just like every other business, even a software business has limitations. TOC can be used to identify them and act on them to provide improved processes.

Software solutions require more and more out-of-box thinking, solutions that are not run-of-the-mill but innovative and original. TOC can provide answers to the basic questions leading to an unique and effective solution. Use of TOC can also provide pragmatic solutions in project management.

Each of these deserve individual discussions on them, which I hope to follow up with.

There might be many more applications of TOC in software industry. There are already some softwares out there which provide TOC solutions. Let us look for more usage of TOC in software industry for the benefit of both, the software users and creators.

Technorati tags: , , , ,

Copyright Abhijit Nadgouda.