// signal · engineering note

When Not to Use AI

AI adds complexity; complexity must earn its place. Know the scenarios where it doesn't.

Avalith Editorial TeamNovember 10, 20265 min read
When Not to Use AI

The conversation around AI adoption tends to move in one direction: faster, smarter, more capable. Fewer people ask the inverse question: when is AI the wrong tool? That's the question worth asking.

AI is a powerful abstraction layer. It trades predictability for flexibility. When a deterministic algorithm will do, that trade is a loss. When a rule-based system or a lookup table suffices, introducing a neural network or a language model adds surface area for failure, latency, cost, and maintenance burden. The fact that AI can solve a problem does not mean it should.

The pattern emerges clearly once you've seen it: teams reach for AI because it's in the air, because it's possible, because "everyone else is doing it." What they often should be doing is slower, older, clearer work.

Deterministic Problems Disguised as Complex Ones

Some problems feel hard because they involve a lot of data or branching logic. But they are fundamentally deterministic: the right output is always computable from a fixed set of rules, and those rules are knowable.

Consider a routing system that assigns tasks to workers based on skill, availability, and geography. This is often a constraint satisfaction problem. It can be solved with linear programming, greedy heuristics, or branch-and-bound search—approaches that are fast, auditable, and produce the same result every time. Wrapping it in a model introduces variance, requires labeled training data, and obscures why a particular assignment was made. If you need to explain the decision to a manager or a worker, a rule is clearer than a black box. If you need to optimize cost or speed predictably, a rule is more reliable than a model.

The same applies to data validation, schema mapping, or workflow orchestration. If the logic is fixed and can be written down, do that. Write it down. Push it through code review. Version it. This is not glamorous. It is correct.

When You Don't Have Enough Data

Machine learning thrives on volume and variance. If your problem space is small, static, or well-understood, a model adds overhead without payoff.

Imagine a system that categorizes incoming support tickets into 5 or 6 buckets—billing, technical, product feedback, and so on. If your volume is a few hundred tickets per month, and the rules are stable ("if the message contains 'invoice' or 'payment', it's billing"), a rule-based classifier or a simple decision tree will outperform a neural network. It will be faster, require no retraining, and break in ways you can debug. A language model trained on those 300 tickets will overfit. It will develop patterns that don't generalize. It will fail in production on an edge case you didn't see in training.

This is not a knock on AI; it is a statement about data. ML is an investment that pays off at scale. Below that threshold, the setup cost exceeds the benefit.

Problems That Benefit from Explainability

Some decisions need to be defensible. A loan rejection, a hiring decision, a content moderation action, a medical recommendation—these have human stakes. If a human challenges the decision, you need to explain it. "The model said so" is not an explanation; it is an abdication.

When explainability is a hard requirement—not a nice-to-have but a legal or ethical constraint—AI is often the harder path. A rule-based system is transparent. A decision tree is auditable. A Bayesian classifier shows you which features moved the needle. A neural network shows you feature importance after the fact, if you're lucky, and often that importance is misleading or incomplete.

There are techniques for model interpretability, and they are improving. But they are themselves complex, and they add layers of reasoning that a simple rule does not require. If you can meet the requirement without them, you should.

Problems Where Latency Matters

Inference has a cost. Every millisecond counts in high-frequency systems: real-time bidding, fraud detection, rate limiting, search ranking.

For some of these problems, a pre-computed lookup table, a hand-tuned heuristic, or a classical algorithm will be orders of magnitude faster than a model, and the accuracy gap may be acceptable. If your system can reject 99% of fraudulent transactions using three simple statistical checks, and the remaining 1% would be caught by a model at 500ms latency, you may choose to accept the 1% leak rather than add latency to every decision. The tradeoff is real, and it deserves explicit reasoning.

Language models are particularly latency-heavy. Generating a 200-token response takes hundreds of milliseconds. For many applications—autocomplete, spell-checking, simple classification—this is unacceptable. The older solution, the simpler solution, or the deterministic solution may be the right one.

When You Haven't Tried Simplicity First

This is the most common mistake: jumping to AI without validating that the problem requires it.

Before adding a model, try a rule. Before training, try a lookup. Before building a generative system, ask whether a template, a search, or a retrieval system suffices. These sound obvious in retrospect. In the moment, they are easy to skip. There is no conference talk about "we used a straightforward if-else and it worked perfectly." There is no cachet. There is only correctness and simplicity.

The discipline is this: for every AI feature, write down the simplest possible alternative. Implement it. Measure it against your success criteria. Only if it fails should you add complexity. When you do add AI, you do so because you have evidence that it crosses a threshold the simpler approach could not.

The Real Cost of Unnecessary Complexity

Every model you ship is a service you must operate. It requires retraining pipelines, model monitoring, version management, and fallback logic when it breaks. It requires people who understand it. It accumulates technical debt.

Unnecessary AI is unnecessary complexity. It slows your team. It makes your system harder to reason about. It creates failure modes that are subtle and hard to debug. These costs are real. They accumulate in production.

The inverse of "move fast and add AI" is not "never use AI." It is "move fast and ask why." Why does this problem need a model? What does it buy us that a simpler approach does not? What does it cost us? If the answer is not clear, do not build it.

This is not risk-aversion. It is engineering discipline. It is knowing when to use a tool and when to step back and do the work that actually needs doing.