When Certainty Meets Chaos: AI and the End of Deterministic Engineering
When Certainty Meets Chaos: AI and the End of Deterministic Engineering
“Over the past decades computers have broadly automated tasks that programmers could describe with clear rules and algorithms. Modern machine learning techniques now allow us to do the same for tasks where describing the precise rules is much harder.” — Jeff Bezos
That one sentence captures a shift that I think many software engineers haven’t fully processed yet.
The Deterministic World Software Engineers Built
Software engineers live in a true/false world. Our entire discipline is built on it. Algorithms terminate or they don’t. Tests pass or they fail. Conditions are true or false. Given the same input, you get the same output. Every. Single. Time.
And this discipline works brilliantly. It powers medical systems, trading platforms handling trillions of dollars, banking infrastructure where a single bug could cost millions. If something breaks, we trace the root cause, fix it, and improve the system toward perfection. That’s what we’re trained on. That’s what we’re good at.
Software engineers built a perfect digital world — one where everything is predictable, debuggable, and knowable.
Then AI Showed Up
AI is probabilistic, not deterministic. Feed it the same input twice, you might get different answers. There’s no stack trace. No root cause. No single line of code to fix.
That’s not a bug. That’s the feature.
AI’s flexibility — its ability to handle ambiguous inputs, adapt to context, and generate novel solutions — comes from its non-determinism. You can’t have one without the other.
And this is where many software engineers get uncomfortable. We’re so adapted to the perfect digital world we created that non-determinism feels like a flaw. It feels broken. It’s either true or false — and AI is neither.
But is non-determinism actually a flaw? Or are software engineers just not used to it?
Non-Determinism Isn’t New
Step outside the digital world for a moment.
Manufacturing engineers have been dealing with non-deterministic systems for over a century. Every production line has variability — material inconsistencies, equipment tolerances, environmental conditions, and humans in the loop. No two runs are exactly identical.
Do manufacturing engineers panic about this? No. They design around it. Statistical process control, quality feedback loops, tolerance ranges, inspection checkpoints. They’ve built entire disciplines around managing variability and still producing reliable outcomes.
The same goes for civil engineering, chemical engineering, aerospace. These fields operate in the physical world where non-determinism is the default. They don’t expect perfect predictability — they engineer systems that produce reliable results despite variability.
Software engineers are the exception, not the rule. We built a digital world so perfect that we forgot the real world doesn’t work that way. And now AI is bringing that real-world messiness into our systems.
What Non-Determinism Enables
Here’s where it gets interesting. Non-determinism isn’t just something to tolerate — it’s what enables solving harder problems.
Take Amazon’s recommendation engine. In the early days, it was rule-based: “Customers who bought X also bought Y.” Deterministic. Predictable. Limited.
But how do you write rules for a customer who buys baby products, sci-fi novels, and camping gear? How do you capture seasonal preferences, browsing context, time of day? You can’t. The rules become impossibly complex.
So Amazon switched to machine learning. Instead of writing rules, the system learns patterns from billions of interactions. It’s probabilistic. The same customer might get different recommendations at different times. And it works — the recommendation engine now drives 35% of Amazon’s revenue. Netflix reports 80% of viewing comes from AI recommendations.
This is what Bezos meant: tasks where describing the precise rules is much harder. Not impossible to automate — just impossible to automate with deterministic rules.
The shift isn’t from “manual” to “automated.” It’s from “rule-based automation” to “learned automation.” And that shift unlocks problems that software engineers couldn’t touch before.
So What Now?
I think the lesson is simple.
Non-determinism isn’t a flaw in AI. It’s what allows us to automate complex business processes that we couldn’t before — processes where the rules are too hard to write, where context matters, where judgment is needed.
Other engineering disciplines have been designing around non-determinism for a century. Software engineers can learn to do the same.
So here’s what I’m doing: I’m stopping myself from asking “how do I make this deterministic?” and starting to ask “what problems can I now solve that I couldn’t before?”
What complex process in your domain has resisted automation because the rules were too hard to write?
That’s probably where AI fits. That’s where the opportunity is.
It’s up to us to find out what.
References
-
Bezos, J. (2017). Amazon Shareholder Letter. Quote on machine learning and automation.
-
Linden, G., Smith, B., & York, J. (2003). Amazon.com Recommendations: Item-to-Item Collaborative Filtering. IEEE Internet Computing.
-
Walturn Research. (2026). The Collapse of Deterministic Software Engineering in the Age of Probabilistic AI. Walturn Insights.
-
ACM. (2025). Restoring Reliability in the AI-Aided Software Development Life Cycle. Communications of the ACM.
-
Xin, D., et al. (2025). Challenges and Paths Towards AI for Software Engineering. MIT CSAIL Technical Report, arXiv:2503.22625.