Profile

Saturday, March 22, 2014

Complexity - If you can measure it, you can control it




Before an attempt can be made to reduce or increase a quantity there needs to be agreement on some metric that allows measurement of the quantity. In the absence of such a metric it will not be possible to assess whether the quantity has increased or decreased. Therefore if complexity has to be reduced we would need a metric that will allow us to measure complexity. 

Once a measure is available it will at least become theoretically feasible to address the issue of how to drive down complexity.

The definition of an IT system is a good place to search for our complexity measure.  An IT system is a collection of programs that model the behavior of real world elements under different conditions. An IT system simulates the real world system by changing the observable values of IT elements (behaviors) as the inputs (conditions) are modified.

Merriam-Webster defines behavior as

“Anything that an organism does involving action and response to stimulation”

An intuitive observable measure of Intrinsic Complexity of a system is the number of possible behaviors that a system can exhibit

Extrinsic complexity is more difficult to measure and while there may not exist a good measure to compute the absolute value of extrinsic complexity, there exists a mechanism that when given two systems can tell which system has greater complexity.

It is intuitively clear that when in response to an external change a programmer needs to make changes to multiple programs then he would spend much more time to do so if he was required to make change in just one place.  The system that requires many changes to be made has greater complexity then the system that requires fewer changes to be made.

Techniques are available for reducing both intrinsic and extrinsic complexity.  

No comments:

Post a Comment