Idea

An append-only log distinguishes a change in the product from a change in our understanding

Info

Originally written in French. Translated by AI — the meaning has been preserved, not the prose.

Main idea

Each card of a product reference model carries a log where entries are added and previous ones are never corrected. An entry citing a code version signals that the product changed. An entry citing none signals something else: it is our understanding that changed, not the software.

The distinction looks minor at the moment of writing it. It is what makes it possible, six months later, to answer a question nobody knows how to handle otherwise: did we fix a card, or did the product evolve? Without it, the two movements blur into a single "last updated on".

The upkeep mechanism holds thanks to it: the reference version acts as a cursor and gives, with a single command, the list of what has moved in the product since the last update — hence the list of what remains to be recorded.

Why it matters

This separates two kinds of obsolescence that call for different actions. A card lagging behind the product is caught up mechanically, by rereading the sources of the new version. A card corrected because we had misunderstood calls for a question: what misled us, and has that cause gone away?

It also lets you judge the reliability of a description: a card whose log carries nothing but corrections of understanding was written too fast.

Nuances and limits

The mechanism assumes a citable product version — a repository, a release number. On a system with no clear versioned reference, the distinction becomes declarative and wears thin.

And an append-only log grows without limit: beyond a certain volume, you have to know what to do with it, which is a problem this note doesn't solve.

Open questions

  • How often should the reference version be brought up to date, given that every postponement lengthens the list of what will have to be recorded in one go?