Subtle Developer-Client Communication Mistakes

phillipmalboeuf profile image Phillip Malboeuf ・4 min read

You've made these, I've made these, and we will continue to make these on occasion, now let's be conscious of them.

Have you ever asked yourself why a relationship with a client or colleague might have degraded over time? Why you feel such in sync with one client but not with another? Why a client or colleague might not have the same trust in you that they once did? 🤔

It's likely that nobody would be able to point out to you a specific error you might've made. My theory is that a series of small missteps eventually tips the scale, your client ends up frustrated or hurt, and they start looking elsewhere for a new developer.

But now, if we bring our attention to the details of our day-to-day communication or interactions, we may get incrementally more conscious of these subtle mistakes of ours, and slowly but surely, you'll see your relationships improve.

Hiding errors

Without a doubt, you should self-report errors you've made, the small ones just as much as the biggies. Do let your client know the technical details of an error (to a reasonable extent) and the impact it might've had on their business. It shows that you're aware of the quality of your work and that you're keeping careful watch over your client's business.

If you've made a mistake that has caused financial damage, immediately apologize and offer to reimburse (in cash or hours) at least part of the lost amount. And you know, you might be able to mark that off as a loss in your tax report, so it's okay 🤪.

Asking of someone without explanation

Surely, you've received one of those "HEY, do this for me, just do it!" emails before, how do they make you feel? To demand the completion of a task without context or without a visible goal is downright abusive. Always give a bit more context than is necessary when giving a task to someone, and if this has been sent to you, (even though you can infer things yourself) gently ask for more details. The two of you, you and your client, will start building a better feedback loop this way.

Pulling past mistakes forward

This one might relate more to a colleague-colleague relationship, but it can apply to any relationship really. So someone has made a mistake, don't bring it up again. Assume they've taken the necessary steps to correct it and prevent it from happening again. Bringing up old anxieties is cruel, only take into account the absolute current state of things.

Not asking for help

You will need to ask for help. I know that asking questions might make you feel like an imposter. But if it bothers you to ask, you need to realize that the people you work with most likely have a massive knowledge pool that doesn't overlap with yours. Just as much as a client or colleague needs you, you need them to get your work done. Asking for help shows that you're interested and invested.

Never questioning things

You know, a client will not resent you if you question or critique something about their business. Well most likely, you're questioning something they're already thinking about (remember your client has spent more time on their business than you have), but it shows that you're not just there to do your work and go home: you're on board and you're looking out for them.

However, there are wrong ways to go about this. Don't blame individuals, don't assume they haven't already considered solutions, and don't do it in public.

Opening with pointed questions

A conversation with a client or colleague about their work or business needs to have a gradient, a gradient that begins with general all-encompassing questions and then slowly dives down to more minute or pointed topics. Tackling a conversation that way would let you understand the "why"s of certain implementation details and your client will not feel like they're tortured under interrogation.

Overlapping conversations

This is why Slack is so good for the work environment, it lets you compartmentalize conversations. Having multiple threads for various topics like, feature-development, bugs, invoices, or lunch 🍕, keeps your feedback loops moving. Everybody would wince from an interruption about invoice payments or a server failure in a thread that is meant for feature-development.

Speaking to someone who doesn't have your attention

Ask before firing up a conversation with your client, especially one with a difficult or sensitive topic. Let them know you need their time, do provide context for your conversation, but wait until they say they're ready before you dive in. I believe this applies to emails as well, you may write to your client "Hi, like we discussed last week, I'd like to send you the details of my proposed invoicing schedule, is that okay? Thank you, from your developer". If you think that might slow down conversations, just try it and let me know if I'm wrong. (Hint: I'm not 🥳)

Overtly hating what another loves

Tastes can't be judged. All you need to do is to not rub your preferences in someone's face. Overt hate towards something someone associates themselves with can deeply sadden a person, and it will only entrench both of your positions. Ask them what they like about it, the answers will surprise you.

Being unaware of love or hate

This one is tricky, if you ask someone how they felt clicking through a website you made, or after a demo you presented, their answers will never be the ones you thought they'd be. So ask more often!

How about you? Do you have any subtle mistakes you'd like to share with the group?


Editor guide