Principle of Least Surprise
Kind: principle
Layer: Contracts Core
Aliases: Principle of Least Astonishment, POLA
Record: architecture:principle-of-least-surprise
Severity: recommended
Scope: API, UX, module behavior
Canonical: Ontology
A design rule that an operation behaves the way its name and its conventions lead a caller to expect.
Listed in Architecture principles, after Intent-Revealing Interface and before Database Normalization.
Requires
Reinforces
Enables
Conflicts with
In tension with
Tensions
Contracts
Violated by
Refactored by
Severity
Category
Enforced by
Reinforced by
Linked from
- Anti-patterns
- Contracts / Interfaces / Compatibility
- Correctness / Determinism / Verification
- Schema / Canonical Data / Semantics
- Contracts / Interfaces / Compatibility
- Core Vocabulary
- Correctness / Determinism / Verification
- Schema / Canonical Data / Semantics
- Architectural Clusters
- Severity levels
- The resolutions