Symptom

Identifiers that don't reveal intent — names like aFunc(), x, theData, temp, or one-letter loop variables that force every reader to reverse-engineer the code's purpose. The name fails to carry meaning, so each reader pays to recover it from surrounding code, comments, or git history.

Goal

Names read as the domain — a function's purpose, a variable's role, a class's responsibility — visible in one glance. Each identifier carries enough information that the reader builds a mental model without searching, and drops to the size of the name itself. The team's compounds downward as more readers encounter the canonical names.

Smellier version

function calc(d, t) {
return d * t;
}

Fresher version

function distance(speed, time) {
return speed * time;
}
Example source: Illustrative example written for this site; the smell itself is catalogued in Martin Fowler's Refactoring (Addison-Wesley, 2018), see the chapter on Bad Smells in Code.
Pressure

Every reading is a re-comprehension cost; bugs sneak in because what code does diverges from what its name suggests. Readers carry the wrong mental model into edits and ship the misread as plausible-looking code — from a stale name. The cost compounds in proportion to how many readers touch the file.

Tradeoff

Cross-repo greps, commit history, code comments, and string-literal references to the old name silently drift stale — the rename's reaches PRs the team wasn't planning to read. New readers see the new name; old readers carry the old name in their head, paying to recover the original intent every time they return.

Relief

Reduces onboarding time, accelerates code review, and lets future readers skim instead of decode. The per identifier drops from name-plus-context-recovery to name-only. Bug investigations stay local to the failing symbol instead of expanding into a search for what every adjacent identifier means.

Trap

Naming bikeshedding — endless rename churn for marginal clarity gains while the actual code structure stays unimproved. Each rebrand invalidates the team's accumulated reading fluency; reviewers spend the rename's blast radius on cosmetic deltas instead of substantive review, and the underneath the names stays unaddressed.