A prioritized decision backlog and a safe plan for the data changes behind it.
A company can have impressive analytics and still struggle to answer basic questions. Data work becomes useful when somebody can act on the answer, the definitions are shared, and the path from source to decision is dependable enough to trust.
Start from an unanswered decision
Ask a business or operational owner which decision they cannot make confidently. Capture what they need to know, when they need it, and what they would do differently with the answer. “We need a dashboard” is a proposed interface. “We cannot tell which onboarding step is losing new customers” describes a decision problem.
Rank questions by the value of the decision and the effort required to make the evidence trustworthy. Include the work needed to act on the answer. A churn model has little value if nobody owns the intervention or if the prediction arrives after the customer has already left. Simple reliable reporting may be the better first investment.
Trace definitions and data lineage
Choose one important number and trace it to the source. Define the unit, time window, exclusions, owner, and treatment of corrections. “Active customer” may mean different things to product, finance, and sales. A meeting that agrees on a definition can resolve more confusion than a new storage platform.
Document where data is copied, transformed, joined, and manually edited. Look for spreadsheet steps that only one person understands and identifiers that change between systems. Add checks around the failure modes that would change a decision: missing records, duplication, stale data, unexpected nulls, and changes in upstream meaning.
Design the path into production
Decide who operates the pipeline and who responds when it stops. A prototype notebook is not automatically a production service. Define scheduling, access, failure reporting, backfills, cost limits, and how results become available to the person making the decision. Keep the implementation small enough that the team can maintain it.
If machine learning is warranted, establish a useful baseline and a way to evaluate the result before adding complexity. Identify the data rights and operational responsibilities involved. Decide how the output will be monitored and what happens when it is unavailable or no longer useful. A technically accurate model can still be the wrong product or operating investment.
Evolve the database through safe intermediate states
Treat schema and data changes as separate parts of a transition. Introduce compatible structure, deploy code that can use it, backfill in bounded batches, verify the result, and only then tighten constraints or remove the old path. Check the actual database engine’s locking and performance behavior before running a large change.
Plan mixed-version behavior and recovery. A new application may write data that an old version cannot interpret, so application rollback is not always sufficient. Keep verification queries and a cleanup owner with the migration. Temporary compatibility becomes a liability when the old readers have disappeared but nobody removes the transitional code.
Change the schema through safe intermediate states
Add nullable structured address fields.
Update writers; backfill with validation.
Check both representations; review ambiguity.
Switch readers, then remove old storage.
Put it to work
0 of 7Use these prompts to check your next step. Your marks stay on this device.
Watch for these failure modes
- Equating a data strategy with hiring model specialists.
- Publishing a number without its definition or freshness.
- Treating a successful schema change as proof that the data is correct.

Data decision brief
Write it before building a dashboard, a model, or a data change.
10 prompts: Decision and owner, Action the answer could change, Required timing, and 7 more.
Data resources
Open the original work directly. Our notes explain what each resource contributes and where its advice needs context.
Building a data team at a mid-stage startup: a short story
An explicitly fictional company story about a data team whose impressive models compete with basic unanswered business questions.
Evolutionary Database Design
How database change can evolve with application development through collaboration, versioning, and small migrations.
Database Migrations Done Right
A concise explanation of why schema transitions become easier when application and database releases can move independently.
Practical Deep Learning for Coders
A free, code-first deep-learning course covering vision, language, tabular models, and deployment. A useful hands-on route for an engineering leader returning to ML.
Machine Learning Crash Course
Modular ML lessons on regression, classification, data preparation, overfitting, neural networks, embeddings, and production systems.
Database Change Management
How versioned database changes, shared visibility, and communication make schema work part of software delivery rather than a separate release bottleneck.
Managing Data Science Teams
A field guide covering data-science hiring, management habits, knowledge sharing, collaboration, and scaling a specialist team.
How to Structure a Data Science Team
An overview of data-science roles and organizational models, useful when deciding where specialists should sit and how they connect to product teams.
Awesome Falsehood
An index of mistaken software assumptions about names, time, addresses, identity, geography, and other messy parts of the real world.