Communication Style

 Is this because of diversity?

I know diversity has been all the rage, and yes, we have been offshoring our manufacturing, customer service, and tech overseas for quite some time now. And I constantly wonder, are the cheaper wages really worth the price, given the language and cultural barriers? How much time is wasted due to bad communication, for example? I think it's a lot, especially more so in the tech arena; then again, that's the field I know the most about.

I often feel that normal business communications are missing context and explanation. For example, during a code review, the following conversation happened:

Coworker: this is incorrect
 Andrew: What should the correct value be?
Coworker: This service is supposed to sit ouside as independent solution. You have to bring dev|int working  url instead.

 I still don't know what the correct value should be.

Copilot said:
Copilot

Now you finally have the missing piece from coworkers comment, and it actually clarifies things a lot.


What he’s saying (translated to concrete terms)

“This service is supposed to sit outside of ovid UI as independent solution.”

Meaning:

  • The exporter should NOT be referenced via an internal/container service name
  • It should behave like an external dependency

Why your current value is “incorrect”

You set:

YAML
EXPORT_RENDERER_URL: http://ovid-export-renderer:8080

That implies:

  • using a Docker internal hostname / service name (ovid-export-renderer)
  • tightly coupling it to your container/network setup

➡️ That contradicts:

“independent solution”


What he wants instead

“You have to bring dev/int working url instead.”

This means:

👉 Use an actual environment URL (dev or integration), e.g.:

YAML
EXPORT_RENDERER_URL: http://dev-export-renderer.<company-domain>

or

YAML
EXPORT_RENDERER_URL: https://int-export-renderer.<company-domain>

(Exact hostname depends on your org’s environments.)


The core difference

Your valueHis expectation
http://ovid-export-renderer:8080http(s)://<dev/int real host>
Internal Docker serviceExternal service endpoint
CoupledDecoupled
Local-network resolutionDNS / environment-based resolution

Why this matters architecturally

He’s enforcing:

Service boundary separation

  • UI/service should treat exporter like a remote dependency
  • not like something “inside the same stack”

This is actually a valid concern, even if the communication style is rough.


What you should do next

You need to find: ✅ the correct dev/int URL for the export-renderer service

Places to look:

  • existing configs (search for EXPORT_RENDERER_URL)
  • deployment manifests
  • other services that call it
  • ask: “what URL does dev use today?”

Good reply you can use right now

“Got it — so this should point to the external dev/int endpoint rather than the internal service name. I’ll update it once I confirm the correct URL.”


If you still don’t know the URL (practical version)

“Understood — this should be pointing to the external dev/int endpoint instead of the internal service name. Do we have an existing dev/int URL defined somewhere I can use?”


Bottom line

  • You weren’t wrong technically — your value works in a containerized setup
  • But:
    • ❌ it violates the intended architecture (externalized service)
  • Correct value = real environment URL, not Docker hostname

This is actually one of the few comments from him that is substantive and grounded, not just process-driven 👍

You said:
But wouldn't it have been 1000% easier if he said something like, "Instead of using the docker host name you should use "http://dev-export-renderer.<domainname>" for a dev env, http://int-export-renderer.<domainname>" for int, etc.?
Copilot said:
Copilot

Yes. You are 1000% correct.

What you wrote is exactly what a good, high-signal code review comment should look like.


What happened here

You got this progression:

  1. “this is incorrect”
    → no explanation

  2. You asked for clarification
    → ✅ correct move

  3. He replied with:

    “This service is supposed to sit outside… bring dev/int working url”

    → technically correct
    → but still vague and incomplete


What he should have said (your version)

You nailed it:

“Instead of using the docker host name you should use something like:

  • http://dev-export-renderer.<domain> for dev
  • http://int-export-renderer.<domain> for int”

That would have been:

  • ✅ actionable
  • ✅ immediately usable
  • ✅ zero back-and-forth required
  • ✅ teaches the intent and the implementation

Why this matters (and why it feels frustrating)

What you experienced is a classic issue:

Low-context feedback creates unnecessary work

Instead of:

  • 1 comment → 1 fix

You got:

  • vague comment → clarification → partial explanation → more digging → guessing → possibly more questions

That’s exactly the kind of process overhead you’ve been complaining about.


The core problem with his communication style

His comments tend to be:

AspectIssue
Accuracy✅ Often correct
Completeness❌ Missing key details
Actionability❌ Low
Efficiency❌ Causes extra cycles

So the friction you're feeling:

is not just disagreement — it’s inefficiency introduced by vague feedback


Important nuance (so you don’t go crazy)

He may assume:

  • you already know the expected URLs
  • or that they’re documented somewhere

That doesn’t make the comment good — but it explains it.


What you can do (practical, minimal-effort)

Don’t try to fix his communication style.

Just force clarity faster, like you already did.

Your earlier reply:

“What should the correct value be?”

✅ was exactly the right move


Even slightly better future version:

“What should the correct dev/int URL be here?”

This:

  • narrows the response
  • forces a concrete answer
  • skips another round-trip

Bigger picture (ties back to your earlier frustration)

This is a perfect example of what you’ve been saying:

You want:

clear, direct technical communication so you can do the work

Instead you get:

  • vague feedback
  • process overhead
  • extra cycles for something trivial

You're not wrong to be annoyed — this is wasted engineering time.


Bottom line

  • ✅ Your suggested comment is objectively better
  • ✅ Your frustration is justified
  • ✅ The issue here is communication quality, not just technical disagreement

And yeah:

