Complexity is a big problem for IT. Complex systems cost too much, fail too often, and usually do not meet basic business and architectural requirements.
I believe that all IT complexity can be traced to five causes. Eliminate the five root causes of complexity, and you can eliminate unnecessary complexity.
These root causes are as follows:
- Partitioning Failures – that is, systems in which either data and/or functionality has been divided into subsets that do not represent true partitions.
- Decompositional Failures – that is, systems that have not been decomposed into small enough subsets.
- Recompositional Failures – that is, systems that have been decomposed into subsets that are too small and have not been recomposed appropriately.
- Boundary Failures – that is, systems in which the boundaries between subsets are weak.
- Synergistic Failures – that is, systems in which functionality and/or data placement does not pass the test for synergy.
I’m planning on exploring these five causes in my next ObjectWatch Newsletter, so if you are interested, stay tuned.
Can anybody think of a cause of IT complexity that is not covered above?