All Posts
Engineering··6 min read

The Org Chart Is the Architecture

Conway's Law says the structure of your software reflects the structure of the organization that built it.

I've watched this play out hundreds of times. And it's not metaphorical. It's mechanical.

You can't fight it. You can only recognize it and use it intentionally.

How The Mapping Works

Say you have three teams: Auth, Data Pipeline, and API. Each team owns their service. Now you're building a feature that needs to touch all three services.

The architecture will show it. You'll see three API calls, three databases involved, three different error patterns, three teams' assumptions baked in.

If those three teams never talk? You'll see seams in the architecture. Inconsistency. Defensive programming because nobody trusts the other services.

If those three teams sit together and design together? The architecture will be simpler. Cleaner. Less defensive.

But here's the thing: the architecture is a result, not a cause. The org structure caused it.

A team I worked with had a microservices disaster. Eighteen services. Nobody could deploy anything because every service had undocumented dependencies on four others. They had team meetings to plan deployments.

The CTO blamed microservices. Wanted to go back to monolith. So they did. Built it as a monolith.

Then they grew. Hired more teams. Needed to split responsibilities. So they carved the monolith into... eighteen logical domains that mapped exactly to their new org structure.

Three years later, those domains hated each other. Wanted to be separate services. Same architecture problems, worse performance.

The problem was never monolith vs. microservices. The problem was that the org structure was creating the seams in the code.

The Inverse Is Also True

I watched a company build monolithic software because they had one team. One team, one codebase, simple.

Then they hired a second team. The monolith immediately became political. Who owns what? Whose code changes matter more? Merge conflicts every day.

So they split it. Two services, two teams. Suddenly the same code worked fine. Because the org matched the architecture.

The code didn't change. The org did. Everything else followed.

Why This Matters For Your Roadmap

If you want to ship something fast, make sure you don't need coordination across teams.

If you want to optimize for decoupling, organize your teams around decoupled services, not around company functions.

If you want tight integration, organize your teams to sit together.

Most companies do none of this. They organize by function (backend, frontend, mobile) or seniority (juniors here, seniors there) or... history (this person hired these five people, so they're a team).

Then they get confused why the architecture is a mess.

I consulted with a company that wanted to decouple their frontend and backend. Good goal. But they had a frontend team and a backend team that hated each other because they'd been separated geographically and organizationally for years.

You can't decouple teams that are physically and politically joined at the hip. It doesn't work.

So they reorganized. Front-of-backend (the part of backend that talks to frontend) moved to sit with frontend. Back-of-backend (the databases and integrations) stayed separate.

Suddenly the architecture made sense. Because the teams made sense.

The Hidden Cost Of Ignoring This

When your org chart and your architecture don't match, you pay a tax.

That tax is:

Coordination overhead (meetings to figure out who does what) Integration complexity (the architecture has to bridge gaps the org created) Context switching (your team owns three unrelated modules because org structure said so) Political friction (the services hate each other because the teams hate each other)

It's not huge per incident. But it's continuous. It's baked into every change.

A team I know has three services that should be one. They know it. But the three services are owned by three different teams. Reorganizing would mean disrupting career path for six people and admitting the previous org structure was wrong.

So they tolerate the complexity. They build adapters. They add integration tests. They pay the tax.

How To Use This Intentionally

If you understand Conway's Law, you can use it:

Design the org to match the architecture you want: You want decoupled services? Create decoupled teams. You want a monolith? Keep them together.

When architecture sucks, check the org chart: If your architecture is a mess, odds are the org structure is a mess too. Don't blame the code. Reorganize the people.

Communicate the why: If your team structure seems random, it probably is. Map it to architecture and make it intentional.

Accept the constraint: You can't have better architecture than your organization can support. You can't have a distributed system when your teams are siloed. You can't have loosely coupled software when your teams are tightly coupled.

What Most Companies Get Wrong

Most companies treat org structure as HR's problem and architecture as engineering's problem.

They're the same problem.

If you want a particular kind of architecture, you need a particular kind of org. And if you want to change your architecture, you have to change your org.

Most companies do one without the other. Then they wonder why it doesn't work.

Your microservices map to your team boundaries. Your monolith reflects your single team. Your modular system reflects modular org structure.

This isn't philosophy. It's mechanical. It's what happens when people are organized and need to ship software.

Understand it, align with it, and your architecture will work. Fight it, and you'll be paying taxes for years.