Designing for Non-Determinism

Traditional software is deterministic - the same input always produces the same output. AI breaks this contract. Ask the same question twice and you might get different answers, different phrasings, or different levels of quality. For users accustomed to deterministic software, this is disorienting. It undermines confidence ("which answer is right?") and makes it harder to develop reliable workflows. Designing for non-determinism means acknowledging it rather than hiding it. Practical approaches include letting users generate multiple responses and compare them, saving and pinning outputs they like, providing controls that reduce variability when consistency matters (like temperature settings, explained in plain language), and setting expectations through onboarding that this tool works differently from traditional software. It also means rethinking error handling - when every output is slightly different, the line between "working as intended" and "something went wrong" becomes blurry. Designers need to help users develop judgement about output quality rather than relying on the binary working/broken mental model they bring from other software.