I'm going through some long-stacked papers in my home office and came across "Engineering a Complex System: A Study of the AOC," Douglas O. Norman, MITRE Corporation. (The AOC is the Air and Space Operations Center is based on the AN/USQ-163 Falconer) In this paper Norman describes a complex system as having seven fundamental principles:
- aggregation
- tagging
- nonlinearity
- flows
- diversity
- internal models
- building blocks
The major difference between a complex system and those which are not is the amount of interaction among the composing elements. From an engineering approach a Complex System has the following characteristics:
- Its structure and behavior is not deducible, nor may it be inferred from the structure and behavior pf its component parts
- Its element change in response to imposed "pressures" from neighboring elements (this is reciprocal and transitive)
- It has a large number of useful potential arrangements of its elements
- It continually increases its own complexity given a stead influx of energy (raw resources)
- It has independent change agents present
It turns out these characteristics violate the boundary conditions required for applying traditional systems engineering - either for initial design or to support subsequent change. For a traditional systems engineering approach to work the dimensionality of the system has to be reducible until a clear solution forms. Systems Engineering provides this process.
Can Agile Project Management deal with Complex Systems in the presence of this condition? It has been suggested that APM is the processes to be applied to Complex Systems. The conclusion of the Norman paper is that traditional systems engineering fails to address the problems of managing the AOC program.
I now have some viable sources for considering this question in the context of software systems found in the agile development world. More later once I digest this concept.