All writing04 / 10
AI Mar 13, 2025 9 min read

Why your first ML model should be embarrassingly simple

The first model in production teaches you more in a week than a perfect model in a notebook teaches you in a quarter. A practical case for shipping something terrible — on purpose — first.

David Park
Head of AI
Share
AI
9 min read
Issue · 2025

Almost every ML team we've worked with shares the same pathology: they have a model that's 6% better than the baseline in evaluation, and zero models in production. We've helped a dozen teams fix this. The fix is always the same, and it always feels wrong to the team for the first week.

The fix is to ship the worst-performing model that meets the absolute minimum bar of usefulness, route real traffic to it, and treat everything you learn next as the actual project. Eighteen months later, the teams that did this have working ML platforms. The teams that didn't are still polishing notebooks.

What 'embarrassingly simple' looks like

For most production ML tasks, your first model should be one of: a simple logistic regression, a small XGBoost ensemble, an off-the-shelf LLM with a basic prompt, or — and this is the one people resist most — a hand-written rule. Yes, a rule. If your task is 'flag the suspicious transactions,' a hand-written rule that flags transactions over a certain amount from a new device is a perfectly reasonable first model. It will catch more fraud than zero models do.

The point isn't accuracy. The point is to get the operational layer in place: data pipelines that move features to the model, observability that catches drift, a retraining loop you can trigger on demand, a rollback path, a way to compare versions. None of this exists in a notebook. All of it has to exist before any model is genuinely 'in production.'

What you learn that the notebook can't tell you

Real traffic teaches you what your offline evaluation can't: which features have lower quality than you expected, which inputs your model has never seen before, which users are gaming whatever signal you're using, where the long tail of weird-but-legitimate behavior lives. Every one of these is invisible in a curated eval set.

Your first model exists to surface these surprises while the team's emotional investment in the model is still low. When the surprises are bigger than your model can handle — and they will be — you can swap the model out without anyone getting precious about it. After the third or fourth model, your team has internalized the operational discipline. That's when you start chasing accuracy.

The trap of waiting

The strongest case against shipping early is 'we'll embarrass ourselves with a bad model.' This is almost always a misread of the audience. Internal users tolerate a bad model that's improving more than they tolerate a long silence. External users almost never notice the accuracy of a model — they notice the latency, the explanation, and whether it's useful for their task. None of those are improved by another week in a notebook.

We have one rule for any ML engagement: a model serving real traffic by week four, behind a feature flag, observable, and rollbackable. Not better than the alternative. Just serving. Everything else flows from that constraint.


Written by
David Park
Head of AI · Igknight Tech
Found this useful?
Share

Want this kind of work on your project?

One conversation, honest pricing, recommended engagement model — within a business day.

Start a project