Data projects rarely fail on ingestion. They fail on meaning. Two teams report different revenue because they define it differently, and because the difference is invisible, everyone argues.

Start with definitions

Before a single pipeline is built, agree on a small number of definitions — what counts as a customer, a sale, an active user — and write them in one place everyone can read. This is unglamorous and it is the highest-return hour in a data programme.

Freshness is a promise, not a setting

Every table should declare an update frequency, and the platform should refuse to serve data that missed it. A dashboard that silently shows yesterday’s numbers as if they were today’s is worse than no dashboard, because it will be believed.

Lineage answers the only question that matters

When someone questions a figure, the useful answer is not a screenshot. It is the chain of transformations from source to figure. Without it, every question costs an afternoon of archaeology.

Governance should be small and boring

The best data governance is a short list of owned tables, a review when ownership changes, and a monthly check of the freshness promises. Anything larger tends to become a process that outlives its usefulness.