Part 1 of 5 in The Software City
The Flat World of Architecture
The Ritual
Every engineer knows the ritual. It’s your first week on a new team in a large company. You’re ushered into a meeting room for “the architecture walkthrough.”
Someone, usually a well-meaning senior engineer or an architect, pulls up a diagram on the screen. It’s a sprawling web of boxes and arrows, a testament to years of development, re-orgs, and strategic pivots.
“This service talks to this database,” they begin, their cursor tracing a faint line. “This queue feeds into these workers, which then call this other API. Simple enough, right?”
You nod along, trying to build a mental model. You understand the words, the individual connections. But you don’t understand the system. It’s a flat, two-dimensional representation of a living, n-dimensional entity.
A week later, you’re stuck. A simple bug fix requires you to understand a chain of dependencies, but the diagram is no help. It’s technically accurate (or was, six months ago), but it’s information without context. Why is this service so complex? What happens if that database is slow? Where do I even find the code for this box? You’re forced to ask another engineer, interrupting their flow, to get the real story—the tribal knowledge that isn't captured in any document.
This isn’t a personal failure. It’s a systemic one. We are using flat, static diagrams to describe dynamic, multi-dimensional systems, and it’s failing all of us.
The Limits of a Flat World
Architecture diagrams are an attempt to compress a world of meaning onto a single plane:
- System hierarchy and boundaries
- Data flow and dependencies
- Ownership and team structure
- Cost, risk, and performance
For a small system, this works. For the sprawling, interconnected systems that power modern enterprises, it’s a catastrophic failure of representation. As the system grows, so does the diagram’s complexity. More boxes, more arrows, more colors, more dashed lines—each addition in the name of accuracy only serves to destroy comprehension. You can see all the trees, but you have no sense of the forest.
We Don't Think in Blueprints
The fundamental problem is that humans don’t reason about complex systems as abstract graphs. We reason about them spatially. We build mental maps.
Think about how you understand a city. You don’t memorize a list of street connections. You understand it through districts, landmarks, density, and flow. You know which areas are busy, which are expensive, which are old, and which are residential.
Static diagrams force us into a mode of symbolic decoding that is unnatural and cognitively exhausting. Everything is equally close and equally abstract. A critical, high-traffic API gateway can appear as the same size box as a forgotten nightly cron job. The representation lies by omission.
This mismatch is why onboarding is so painful and why even experienced engineers often feel like they are coding without a true understanding of the system they live in.
In the next post, we will explore an alternative. What if we stopped drawing maps and started building worlds? We'll introduce the "Software City"—a new metaphor for visualizing our systems in a way that feels intuitive, preserves context, and restores the dimensions we've been missing.