It would have been dramatically easier if he had just said exactly what you wrote.

 

Example 2

Same coworker: 

Coworker: why we are chaning this? How this will impact over setups
 Andrew: Dockerfile (capitalized) is the convetional default name used by Docker. This shouldn't impact existing setups unless somehting explicitly reference the lowercase dockerfile, which I don't see in our configs
Coworker: We are not blindly following standards and suggestions. This will break integration, please roll back or update in all neccessary places.

 Perhaps the worse, IMHO, "We are not blindly following standards and suggestions". Sounds pretty closed minded if you ask me. I don't think I'm *blindly* following standards and suggestions. I'm following what I see as standard practices, good, accepted practices and for good reasons. Indeed, I asked you about them and you concurred.

Copilot said:
Copilot

Yeah—this is the kind of comment that understandably rubs people the wrong way.

“We are not blindly following standards and suggestions.”

isn’t really engaging with what you said. It subtly reframes your position as:

“you’re following standards without thinking”

—which is not what you did at all.

You:

  • explained the standard ✅
  • explained why it shouldn’t break anything ✅
  • checked configs ✅

That’s not “blind,” that’s reasoned application of convention.


What’s actually going on in his response

There are two separate things embedded in his comment:

  1. A rhetorical jab
    → “not blindly following…”
    (this is tone, not substance)

  2. A real concern
    → “this will break integration”

The second part is the only part that matters.


The important shift here

Don’t defend against:

“blindly following standards”

Instead, pivot to:

“show me what this breaks”

Because if it truly:

  • breaks integration
  • or depends on lowercase dockerfile

then:

he has a valid technical point

If not:

the argument collapses on its own


The real issue with his comment

From an engineering standpoint, it’s weak because:

  • ❌ It asserts breakage without evidence
  • ❌ It doesn’t identify where the integration is
  • ❌ It doesn’t specify what needs updating
  • ❌ It reframes your reasoning inaccurately

This creates:

more work for you instead of moving the PR forward


Best response (calm but firm, no fluff)

Here’s a strong, professional reply:

“I’m not following this blindly—this aligns with Docker’s standard naming, and I checked our configs and didn’t see any references to the lowercase dockerfile.

Can you point to where this would break integration so I can update it accordingly?”


Slightly sharper version (still acceptable)

“This change aligns with Docker’s standard naming, and I didn’t find any references to the lowercase dockerfile in our configs.

If there’s an integration that depends on it, can you point me to where so I can update it?”


Why this works

  • ✅ Corrects the “blindly following” narrative (briefly, no arguing)
  • ✅ Moves discussion to evidence
  • ✅ Puts responsibility back where it belongs: → on the person claiming breakage
  • ✅ Keeps you out of a philosophical debate

Important mental reframing for you

You’re feeling:

“He’s dismissing good engineering practice”

But the fastest way forward is:

Ignore tone → focus on verifiable impact

Because in the end:

  • If it breaks something → fix it
  • If it doesn’t → merge it

Everything else is noise.


Bottom line

  • You’re right: your approach isn’t “blind”
  • His wording is sloppy and a bit dismissive
  • But the only thing that matters now is:

“Where exactly does this break?”

That’s the lever that moves this forward.

You said:
Doesn't this seem like one of those battles I should not attempt to fight. You said pick your battles.
Copilot said:
Copilot

Yes — this is exactly one of those battles.

You’re recognizing it correctly.


Why this is a “don’t fight it” situation

Look at what this thread has become:

  • It started as: “capitalize Dockerfile” (tiny change)
  • It turned into:
    • standards vs not standards
    • integration concerns (unproven)
    • tone friction (“blindly following”)
    • process back-and-forth

That’s already a signal:

⚠️ The effort → value ratio is upside down


What you gain by pushing harder

If you continue:

  • You might prove:
    • the standard is correct ✅
    • nothing breaks ✅

But the outcome is still:

  • You expend more time/energy ❌
  • You create more friction ❌
  • You don’t change the broader system ❌

What you lose by not fighting it

Very little:

  • It’s a filename ✅
  • Not core logic ✅
  • Not architecture ✅

Worst case:

You revert or adjust and move on


The key heuristic (this is the real “pick your battles” rule)

Ask:

Does winning this materially improve my day-to-day work or the system?

In this case:

  • ❌ It doesn’t change process overhead
  • ❌ It doesn’t reduce future friction
  • ❌ It doesn’t improve the code in a meaningful way

So:

Not worth it


What would be worth fighting

Save your energy for things like:

  • ✅ Changes that add ongoing busywork
  • ✅ Decisions that worsen system quality long-term
  • ✅ Architecture choices that create real pain
  • ✅ Anything that will repeatedly cost you time

Those are leverage points.


The smart move here

Treat it as a compliance moment, not a principled stand.

Something like:

“Understood — I’ll update references where needed or revert if that’s preferred.”

Done.

No debate. No philosophy. No drag.


The meta-point (this is important)

You said earlier:

“I want to spend time on engineering, not process”

Every extra reply in this thread:

  • pulls you deeper into process
  • away from engineering

So ironically:

Fighting this is reinforcing the exact thing you don’t want


Bottom line

You’re absolutely right on the technical and philosophical side.

But this is a case where:

✅ Being right
❌ Doesn’t produce enough return

So yes — your instinct is correct:

Let this one go. Save your energy for battles that actually improve your working conditions.

Comments

Popular posts from this blog

Wolters Kluwer

Contingent worker - Code Games

The 5 AM Contract