Blog

Why Confluence doesn't work (and what does)


If you've worked in engineering for more than a few years, you've experienced the Confluence lifecycle. A new team or a new initiative creates a Confluence space. Motivated engineers write initial documentation: architecture overviews, design docs, process guides. The space looks great for the first few weeks.

Then the maintenance stops. PRs ship without corresponding doc updates. Architecture changes aren't reflected. New engineers join and find that the docs describe a system that existed six months ago. Senior engineers warn new hires that "the wiki is mostly outdated" and suggest asking instead of reading. The Confluence space becomes a graveyard of good intentions: well-structured, nicely formatted pages that describe a version of reality that no longer exists.

This isn't a Confluence-specific problem. It's a problem with any documentation system that depends on humans writing and maintaining docs manually. Notion wikis go stale in the same way. Google Docs accumulate drift identically. GitBook pages rot at the same rate. The tool isn't the issue. The model is.


Why manual docs fail

Manual documentation fails because it requires a human to do work that doesn't produce direct, visible value, and because the effort is ongoing rather than one-time.

Writing a doc is a one-time cost. Keeping it current is an indefinite commitment. Every sprint, every refactor, every architecture change creates documentation maintenance work, and that work is never prioritised because it doesn't ship features, doesn't fix bugs, and doesn't move metrics that anyone is tracking.

The result is that even teams with strong documentation cultures accumulate documentation debt steadily, because the rate of system change always exceeds the rate of documentation maintenance. The faster you ship, the faster the docs go stale, and the documentation paradox ensures that the teams with the most to document are the ones least able to keep up.

Confluence's specific design makes this worse in a few ways. Its search is weak enough that engineers often can't find docs even when they exist. Its editing interface discourages quick updates because the page editor is heavyweight compared to typing in a code file. And its organisation depends on someone actively maintaining the space structure, which is yet another maintenance burden that nobody prioritises.


The model shift

The alternative isn't a better wiki tool. It's a different model for how documentation is created.

In the manual model, an engineer does work, then writes about the work in a separate system. The writing is a second task on top of the first, separated in time, separated in context, and dependent on the engineer's motivation to do it.

In the self-writing model, the documentation is generated from the work itself. PR descriptions become system change documentation. Slack conversations become decision records. Meeting discussions become planning and architecture docs. The engineer doesn't write docs. The system writes them from the engineer's existing output.

This shift matters because it eliminates the two failure modes that kill manual documentation: the motivation problem (engineers don't want to write docs) and the currency problem (docs go stale because maintenance isn't prioritised).


What a self-writing wiki looks like

A self-writing engineering wiki is a structured, searchable knowledge base that maintains itself from connected sources.

System documentation updates as PRs are merged, reflecting the current state of each system rather than the state when someone last remembered to update the wiki page.

Decision records are created from Slack discussions where architecture choices are debated and resolved, preserving the reasoning alongside the decision.

Onboarding materials stay current because they're derived from the same sources that describe the current system, rather than being a snapshot from whenever the last hire prompted someone to update them.

Change histories are compiled from PRs and conversations, providing a timeline of how each system has evolved and why.

Every claim in the documentation links back to its source, which means engineers can verify anything by clicking through to the original PR, message, or meeting transcript. This citation architecture is what separates self-writing docs from AI-generated text: the documentation is evidence-based rather than inference-based.


The migration

Moving from Confluence to a self-writing wiki doesn't require migrating all existing content on day one. The pragmatic approach:

Connect your engineering sources (GitHub, Slack, meetings). Let the system begin generating documentation from current activity. Use the self-writing wiki for new documentation going forward. Keep the existing Confluence space as a legacy archive for historical reference, and let it die naturally as the self-writing wiki becomes the team's primary reference.

Within a few weeks, the self-writing wiki will contain current documentation generated from live activity, while the Confluence space will contain historical documentation of diminishing relevance. The transition happens organically because engineers gravitate to the source they trust, and the source that stays current automatically earns trust faster than the one that requires manual maintenance.


Frequently asked questions

We've invested a lot in our Confluence setup. Do we have to abandon it? No. The self-writing wiki handles new documentation going forward. Your existing Confluence content remains accessible as a historical reference. Over time, engineers will naturally default to the source that's more current and more trustworthy, but there's no need for a forced migration.

Is the output quality comparable to well-written manual docs? For factual documentation (what the system does, how it's changed, what was decided), the quality is comparable or better, because the automated system captures comprehensively while manual documentation captures selectively. For narrative documentation (architecture philosophies, design principles, team culture), human writing is still superior. The best outcome is automated coverage of factual docs with human-written narrative docs layered on top.

How does this handle conflicting information? The system uses source recency and authority to resolve conflicts. A PR merged yesterday takes precedence over a Slack message from three months ago. Conflicts are flagged for human review when the system can't resolve them automatically.


Related reading: Self-writing docs explained, The documentation paradox, Why engineers hate writing docs. Related pages: Self-writing docs, For engineering teams, Fabric vs Confluence.

The workspace that thinks with you.

Ready when you are.

The workspace that thinks with you.

Ready when you are.

The workspace that thinks with you.

Ready when you are.