Charles Venshore

The journal · Engineering provenance

A repository is not a release history

Knowing where code lives is different from knowing how a particular executable was made. Release provenance should answer an artefact-level question without pretending to certify everything about the software.

When a release review asks where the code came from, a link to a repository can feel like a complete answer. It is familiar, searchable and associated with the engineering team's work. But the bank intends to run a particular package. That package may depend on a build process, configuration and external components that are not adequately described by the source revision alone. I want the engineering record to connect those things before we rely on the apparent completeness of a repository link.

This is a practical maintenance argument. A future team may need to investigate an unexpected behaviour, reconstruct a release or understand whether a component change affects the installed package. If its starting point is uncertain, the investigation first becomes an exercise in recovering history. That work can be slow even when nobody has done anything improper. The original engineer may simply remember assumptions that were never retained in a form the next person could use.

Begin with the package that will run

In a defined Talverin portfolio, we reviewed thirty-six release artefacts. Twenty-eight had a traceable account of their build. Eight did not: five lacked sufficient build records and three had incomplete dependency information. The repositories existed. Their existence did not answer the question about those eight packages. I asked the teams to keep the inventory anchored to the artefacts presented for review, rather than replace a difficult package with a more convenient description of its general application.

That distinction prevents a common category error. An application is a continuing engineering responsibility; a release artefact is a particular output of that work. The application can have a well-managed repository while a specific package has an incomplete history. Conversely, a package can be traceable without demonstrating that every aspect of the wider application is well governed. I want the review to say which object it has examined and what evidence it has established about that object.

The useful record connects the relevant source, dependencies and production process closely enough for an authorised engineer to investigate the package. The precise evidence depends on the delivery arrangement. A centrally built service and a supplier-delivered component will not present identical records. The principle is that the bank should understand the limits of its account and decide whether they are acceptable, rather than assume that the presence of a familiar development tool settles the matter.

I also ask who can explain a mismatch. If the available build account does not correspond to the package under review, the next step should have an owner and a bounded investigation. It should not depend on the reviewer guessing which version was probably intended. A plausible story is not a substitute for a supported history, particularly when a later maintainer may treat today's confident explanation as established engineering fact.

Traceability does not settle acceptance

Our reconstruction took five weeks and cost USD620,000. Six incomplete histories became traceable, bringing the reviewed total to thirty-four. Two artefacts remained held. We retained those two in the report rather than narrow the inventory until the completion percentage looked better. That gave management a concrete account of progress, remaining work and the cost of recovering evidence after the delivery process had already produced the packages.

The result did not mean thirty-four releases were free of defects or acceptable for every deployment. Traceability helps establish how something was made. Functional testing examines behaviour under defined conditions. Security evaluation addresses another set of questions. Deployment authority connects the proposed change to the bank's operating decision. These activities inform one another, but none should casually absorb the others merely because a committee paper needs a short status description.

I am particularly wary of allowing a successful provenance review to become a broad safety claim. A perfectly traceable process can produce an undesirable result. The value of the history is that the bank can investigate, challenge and change the software from a more intelligible starting point. It supports accountability without removing the need for judgement about the package's intended use, observed behaviour and remaining limitations.

The reverse confusion is also costly. A release may pass functional tests while its origin remains difficult to explain. Those tests are useful evidence about the conditions examined. They do not reconstruct the missing build account. When managers ask whether good test results make the history unnecessary, I bring the conversation back to the different future questions each record is expected to answer. The choice should concern an understood gap, not a competition between two reassuring labels.

Make the next investigation cheaper to begin

Retrospective reconstruction is sometimes necessary, but it should not become the normal way the enterprise produces a release history. I would rather agree the evidence when the delivery route is established. That lets the team retain useful records as part of its work and makes the expected account visible before a release deadline creates pressure to accept an incomplete one. The requirement should be practical enough that engineers can explain how it helps them maintain the service.

There is still an economic choice. Evidence has to be produced, stored and kept understandable. An elaborate record that nobody can navigate may offer little practical improvement. I ask for a demonstration: could another authorised engineer use the account to identify the relevant inputs and investigate the package without relying on the original builder's memory? The answer reveals more than the volume of documents attached to a release ticket.

The bank also needs continuity of ownership. Teams reorganise, suppliers change and a service may outlive the tooling through which it was first delivered. A useful provenance practice considers how its explanation remains accessible through those changes. That does not require every old environment to run forever. It requires a conscious decision about which evidence must remain usable and what would be lost if the supporting arrangement is retired.

As CTO, I regard that durability as part of the engineering cost, not an optional archive exercise after delivery. The next serious question about a release may arrive years after the original approval. I cannot predict every investigation it will require. I can improve the place from which that investigation begins. A repository is an essential part of the account; the release history earns its value by connecting it to the particular software the bank actually chose to run.