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