Profile

Tuesday, March 11, 2014

COMPLEXITY - The Primary reason for loss of Resilience




With Resilience defined as well as IT systems defined let us now combine the two and study the issue of Resilience of IT systems.

To recapitulate, a resilient system was defined as one that exhibits the following characteristics

1.    The relationship between Time & Effort spent (and therefore cost) to make a change and the number of changes is more or less a linear function of the latter.  A mathematical representation of this can be Y (effort) = aX(number of changes) + b and   Z(time) = cX (number of changes) + d 
2.    The Value of "a" and Value of "c" is small.  That is there is only a small increase in effort or time with every additional change introduced in the system

On the other hand an IT system was defined as 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.

Real world systems are subjected to continuous change.

Since IT systems are a representation of the real world systems they also need to change as the real world systems change.  Changes to the IT systems require changes to the programs.  It is after all the programs that simulate the real world systems.  

A resilient IT system then is one where changes can be made to the programs without much expenditure of effort and where the amount of effort required to make changes does not increase with number of changes.

To build a resilient IT system, it is important to understand what are the factors that lead to greater amount of time to be spent by programmers in making changes.

The greater the complexity of a system the greater the time it will require to make a change.  Complexity is the biggest single cause of loss of resilience.  Complexity requires programmers to expend significant amount of time and effort to understand the full impact of the changes being contemplated by them.

Complexity can have two sources (1) Intrinsic complexity: The complexity inherent in the system being digitized (2) Extrinsic Complexity: complexity in the way that the system has been digitized

If complexity is the single biggest cause of loss of resilience then complexity-reduction has to be the solution to building resilient systems.

No comments:

Post a Comment