When the agile community speaks about complex systems, chaos, and the management - or not management - of such thing, they rarely use the vocabulary of Systems Engineering or Systems Theory. As a systems engineer (MSSM 1980) I get a smile when I hear this sort of talk, naive at times, misinformed at others.The classic example of this is
For centuries, mathematicians have preferred to work with linear (ordered) systems, and they considered nonlinear (complex) systems to be in a special group [Appelo 2011].
This is course is simply historically and mathematically wrong.
Linear system constitute a very small fraction of the entire groups of systems observed in nature. Yet they are very important for engineers and scientists. [Opening sentence in Signals, Systems and Communications, Bahrs and Valkenburg, 1965. An undergraduate text book sitting in my library]
In the Bahrs and Valkenburg, after the introduction chapter on linear systems comes the Fourier (1768-1830) and Laplace (1749-1827) solutions to nonlinear systems in communications and dynamics. So that notion of linear systems and the preference of using them might be better informed with a class or two in "systems theory."
I'm preparing for a three day seminar, I'm presenting to engineers seeking to improve their management of large complex programs. These programs have software, hardware, systems integration, subcontracting, procurement of COTS components, emerging requirements, developmental technologies, and a bit of "rocket science" thrown in.
One fundamental concept is to see the network of activities, the people performing those activities, and the outcomes from that work effort as a "system," in the same way their product and processes to produce the product are a system. Here's a clip from the seminar.
The Program is a System is he foundation of increasing the probability of success. The example here has a linear transform function - the system response curve - used for illustrative purposes. Real systems have nonlinear system response curves.
But there is a fundamental theorem in the system business
Every function or waveform encountered in practice can always be expressed as a sum (discrete or continuous) of various exponential functions.
The is Fourier's theorem. With the Laplace transform, nonlinear differential equations can be transformed into algebraic equations and standard multiplication, addition, subtraction, and division operators used to find solutions, then the inverse Laplace transform used to convert them back to their differential equation form.
So In The End
We need to take care when over generalizing about systems and especially when applying this knowledge to actual complex systems like software and hardware projects. Here's some guidance:
- All numbers in a project - cost, schedule, and technical performance - are random variables
- The relationships between these variables can be linear, nonlinear, or combinations
- The statistical nature of the values and the coupling between the process is itself a random process.
This is a stochastic process - a time evolving probabilistic system with random coupled processes.
This is the basis of Complex Adaptive Systems, not the populist pseudo-science description. These systems have solutions, they have management processes, they are "controllable," so don't buy the notion that chaos reigns - it doesn't.