Get AI summaries of any video or article — Sign up free
Write the Docs Portland 2017: Even Naming This Talk Is Hard by Ruthie BenDor thumbnail

Write the Docs Portland 2017: Even Naming This Talk Is Hard by Ruthie BenDor

Write the Docs·
6 min read

Based on Write the Docs's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Names function as the first organizing label for new abstractions, so mismatches between a name and a reader’s mental model create real confusion.

Briefing

Naming in software is hard because names are guesswork that must fit human mental models—and when they miss, the damage shows up as confusion, frustration, and avoidable technical debt. Ruthie BenDor frames naming as one of the two “hard problems” in computer science (alongside cache invalidation), then argues that the real issue isn’t just cleverness or taste. Software is built largely by extending and amending other people’s work, so every new abstraction arrives with a name that becomes the “sticky note” on the filing system in someone’s head. If that label doesn’t map cleanly to what the abstraction does—or clashes with a reader’s context—people don’t just misunderstand; they start doubting their own competence and stop trusting the codebase.

Several concrete examples illustrate how naming fails when teams reuse words without respecting the meaning they carry. In one story, an events product avoids the heavy feel of “event” by calling them “invites,” only to end up with an email method that sends “invites” to people who have been “invited to an invite.” In another, Redux’s “containers” collide with a waste-hauling industry where “dumpster” is a loaded term; the result is a concept that feels obvious to one domain and jarring to another. BenDor also points to the broader problem of descriptive naming: reducing a complex concept to a single word inevitably drops nuance, and the name then evokes unknown assumptions in readers who may not share the same context.

She adds that naming mistakes persist because teams often don’t experience the pain directly. Bad names can become an empathy failure (“it doesn’t affect me”), a beginner’s mind failure (the author forgets what it was like not to understand), or a localization failure (people don’t recognize that the term carries emotional or cultural baggage). She cites “blacklist” and “blocklist” as an example where “neutral” technical terminology can still trigger strong connotations, and notes that standards bodies have moved toward “allow lists” and “block lists.”

Beyond emotional and contextual issues, BenDor argues that the first name is often wrong because teams don’t yet know the abstraction’s essence. She uses a Hitchhiker’s Guide to the Galaxy analogy: like a whale materializing in an impossible place, early projects make do with provisional names while the real shape of the work emerges. That guesswork is also why technical debt and refactoring are unavoidable: only after building do teams learn what the software is meant to do and whether the naming—and the design behind it—fits.

So what makes a name “good”? BenDor treats it as a balancing act and a judgment call: names shouldn’t be too long or too short, should follow style guides, avoid unnecessary ambiguity, and should be easy to pronounce and memorable without being misleading. Good names create “aha moments” by connecting an abstract concept to something tangible and setting correct expectations. Tools can help with mechanics—searching for collisions, enforcing style, catching inconsistencies—but they can’t replace the human judgment required for the hard part. Her closing message is practical: developers should treat naming as part of the craft, documentarians should flag missed marks, and everyone should remember that a bad name isn’t personal—it’s an opportunity to improve shared understanding.

Cornell Notes

Ruthie BenDor argues that software naming is difficult because names are the first “mental sticky notes” people use to file new abstractions, and those labels must match human context. Naming is guesswork early in a project, when teams don’t yet know the abstraction’s true essence, so the first label often becomes wrong and later work accumulates around it. Bad names persist due to empathy failures, beginner’s mind fading, cultural or emotional blind spots, and reluctance to pay the cost of renaming. A good name is a balancing act—clear enough to set correct expectations, not overly long, consistent with style, and memorable without being misleading. Since tools can only enforce mechanics, improving names depends on human judgment and feedback loops from developers and documentarians.

Why does BenDor treat naming as a core engineering problem rather than a cosmetic one?

Names act as the entry point into someone’s mental model. When a new abstraction arrives—often by extending someone else’s code—the name becomes the “sticky note” that tells readers where to file it mentally. If the name doesn’t match what the abstraction does, people can’t predict behavior, get confused about where it belongs, and may even doubt their own understanding. That confusion then forces extra explanation and increases the odds of technical debt because the design and expectations drift from the label.

