All Stories
Story9 min readJuly 10, 2025

The Architect Whose Designs Nobody Followed - Until He Stopped Drawing Diagrams and Started Encoding Constraints

A story about a solutions architect who produced beautiful architecture documents that everyone ignored - and what happened when he turned design decisions into system-enforced rules.

The Architect Whose Designs Nobody Followed - Until He Stopped Drawing Diagrams and Started Encoding Constraints

I spent three weeks designing the service decomposition. Clean domain boundaries. Clear data ownership. Explicit integration contracts. Documented tradeoffs.

Six months later, I found a service that communicated with another service by directly reading its database. When I asked the team why, they said: 'We didn't know there was an architecture for this.'

The architecture document had been in Confluence. It had 14 views. Three were mine.

The architecture that lived in documents and died in practice

I'd been a solutions architect for seven years. I was good at it - the design part. I could decompose complex domains, identify integration patterns, spot scalability bottlenecks before they manifested. My architecture reviews were thorough, my documents were clear, my diagrams were beautiful.

And none of it mattered. Because architecture lived in documents, and code lived in repositories, and the distance between them grew every day.

His designs lived in documents-ignored by the teams.
His designs lived in documents-ignored by the teams.
  • Services that were supposed to be independent developed hidden couplings because nobody checked.
  • Data ownership boundaries were violated because the shortcut was faster than the contract.
  • API versioning standards were documented and universally ignored.
  • Technology choices that were supposed to be standardized proliferated because nothing prevented teams from making different choices.

I was producing architecture. Nobody was consuming it. The designs existed in a parallel universe that had no connection to the code being shipped.

The pattern that kept repeating

Every major production incident traced back to an architecture violation. Not a design flaw - a violation. The design was right. The implementation had deviated.

  • A cascading failure because a service bypassed the circuit breaker pattern that was 'required' but not enforced.
  • A data inconsistency because two services shared a database directly instead of using the event contract.
  • A security incident because a team used an outdated authentication library instead of the standard.

In every post-mortem, someone would say: 'But the architecture doc says we should...'

And someone else would say: 'Nobody reads the architecture docs.'

Tension peaks-another crisis, another ignored design.
Tension peaks-another crisis, another ignored design.

Architecture that isn't enforced isn't architecture. It's a suggestion.

The realization

I was reading the Team Helix blog after yet another incident caused by an architecture violation. The framing crystallized something I'd been feeling for years:

Decisions need to outlive the decision-maker

Helix argues every architecture decision needs a record - what was decided, why, what alternatives were considered, what constraints apply - so the decision context survives turnover, audits, and time.

My architecture documents had the 'what.' They rarely had the 'why' in a way that survived the first team rotation. When the original team left, the rationale left with them, and the new team made different choices because they didn't understand the constraints.

Governance isn't review. It's enforcement.

Helix frames governance as encoded constraints - architecture rules, security requirements, deployment gates - baked into the delivery system as rules the system enforces, not guidelines humans are supposed to follow.

I'd been doing architecture review. What I needed was architecture enforcement. Not me looking at code after it was written. The system preventing violations before they're committed.

The turning point: encode rules, not just draw them.
The turning point: encode rules, not just draw them.

What I changed

1. Architecture decisions became enforceable rules

Service communication must go through defined contracts - enforced by the pipeline. Database access limited to the owning service - enforced by infrastructure policy. API versioning follows the standard - validated at build time.

Not 'please follow the standard.' The standard is encoded. Violations fail the build.

2. Architecture Decision Records replaced architecture documents

Every material architecture decision got a lightweight ADR: the context, the decision, the alternatives considered, the constraints, and the consequences. Stored alongside the code, not in a wiki nobody visits.

When a new engineer asks 'why does this service exist?' - the ADR answers. When someone wants to change the approach - the ADR explains what constraints led to the current design.

3. Fitness functions replaced architecture reviews

Instead of me manually reviewing every change for architecture compliance, we implemented automated fitness functions: continuous tests that validate architecture properties. Dependency direction. Service coupling metrics. API contract conformance.

I stopped being the human architecture police. The system became the architecture police.

What happened

  • Architecture violations in production dropped to near zero. Not because people got better at reading documents - because violations couldn't pass the pipeline.
  • New teams onboarded to the architecture in days instead of weeks, because the ADRs explained the why and the constraints explained the boundaries.
  • Architecture evolution became deliberate: changing a constraint required an explicit decision record, so the architecture changed intentionally, not through drift.
  • I started doing actual architecture work - evaluating new patterns, modeling future state, solving hard design problems - instead of being a full-time compliance auditor for my own designs.
Collaboration and clarity-architecture that lives in code.
Collaboration and clarity-architecture that lives in code.

An honest aside

This architect is invented.

There wasn't a single database-sharing incident that triggered the change. There wasn't one post-mortem that made it click. There wasn't a clean transition from documents to constraints.

But every architect knows this pain. The beautiful diagram nobody follows. The standard nobody reads. The review process that catches violations after they're already in production.

The fix isn't better documentation or more reviews. The fix is encoding architecture decisions as system constraints - enforced automatically, explained through decision records, and validated continuously. Architecture should be something the system is, not something a document describes.

Story protagonist

See governed autonomy in action

Request a demo and see how Team Helix applies these ideas to your engineering workflow.