Recognizing (too much) Complexity
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 firstname.lastname@example.org or request a demo today. We love talking about such things!
- How financial institutions can not just keep up with Joneses but outpace them
- What is Intelligent Process Automation (IPA) and why does it matter?
- Through earthquakes, unplanned outages, and grid failures: Keep your applications running
- Low-code vs. no-code: Which one do you need?
- What Exactly is a Business Rules Engine?
- How Can You Automate Quotes with a Business Rules Engine for Insurance?
- Use Automation and Custom Business Rules to Create Intelligent Asset Management
- Three Ways to Drive Process Automation for Insurance with a Business Rules Engine
- Where and How to Use Scoring Rules to Make Better Decisions in Process Automation
- Edge Cases Don’t Fit Your Workflow? Customize with a Business Rules Engine.