The Illusion of Shared Language
Why the same word can point to different worlds: lessons from moving between support and software engineering
Thanh Trung Le · 5 min read
“The single biggest problem in communication is the illusion that it has taken place.” — George Bernard Shaw
George Bernard Shaw’s observation points to a subtle friction in daily life: we tend to assume that speaking the same language guarantees shared understanding. In reality, it seems each of us constructs a subjective mental model of the world, causing our internal language systems—our idiosyncratic mental lexicons—to naturally diverge. In a globalized workspace, collaboration routinely spans diverse cultural and environmental backgrounds. Consequently, even when two interlocutors share a language and phonology, they often appear to operate from distinct semantic frameworks shaped by regional vernacular, cultural nuance, and prior experience. Two people might utter the exact same signifier while referencing entirely different referents.
A dependency chain made of people
Transitioning from customer support into technical support and software engineering made me notice how much this semantic divergence seems to play out in daily problem-solving. From my perspective, delivering a functional system appears to resemble a sequential dependency chain—spanning architecture, code execution, and human communication—where a single point of failure can halt the entire pipeline.
Early on, whenever someone used a term that conflicted with my lexicon, my reflex was to prescribe the industry-standard definition immediately. Over time, though, I noticed that front-loading a pedantic correction usually just derailed troubleshooting. What seemed to serve as a far more effective heuristic was trying to identify the underlying reality they were gesturing toward first, ephemerally adopting their terminology to align our comprehension.
Heuristic: find the reality the other person is pointing at first. Borrow their words for a while; correct the vocabulary later, if at all.
“Your server is down”
A classic example from my support days occurred whenever a customer reported, “Your server is down.”
In an engineer’s lexicon, “the server is down” typically suggests an unreachable Kubernetes cluster, a dead ingress controller, or nodes failing health checks. Yet when I inspected our telemetry, the pods looked healthy and traffic flowed normally. Back when I was dogmatic about terminology, my knee-jerk reaction was to inform them the server wasn't down—which understandably left them feeling dismissed while their workflow remained broken.
What “the server is down” means | |
|---|---|
The customer | “I can’t get my work done right now.” |
The engineer | Unreachable cluster, dead ingress controller, nodes failing health checks. |
The telemetry | Pods healthy, traffic flowing normally. |
Instead of debating the definition of “down,” I tried temporarily mirroring their phrasing and translating it into observable system behavior to see if our mental models matched: “I see the system is blocking you right now—when it goes down on your end, is the whole dashboard failing to load, or does it throw a
504 Gateway Timeout right after you trigger a heavy bulk export?”Most of the time, they could authenticate and browse without issue, but a single worker pod was getting
OOMKilled while processing their massive payload, causing the reverse proxy to drop that specific connection. Once we resolved the bottleneck, I learned to gauge their cognitive bandwidth. If the customer was simply rushing through a busy workday, correcting their nomenclature seemed counterproductive. However, if they appeared relieved and genuinely inquisitive, that felt like a good moment to gently bridge the lexical gap—explaining how an isolated worker exhausted its memory while the core infrastructure remained online, allowing our shared vocabulary to evolve organically.Ambiguity cuts both ways
At the same time, this semantic ambiguity seems to cut both ways. Recognizing the fallibility of my own memory, I almost always default to questioning my own assumptions first. It is entirely plausible that my internal dictionary is flawed, or that both parties are applying equally valid definitions across different domains of discourse.
Same word, different layers
Consider a polysemous term like “endpoint.” In API development, when I say “endpoint,” I typically conceptualize a specific URI route and HTTP verb—such as
POST /v1/orders—designating a target resource. Yet to a network or security engineer, their lexicon might define an “endpoint” as the physical host, virtual machine, or client device terminating a network connection. It seems neither interpretation is erroneous; the exact same lexical label simply appears to map to different layers of the abstraction stack.Stakeholders and interviews
This same dynamic seems to surface with stakeholders and in technical interviews. A manager requesting “real-time data sync” between an order system and a warehouse platform might prompt an engineer to envision Kafka streams, webhooks, and sub-second latency—whereas the stakeholder might merely be picturing an automated 15-minute cron job to eliminate manual CSV uploads. Similarly, an interviewer asking about “microservices” could be referencing dozens of isolated containers communicating over an event bus, or perhaps just three separate Go or Node.js repositories sharing a monolithic PostgreSQL database. Disambiguating their context upfront seems to help avoid spending twenty minutes answering an unintended question.
They say | One person pictures | Another person pictures |
|---|---|---|
“Real-time data sync” | Kafka streams, webhooks, sub-second latency | A 15-minute cron job that ends manual CSV uploads |
“Microservices” | Dozens of isolated containers on an event bus | Three Go or Node.js repositories sharing one PostgreSQL database |
“The server is down” | An unreachable cluster | One export that times out |
“Endpoint” | POST /v1/orders | A laptop terminating a connection |
Before answering, ask one clarifying question about the context. It is usually cheaper than twenty minutes spent on the wrong answer.
Collaboration as distributed computing
In many ways, human collaboration feels akin to distributed computing. As the adage goes, “If you want to go fast, go alone; if you want to go far, go together.” While no single processor can outpace a cluster, Amdahl’s Law suggests that four networked cores rarely achieve the theoretical throughput of four isolated cores pre-loaded with complete state. Because human teams don't seem to possess pre-loaded shared context upfront, it feels like we have to construct it dynamically—meaning we often spend substantial bandwidth on state synchronization and lexical alignment rather than pure execution.
What the formula says, in team terms
S(N) is the speed-up a team of N people can reach, and p is the share of the work that can truly run in parallel. Everything else—syncing context, aligning on words, waiting on each other—is the serial part (1 − p).
With p = 0.8 and four people, the ceiling is 1 / (0.2 + 0.8 / 4) = 2.5×, not 4×. Shrinking the coordination share raises the ceiling far more than adding another person does.
Still learning
Minimizing that coordination overhead—and remembering to audit my own assumptions before correcting others—is something I am still learning day by day. I stumbled onto this friction years ago in support, and I feel I am still nowhere near mastering it, just constantly trying to refine how to align with people a little faster and more empathetically.
Since we all seem to be negotiating meaning on the fly with our teams, I would love to hear how others navigate this. Have you ever found yourself in a conversation where both sides used the exact right word from their own mental lexicon, only to realize you were operating in two completely different contexts? Tell me in the comments.