A lot of reporting still starts in a dashboard. Someone needs a number, a workbook gets built, and the logic lives in a calculated field or a one-off SQL snippet. That is fine for a first answer. It gets hard to maintain when several teams need the same metric.
In my work, analytics engineering means putting that logic in models that can be tested and documented. Sources land in the warehouse. dbt handles staging, business logic, and marts. LookML or another semantic layer holds the KPI definitions. When a number changes, I can show which model produced it.
I used this setup while moving reporting from Tableau toward BigQuery, dbt, and Looker. The tools matter less than having one place for grain, tests, and metric names.
When I teach SQL and BI at SAIT, I use the same sequence: start with a question, write the query or model, test it, then put it on a dashboard. Students get more out of that than memorizing syntax on its own.