How bad is Architectural Complexity [System Design Sundays]
How architectural complexity impacts metrics developer productivity, software quality, and turnover.
Hey, it’s your favorite cult leader here 🐱👤
On Sundays, I will go over various Systems Design topics⚙⚙. These can be mock interviews, writeups by various organizations, or overviews of topics that you need to design better systems. 📝📝
To get access to all my articles and support my crippling chocolate milk addiction, consider subscribing if you haven’t already!
p.s. you can learn more about the paid plan here.
How expensive is architectural complexity?
No one likes working on complex code bases/architectures. However, things get out of control, because very few teams actually invest in simplifying their architectures. Since Tech Companies tend to lean towards speedy execution over strategy, system architectures get very messy- because engineers end up designing things on their own. Conflicting design patterns are patched together hastily, creating a chimera of code. However, if we have a better idea of how expensive complexity is, we could allocate the right amount of resources to simplifying the architectures.
Recently, I came across the amazing writeup- The Cost of Architectural Complexity- by the amazing Substack Writer
. In it, he breaks down "System design and the cost of architectural complexity”, a 2013 dissertation by Daniel J. Sturtevant for MIT. This study set out to measure the link between architectural complexity (the complexity that arises within a system due to a lack or breakdown of hierarchy or modularity) and a variety of costs including developer productivity, software quality, and turnover.Within this research setting, we found that differences in architectural complexity could account for 50% drops in productivity, three-fold increases in defect density, and order-of-magnitude increases in staff turnover.
-The paper
In this email/post, I will be summarizing some of the important from Abi’s Publication along with additional insights from the paper.
The Cost of Architectural Complexity
How Complexity impacts Quality- To quote Abi- “Architecturally complex source code files have a much higher defect density. The most complex code was found to have triple the defect density of the least complex code”. This can become ever more intense if multiple people are working on making changes to one project- Cataldo also found that changes that must be jointly implemented by multiple people are associated with greater defect density in files (Pg 56 of the publication). This is one of the reasons that I always stress limiting the side effects when it comes to code design and implementation.
Complexity and Productivity- System components that are harder to work with waste designers' time. If designers are twice as productive working in components where architectural complexity is low, we can say that high complexity consumes half of that individual's effort.
Developer Churn- “Software engineers working in the most complex regions of the code had a probability of leaving the firm that was ten times greater than their peers working in least architecturally complex code.” (Pg 145). Given how expensive it is to replace engineers (especially good ones) this is something that you should be very alert about.
Future Complexity- Complexity breeds complexity. There is a well-known law in management and systems design called Conway’s Law. Simply put, it states that organizations design systems that mirror their own communication structure. Very complex architectures add a lot of opaqueness to your communications, making future systems much less transparent. This will create a vicious cycle.
To those of you that want to learn more about this, I would recommend Abi’s piece (I’ve been recommending his newsletter in general). I’ve been recommending it for a while, and he really does publish some of the best content to help software engineers become better.
That is it for this piece. I appreciate your time. As always, if you’re interested in reaching out to me or checking out my other work, links will be at the end of this email/post. If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here. And if you found value in this write-up, I would appreciate you sharing it with more people.
Upgrade your tech career with a premium subscription ‘Tech Made Simple’! Stay ahead of the curve in AI, software engineering, and tech industry with expert insights, tips, and resources. 20% off for new subscribers by clicking this link. Subscribe now and simplify your tech journey!
Using this discount will drop the prices-
800 INR (10 USD) → 533 INR (8 USD) per Month
8000 INR (100 USD) → 6400INR (80 USD) per year
Reach out to me
Use the links below to check out my other content, learn more about tutoring, reach out to me about projects, or just to say hi.
If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here.
To help me understand you fill out this survey (anonymous)
Small Snippets about Tech, AI and Machine Learning over here
Check out my other articles on Medium. : https://rb.gy/zn1aiu
My YouTube: https://rb.gy/88iwdd
Reach out to me on LinkedIn. Let’s connect: https://rb.gy/m5ok2y
My Instagram: https://rb.gy/gmvuy9
My Twitter: https://twitter.com/Machine01776819