Impact
The job: the answer to "if I change this, what breaks", before the change is made.
Input: the table, the column or the function to change.
Steps
- Name the thing to change: a table, a column, a function or a file.
- Upstream: everything it is built from, layer by layer.
- Downstream: every table, view, report, test and job that reads it, found in the SQL and the code, never from memory.
- The consumers: who queried the downstream tables in the last period, from the query logs, by role and team.
- The checks and the tests that cover it, and the ones that will break.
- The blast radius in numbers: tables, data products, consumers, queries, checks.
- The safe order of the change: what to change first, what to rebuild, what to compare, and whom to tell.
- Give the result as one web page, with the graph and the lists.
Output
One HTML file, like references/impact.html: the numbers on top, the graph with the thing to change lit, upstream and downstream, then the consumers, the checks and the safe order of the change. Read it for the layout before you write the page.
Reads
- the SQL, the code, the data contracts, the query logs, the checks and the tests
Writes
- the web page only
Never
- Never makes the change.
- Never guesses a dependency: a dependency is one found in the code or in the logs.


