The Beast
There is a whale no one sees, circling slowly beneath the surface of every software project.
A mighty beast that carries systems on its back.
Be aware of its strength. When it is weakened or forgotten, it can pull the entire project down into the black depths of the entropy sea. And it does this so slowly, that by the time someone realizes what is happening, it is already too late. Planning turns to chaos, change becomes impossible, and there are no more doughnuts from the manager. People leave as the music fades into its final violins*. And the light goes out.
Flip the soundtrack
Things don’t need to end this way—if we simply give our archwhale what it craves most: attention.
And when I say “we,” I mean everyone involved in the project. Each of us adds a small piece to the story. Adding something means taking responsibility for it.
Now the most important part: to care about a whale is not to just think about it (even if your thoughts are warm, sophisticated, or reach far into the future).
To care about a whale is to take a knife and cut it into pieces**.
Chop chop chop?
Yes—but not so fast.
First, let’s clarify what this actually means.
As explained in this article, there are countless axes along which architecture can be sliced, depending on intent. Search long enough and you’ll find hundreds of possible artifacts: designs, diagrams, documents—plus frameworks and blog posts comparing architecture to whales, bridges, or chocolate cakes.
So our first problem isn’t a lack of options, but an excess of them.
We can’t just start creating projections at random. Too much documentation is as harmful as too little. Before we start running around with diagram-knives, we need to stop and ask a simple question:
What are we actually trying to achieve?
The spatial dimension
You carry the project vision inside your head. You navigate it effortlessly. You know where things are solid—and where shortcuts were taken just to keep things moving. You already plan new features, consider possible risks, and think about how to mitigate them.
What lives in your head is similar to what an author carries when writing a book: an entire universe where the real story unfolds. Just like you, the author can explore multiple possible futures happening inside.
Now imagine not one author, but a hundred, all writing the same book. Without synchronization, one kills the main character while another sends him to Scotland to find a brother who was never missing.
The universe must be shared.
That’s why we externalize it. Architecture artifacts—API contracts, dependency graphs, interface boundaries—are projections of the system that enable shared reasoning, coordination, and onboarding, keeping the universe stable while many minds shape it at once.
The time dimension
You carry the project vision inside your head.
Today.
Tomorrow your attention shifts. A month from now, you won’t remember why things are the way they are.
“It’s all in the code,” one might say. But that’s not true. Many decisions don’t affect how code is written, but how it is not written.
Why was language X chosen instead of Y?
Was market availability considered? Ecosystem maturity? Team experience?
And when a framework was selected, which trade-offs were accepted—and are they still valid?
What we want to record is not just why we chose A, but the full reasoning behind that choice.
In this sense, architecture artifacts are memory. We use them to keep the universe stable while time passes.
Not just records — thinking surfaces
Artifacts have one more important function: they act as thinking surfaces—places where ideas are tested before they harden into decisions.
You definitely know how this works. You don’t create class diagrams when classes already exist in code—you do it before, to see how dependencies might look. This allows to reason at a higher level of abstraction than the implementation.
The same applies to ADRs. Instead of writing an ADR after a choice is made, start earlier. Capture doubts, alternatives, and trade-offs. After execution, clean it up and keep it.
This suggests that artifacts should be created only when we actively work on a subject. In general, yes—but they should also be reviewed from time to time (for example, at each major release). Check whether they still carry information worth caring about. Outdated artifacts can be archived so they don’t introduce unnecessary noise.
Time for sushi
Now we are ready. We know what we want—and, more importantly, why. As in everything in the universe, balance matters. The number of produced artifacts must be just enough to keep the project synchronized across space and time. This way, it stays on the edge of exploration while remaining stable.
And remember: architecture survives only as long as people actively care for it.
Not admire it.
Not remember it fondly.
Care for it through small, deliberate acts: revisiting decisions, updating maps, removing what no longer matters, making the invisible visible again.
Ignore it, and it will not protest.
It will simply sink.
* Max Richter — “On the Nature of Daylight” fits perfectly
** Space archwhales love to be sliced — it keeps them alive.

You must be logged in to post a comment.