Complexity seems to be emerging as the latest cause. Things are just too hard. Or is it that they are too hard to understand. Or is it that we’re just getting older and dumber.
The definition of complexity is:
Consisting of interconnected or interwoven parts; composite
Our word comes from the Latin complexus, to entwine.
From these definitions we can determine there are two principle elements of a complex: parts and connections. The degree of complexity of any complex relates to the number of parts and/or interconnections. This is true, but simplified. There are other factors of complexity, which include:
- Differentiation: how similar or dissimilar are the parts of the complex
- Open: parts may change or be added or removed
- Memory: the history of complex system may influence the current state of the parts
- Nesting: parts may themselves be comprised of multiple parts
- Boundaries: it may be difficult to determine the boundaries of a complex
- Number of relationships: the number of interconnections a part has
- Loops: feedback loops represented by the interconnections among the parts
- Non-linearity: when a system’s behaviour is not expressible as a sum of the behaviour of its parts
This latter factor impacts the degree to which a complex system can be reduced into less complex parts. Reductionism is a common strategy in dealing with complexity (i.e., divide and conquer), but if the system is non-linear, then this strategy can only go so far. Fortunately for businesses, most man-made systems are linear in nature.
Each problem domain has intrinsic complexity. The solutions we choose to develop to operate within the problem domain may suppress or exaggerate the intrinsic complexity. If the complexity of the solution is more than can be managed by the people that are there to execute then one has two options: increase the skill level of the people or move the complexity elsewhere.
Moving complexity is an interesting notion; we do it all the time. For example, often we move complexity from people to computers. We make computers easier to use even while they do more. Automobiles apply computers to a number of interesting and complex tasks under the covers of a fairly simple and consistent user interface. Much of the work done in systems to day is to automate processes people have done in the past. This makes the peoples’ task easier; it shifts the work or complexity to the computer.
It then becomes the in-house computer programming staff’s challenge to figure out how to solve the problem. They are faced with the complexity and are expected to tame it. However, if they choose to buy a solution they effectively have move the complexity to the vendor. If they choose to outsource the work, say to India, they have moved the complexity off-shore.
Leave a Reply