Recognizing (too much) Complexity

August 28, 2019

I recently purchased a book that I would highly recommend to anyone building software. It’s titled “A Philosophy of Software Design” by John Ousterhout and I plan to write blog posts for the next month using topics raised within. The book starts off with a practical definition of complexity which states that complexity is anything related to the structure of a software system that makes it hard to understand and modify. If you have never dealt with software code that grew too complex you can stop reading right here.

Ok, I see that you are still with me here… hehe. I can’t tell you how many discussions I’ve had with customers that began with “We have this software system and we need to make changes to it but it’s gotten to the point where any additional change no matter how small just takes forever.” This is the first symptom of a software application that has grown too complex and it manifests in what is called Change Amplification. Change Amplification results when even fairly simple changes require numerous code modifications.

The second symptom that your software is too complex is developer cognitive load. Cognitive Load occurs when it takes forever for a developer to simply figure out how the code was written. Examples here include API’s with many methods, poor (or no) comments, inconsistencies and dependencies between modules. Before a developer can change code, they need to understand how it is doing what it does.

The final symptom of complexity is Unknown Unknowns. This term, made popular by a former Secretary of Defense, relates to the fact that it may not be clear which pieces of code need to be modified to successfully make a change. This is the worst situation to deal with as there may simply be no way to know just how many places code might be hiding that needs to be modified.

Stay tuned as I will next cover what causes complexity and what can prevent complexity from seeping into your application.

Needless to say, the Decisions platform’s no-code, graphical development environment help’s organizations avoid complexity. If you would like to discuss the state of your current complex application, please reach out to us at sales@decisions.com or request a demo today. We love talking about such things!

 

Gordon Jones
Gordon Jones has founded and sold three companies with the last built using Decisions technology. He has also led factories and large IT implementations both in the US and in Asia, where he lived for over seven years.

Latest Articles

Transform your business with automation.

Decisions is the quickest way to build software and solve your most difficult problems. Book a demo to learn how we can simplify and standardize your business operations.

This website use cookies to help you have a superior and more relevant browsing experience on the website. Privacy Policy