Complexity

12 articles · all categories

April 2025

Say no to abstract code

The trick, then, is to keep related code close together to reduce context boundaries and to limit the amount of relevant detail so it fits in your working memory.

January 2025

Build the abstraction first

Hardcoding logic when you're tight on time doesn't need to make a mess. You can build the abstraction first!

July 2024

DRY – the common source of bad abstractions

Swizec reveals the hidden pitfalls of overusing the DRY principle in coding, leading to bad abstractions. Discover how to write adaptable, efficient code that avoids these common traps.

You can't side-quest a product

Here's a trap that talented engineers fall into all the time. It creates frustration, burnout, and the genre of tweets that read like "Why don't people care about the amazing work I'm doing".

April 2024

From trivial to complex – 4 software quadrants

You can classify software projects into 4 quadrants from trivial to complex

October 2023

Solve the problem, not a different more difficult problem

Solve the problem at hand, not the one you imagine might come next. A simple fix now often beats a complex one later.

August 2023

Finding modules in a Big Ball of Mud with ChatGPT

Detangling a Big Ball of Mud is hard. You have to find domain boundaries where none exist. Looks like AI can help 🤩

Followup answers to Forget complicated code, focus on the system

Why are utility files bad? How do you recognize architectural complexity? What the hell is a transitive dependency?

Forget complicated code, focus on the system

Clean code matters, but it's the architectural complexity that truly impacts your productivity and bug count. Focus on simplifying the system, not just the code.

June 2023

Why taming architectural complexity is paramount

Unravel the hidden costs of architectural complexity in software engineering and learn practical strategies to tackle it. Boost productivity, reduce defects, and improve staff retention with insights from an MIT PhD thesis.

May 2023

Two types of complexity and their impact

Complicated code slows down junior devs, while complex systems impact senior devs more. Focus on managing system complexity & dependencies, not just simplifying code.

You can't fix the wrong abstraction

Unlock the secrets to combating architectural complexity in software development and learn to identify and fix the wrong abstraction. Boost productivity, reduce bugs, and retain more staff.