Retiring two legacy reporting platforms
A reporting platform is easy to switch off and hard to leave. The reports are the visible part. The real problem is the business logic buried inside them, written years ago, rarely documented, and often the only place a particular rule exists at all.
I led the BusinessObjects retirement as the sole technical contributor, running in parallel with migrating workloads off Netezza as that platform was decommissioned.
The work
Working with the data leadership team and the people who owned each report, I went through more than 100 reports. For each one the question was the same: what is this actually calculating, who still depends on it, and where should that logic live now? The answer was rarely “rebuild the report as it was”. It was to lift the logic out, express it as a tested dbt model, and let people query the model.
Every migrated output was validated against its legacy version before cutover, because the fastest way to lose trust in a new platform is to hand someone a number that moved without explanation.
Where the logic went
Business teams now query governed Snowflake models directly, or point their own Power BI reports at them. Logic that used to be locked inside a reporting tool, invisible and untestable, is version controlled and inspectable.
The part that was not technical
The team most affected had used BusinessObjects for years and relied on it for live casework, so a tool change was a genuine risk to them rather than an inconvenience. I ran sessions walking through the replacement using their own cases as examples, then handed over one process at a time for them to run themselves while I was there, so confidence was built on something small before they had to depend on it. That took several weeks and mattered more to the outcome than any of the modelling.