How do the “invites” and Redux “containers” examples show naming pitfalls in practice?

In the “invites” story, the team avoids “event” because it feels too heavy, but the new term cascades into awkward semantics: an email method sends “invites” to people who have been “invited to an invite.” The word choice creates a confusing loop where the same label is used for multiple roles. In the Redux example, “containers” is a Redux concept, but in the waste-hauling domain “dumpster” is a sensitive term. For someone new to the domain, the mismatch between industry language and code terminology makes the abstraction harder to learn and remember.

What does BenDor mean by “descriptive naming is hard,” and why can’t one word capture everything?

Descriptive naming is reductive: a single variable, class, or API method name can’t convey all the implications and responsibilities of an abstract construct. BenDor’s rule of thumb is essentially that trying to pack total meaning into one word will fail. The result is that names inevitably evoke only a slice of reality, leaving readers to fill in the rest—often incorrectly.

Why do bad names persist even when teams care about correctness?

BenDor lists multiple failure modes. Empathy failures occur when the problems don’t affect the people making the naming decisions. Beginner’s mind failures happen when authors forget what it felt like to not understand. Localization failures arise when teams underestimate how terms land emotionally or culturally; “blacklist” is offered as a case where “neutral” technical language can still carry strong connotations, prompting some standards bodies to shift toward “allow lists” and “block lists.” Finally, teams may recognize the name is bad but can’t justify or execute the renaming work.

How does BenDor connect naming guesswork to technical debt and refactoring?

Early in a project, teams make their best guess about an abstraction’s essence, but they often don’t know it yet. BenDor uses a Hitchhiker’s Guide to the Galaxy analogy: like a whale materializing in an untenable position, projects survive with provisional naming until later. Once the software is built, teams can judge what it actually does and whether the original naming (and design) fits—driving the need for refactoring and the accumulation of technical debt when mismatches remain.

What criteria does BenDor propose for judging whether a name is good?

She frames it as a balancing act and a judgment call: names shouldn’t be too long or too short, should follow style guides, avoid ambiguity unless ambiguity is necessary, and should be easy to pronounce and memorable without being misleading. Most importantly, “good” and “bad” depend on human understanding—good names create correct expectations and enable “aha moments,” while bad names confuse, frustrate, obscure, or offend.

Review Questions

  1. Give two reasons BenDor says naming is guesswork early in a project, and explain how that leads to technical debt.
  2. Describe at least three failure modes that cause bad names to persist even when teams want quality.
  3. What makes a name “good” in BenDor’s framework, and how does that differ from what automated tools can do?

Key Points

  1. 1

    Names function as the first organizing label for new abstractions, so mismatches between a name and a reader’s mental model create real confusion.

  2. 2

    Software naming failures often come from context gaps: domain language, emotional connotations, and cultural assumptions can make “technically correct” terms feel wrong.

  3. 3

    A single word can’t capture the full meaning of an abstraction, so descriptive naming inevitably drops nuance and invites incorrect inference.

  4. 4

    Early naming is provisional because teams don’t yet know an abstraction’s essence; later learning exposes mismatches that trigger refactoring needs.

  5. 5

    Bad names persist through empathy failures, beginner’s mind fading, reluctance to pay renaming costs, and underestimating the ROI of better naming.

  6. 6

    Automated tools can improve naming mechanics (style enforcement, collision checks, consistency), but they can’t replace the human judgment required for clarity and expectation-setting.

  7. 7

    Good names create “aha moments” by connecting abstract behavior to tangible expectations and by illuminating what the concept is responsible for.

Highlights

Naming is treated as a human-mental-model problem: the label on an abstraction becomes the sticky note that determines how people file and understand it.
“Blacklist” vs “allow list” illustrates how “neutral” technical terminology can still carry emotional and cultural weight, leading standards bodies to change wording.
The first name is often wrong because teams guess before they know the abstraction’s essence; that guesswork is tied to why technical debt and refactoring are unavoidable.
Tools can enforce naming mechanics, but the hardest part—judgment about meaning, expectations, and context—still rests with people.

Topics

Mentioned

  • Ruthie BenDor