DevDictionary Best Practices for Developers and Teams
Get our best free resources and updates.
Ask three engineers on the same team what "the queue" refers to and you might get three different answers — the message broker, a specific topic on that broker, or a metaphorical backlog of pull requests waiting for review. None of them is wrong in isolation. Together, they're a slow-motion miscommunication waiting for the wrong moment to surface. Vocabulary drift like this doesn't happen because anyone is careless — it happens naturally, term by term, as a team grows and the system evolves, and it only gets fixed by deliberate team-level practice, not individual willpower.
Want expert help putting this into practice? Dev Dictionary can guide you through it.
Vocabulary drift is a team problem, not just an individual one
It's easy to treat inconsistent terminology as a personal habit issue — "that engineer just needs to be more precise." But drift almost always has a structural cause: a term gets coined casually in one context, gets reused with a slightly different meaning in another, and within a few months the team has two or three overlapping words for related-but-different things, or one word doing double duty for two different concepts. No individual engineer created that mess on purpose, and no individual engineer can fix it alone, because fixing it requires everyone to agree on the correct usage going forward.
This is why vocabulary consistency belongs in the same category as code style or naming conventions — it's a team-level convention that needs explicit agreement and periodic enforcement, not something you can leave to individual discretion and hope converges on its own. The practices below are concrete, repeatable rituals a team can adopt to keep vocabulary from drifting silently, the same way a linter keeps code style from drifting silently.
Practice: standardize terminology in code review comments
Related: Devdictionary - Essential Steps to Master Technical Jargon.
Code review is one of the highest-frequency touchpoints a team has, and it's an underused opportunity to catch and correct vocabulary drift before it spreads. When a reviewer sees a term used inconsistently with how the rest of the codebase or team uses it — a variable called cache that's actually a memoization layer, a comment calling something "async" that's actually just deferred, not concurrent — that's worth a review comment, the same way an actual bug would be.
A few habits make this practice stick without turning review into a pedantry contest:
- Comment on the term, not the person — "we've been calling this a 'worker' elsewhere, should this match?" reads very differently from "wrong word."
- Fix genuinely ambiguous or misleading terms even in comments and docstrings, not just in user-facing text — future readers rely on those just as much.
- When a review thread surfaces a real disagreement about what a term should mean, resolve it as a team decision and write it down somewhere durable, rather than letting the PR merge with the disagreement unresolved.
Over time, this turns code review into a quiet, continuous vocabulary-maintenance process instead of a one-off cleanup effort.
Practice: agree on naming conventions before arguing about implementation details
Teams routinely spend an hour debating how to implement something and five minutes on what to call it, when it should often be the other way around. A bad implementation is usually contained — it affects one service, one file, one pull request. A bad or inconsistent name spreads everywhere the concept is referenced: function names, variable names, log messages, dashboards, incident reports, onboarding docs. The blast radius of a naming decision is almost always larger than the blast radius of an implementation decision, which is exactly why it deserves attention first, not last.
A practical habit: when a new concept is being introduced — a new service, a new status field, a new type of event — settle its name and definition explicitly before writing the implementation, and write that name and definition somewhere more durable than the pull request that introduces it. Revisiting a name after the fact is expensive; agreeing on it up front is nearly free.
Practice: document decisions with the "why," not just the "what"
See also: Devdictionary Best Practices for Effective Technical Communication.
A decision record that only states what was decided — "we're calling this field status, not state" — gives a future reader a rule to follow but no way to extend that rule to a new, similar situation. A decision record that includes why gives them a principle they can apply on their own: "we use status for anything driven by an external system and state for anything we compute internally, because that distinction turned out to matter for debugging." The second version keeps paying off long after the original decision is forgotten, because it lets new team members reason about naming choices they weren't around for, instead of just memorizing a list of exceptions.
This applies just as much to vocabulary decisions as to architectural ones. When your team settles on a term, take the extra thirty seconds to note the reasoning, not just the conclusion — the reasoning is what makes the decision reusable.
Practice: rotate who explains a concept in standups or demos
It's common for one person — usually whoever built a given system — to become the default explainer of a concept every time it comes up, which quietly means only one person's vocabulary and mental model ever gets exercised out loud. Everyone else on the team develops a passive, receptive understanding of the term without ever having to actively use it, which is a much weaker form of knowledge and tends to fall apart under pressure, like during an incident when the original builder isn't available.
Deliberately rotating who explains a given concept — in a demo, in a standup update, in an onboarding session — forces more people to actively use the team's vocabulary rather than just recognize it. It also surfaces inconsistencies fast: if two different people explain "the retry policy" in two different ways, you've just found a drift point worth resolving, and you found it cheaply, in a five-minute standup, instead of expensively, during an incident.
Practice: revisit shared terminology whenever the team or stack changes significantly
Vocabulary that was accurate and well-understood a year ago can become stale without anyone noticing, particularly after a significant change — a new hire cohort, a major refactor, a new service replacing an old one, a merger with another team that has its own established terms. These moments are natural drift points, because the shared context that used to make loose terminology safe no longer fully exists.
Building a habit of explicitly revisiting terminology after these events — a short session where the team walks through terms that might now be stale, ambiguous, or duplicated — keeps the team's shared vocabulary honest instead of letting it fossilize around a system that no longer exists. For general software terms that don't need reinventing team by team, a plain-English reference like Dev Dictionary is worth pointing new hires to directly, which frees these team sessions to focus on what's actually yours: the names, conventions, and decisions specific to your codebase and your team's history.
Want the full guide?
Enter your email for free access to the rest of this article and our resource library.
Frequently asked questions
What is devdictionary - best practices?
Devdictionary Best Practices is covered in depth in this guide, with practical steps you can apply straight away.
How do I get started with devdictionary - best practices?
Start with the essentials in this article, then use the free resources from Dev Dictionary to put them into practice.
Can Dev Dictionary help with this?
Yes - Dev Dictionary is built to make devdictionary - best practices faster and easier, so you get a better result in less time.