Share this:

How Do You Measure System Complexity?

By Tracie Berardi, Program Manager, Consortium for IT Software Quality (CISQ)


Chris Kohlhepp proposed the Law of Tangental Complexity in an article he wrote on the complexity of large scale systems. He explains: To successful systems we add functionality, inter-dependencies, and layers of abstraction. Pressures exist to continue adding value. Over time systems become so complex that they eventually reach a “cognitive horizon,” i.e. a psychological limit on the ability of humans to understand the complexity of the system. We may add lateral breadth of functionality to the system (tangent to the cognitive horizon), but in time, control is lost and TECHNICAL DEBT ensues.


Cognitive Horizon

 Image credit: Chris Kohlhepp, Law of Tangental Complexity


As steps are taken to make the system manageable – refactoring, and perhaps the hiring of new staff – the system will again find itself nearing an even greater cognitive horizon. “Recruiting more exceptionally talented engineers who can cope with the cognitive horizon of the system proves less fruitful upon later iterations of this cycle,” the author writes. The law of diminishing returns kicks in. 


Mr. Kohlhepp discusses two traditional mitigation strategies – 1. Limit the complexity of the system, and, 2. Refactor the system into two or more subsystems to manage complexity on a smaller scale. One cannot change what one cannot measure.


At CISQ we agree with this concept. A large project is 10x more likely to fail (Standish Group, CHAOS Report 2013). At the September 2014 CISQ seminar in Austin, Texas, CISQ Director Bill Curtis stressed that over half of maintenance activities are spent first understanding the code. Losing control of the entirety of a system takes away from time spent being proactive versus reactive. 


How do you measure the complexity of a system over time? How do you identify when it’s time to be proactive and split applications? Have you considered applying IT quality metrics developed by CISQ to measure and automate reports on your applications?


We would like to hear your thoughts on this subject. Please comment below.

Leave a Reply

Your email address will not be published. Required fields are marked *



Comment validation by @