Tout système possède une complexité irréductible qui ne peut pas être éliminée. On peut seulement décider qui la gère : l'utilisateur ou le système. Larry Tesler, ancien de Xerox PARC et Apple, a formulé ce principe. Simplifier l'interface au-delà d'un certain point transfère la complexité côté utilisateur. La question n'est pas d'éliminer la complexité mais de la placer au bon endroit.
Automatiser les choix techniques que l'utilisateur ne devrait pas avoir à faire. Pré-remplir les formulaires avec des valeurs par défaut intelligentes. Accepter que certaines interfaces restent complexes si le domaine l'est. Ne pas cacher de la complexité derrière des menus imbriqués sous prétexte de simplification. Le coût de la simplicité côté utilisateur se paie en développement côté système.
L'email a déplacé la complexité du routage postal vers les serveurs : l'utilisateur tape une adresse, le système fait le reste. Google Maps masque la complexité du calcul d'itinéraire derrière un simple champ de destination. Les IDE comme VS Code absorbent la complexité du build avec des configurations par défaut prêtes à l'emploi.