Monday, September 06, 2010

System thinking

Most engineers , when given something to analyze  try to break it up into several parts and then  analyze each one of those parts  one by one. While there is merit to  analyzing a problem , it is important to first synthesize it. Synthesis is the opposite of analysis. It involves 3 simple steps.

1.What  system  is the  object under investigation a part of ?
2.What are the other  objects in that system ?
3.How do these other objects interact ?

Once these questions are answered , the engineer gets  the so called  holistic view of the problem under investigation. Thereafter the process of analysis of the object in question  may begin which will be described in  my subsequent posts.

The system is always greater than the sum of its parts because of the complex interactions between those parts. A car transports people - however none of its parts, for example, the engine,gearbox or frame can perform that function. Hence theorists posit  that systems have  emergent properties which means functions evolve as various parts of the system interact.

This underscores the need for multiple rounds of system testing in the software development cycle because each round is essentially an attempt to discover emergent properties of the system , not anticipated in the unit testing of its parts. People, process and technology are the three basic parts of a software system or any system for that matter. They can interact in at least 4 ways - people and process, process and technology,
people and technology and people,process and technology  - therefore system test case design should consider these interactions. Compounding the equation is that these interactions are most of the time non linear  (i.e output is not proportional to input)  and higher order meaning one needs to differentiate them multiple times wrt the independent variable to remove the effect of the independent variable. These interactions could be static - time indepenent or dynamic - dependent on time. These interactions could be location dependent or independent - e.g. geography of where people,process or technology are located.
The interactions may have a causal loop meaning you do not know what is the  cause and what is the effect - e.g  Is the technology poor because processes are poor or proceeses are poor because technology is so. Modelling such an effect is very difficult because it is not clear what the dependent and independent variables are. That's where a system  consultant's expertise comes into play - to apply judgement in situations where  modelling is infeasible.  

2 comments:

Sameer Deshkar said...

System analysis has been useful even in the management of urban areas. It is often refered as "Ecosystem approach" which considers co-existance of multiple interacting dynamic systems together. Systems in urban areas are often overlapped and hence difficult to analyse in isolation. engineering systems (infrastructures), economic, social, environmental are all the major systems that interact giving rise to many sub-systems like political systems etc. Then there are by-products of the system interactions which sometimes add the unpredictability of the system. By far if we synthesis them all and see the function that serve is making a better Quality of Life for the inhabitants. The classical Geddesian triode defines the urban functions and systems as the resultants of interactions between Folk, Place and Work.

Sameer Deshkar said...

Sustainable solutions can be derived based on the holistic system understanding. We are often lost in analysing the individual systems, sub-systems and their variables that the ultimate objective becomes difficult and out of focus. China's "Instant cities" solve major engineering systems to benefit the economic systems. But the environmental and social systems seem to be compromised. Its like anyhow first make a car and then we will make it environmental and user friendly.