intermediate 2 min answer

A dashboard has been wrong for three weeks. Nobody knows which upstream produced the table it reads. What is the governance failure, and what fixes it?

governancelineageownershipcontracts
Show the full answer Hide the answer

The failures, and there are three

1. No lineage. The question "which upstream produced this?" should be answerable in seconds by following a derived dependency graph. Instead it required asking around, which is why three weeks passed.

2. No ownership. A dataset without a named owner has nobody accountable for its correctness, and nobody to notify when it breaks. This is the root failure — lineage tells you where to look, ownership tells you who acts.

3. No quality monitoring. Three weeks of wrongness means nothing was checking. Freshness, row-count deviation, null rates and range assertions on each load would have caught it on day one.

What fixes it

Lineage, derived automatically. Parsed from query logs, dbt manifests or orchestration metadata — never hand-maintained, because hand-maintained lineage is accurate the day it is written and misleading afterwards. Column-level where possible: table-level tells you a dashboard depends on a 200-column table; column-level tells you which three columns, which is what makes a change decision possible.

Ownership enforced at creation. A dataset without an owner should not reach production, in exactly the way a service without one should not. This is a pipeline gate, not a policy document.

Quality checks on every load, alerting the producer rather than the consumer. Freshness is the highest-value single check: a table that has not updated is the most common cause of a stale-wrong dashboard, and it is trivially detectable.

Data contracts for datasets with real consumers: schema, semantics, quality guarantees, and a change policy — enforced in the producer's CI so a breaking change fails their build.

Where I would start

Ownership and freshness checks, in that order. They are cheap, they need no new tooling, and between them they address most of the observed failure: someone is notified, and they are notified on day one.

Lineage is more valuable long-term and takes longer to stand up. A catalog without ownership and freshness is decoration.

What a strong answer adds

Naming the cultural shift underneath: the producing team must accept that its published dataset is a product with consumers, not an implementation detail that happens to be readable. Every technical control above is unenforceable without that, and the reason data governance programmes fail is usually that this conversation never happened.