Discussion about this post

User's avatar
Alec Blair's avatar

Clear framing, and the question you land on — which fact must survive, and what is its authoritative form? — is the right one. I want to push on the answer rather than the question.

Every artifact on your list lives inside a repository. But take your own example: the account-closing function where regulation requires seven years of retention. That obligation spans a dozen applications that have never heard of each other, and it isn't even one rule. Retention varies by data type. GDPR Article 30 has required that whole family to be recorded, per data category, since 2018. Encode one member of it as a constraint in one schema and you've captured a shadow, somewhere nobody looking for the obligation would think to look.

That isn't an argument for a permanent prose replica of the software.You're right that it's a second codebase with weaker tooling. It's an argument that the question is scoped at least one level too low. Some facts are enterprise facts. Some belong to a domain. Some belong to a single product. Only the last lives in the product code repository. I made the same shape of argument about DDD a while back: bounded contexts need a floor above them, or you find your boundaries by trial and error.

On your opening image: "half the documents did not change" describes hand-maintenance economics. Expiry-by-default is rational when propagation costs human hours. I'm less sure that price holds anymore. Stale traceability at machine speed is worse than none. The answer to that is declared dependencies, minimal overlap, and quality checks on whatever propagates. Not abstention.

And the EU AI Act Article 11 requires technical documentation for a high-risk system to be drawn up before it goes to market and "kept up to date." A narrow class of software, granted, but it's the one place lawmakers have specified the artifact, and they specified a maintained one. Where would you put it?

No posts

Ready for more?