Blog Posts DMN

Recognizing (too much) Complexity

Blog: The Data Center

decisions platform

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 or request a demo today. We love talking about such things!


The post Recognizing (too much) Complexity appeared first on Decisions Blog.

Leave a Comment

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples