Developers: It’s always our fault.

Tips for calming our clients when we broke it.

William Belk
Published in
4 min readApr 3, 2021

--

My good bud Ryan Day has many deep wisdoms. He’s been my coding coach for almost ten years. I would know infinitely less if it wasn’t for him. He said something years ago that repeats in my head almost every week:

“It’s broken because you broke it. The code doesn’t lie. If it’s broken, it’s because it’s broken. If you touched it, you broke it.”

I would be working on a new code problem and I would swear to the moon that the language was broken or my logic was definitely correct, and so on. I was 99.95% always wrong.

When we’re talking to a friend, or a coding partner, it’s mostly fun if we make a tricky mistake. When we’re talking to a client or someone that has a financial stake in our app code, things can quickly devolve into a heated discussion, borderline argument, or loss of our client/customer relationship altogether.

Part of writing code and building apps that people use and trust means living in a constant low-level state of fear and anxiety. Launching new apps and features can be stressful. Things break, always, all the time. Sometimes the whole Internet breaks. When deploying new features, there is ALWAYS an edge case somewhere, somehow, that we didn’t account for. There is OFTEN some bug in our logic that was just tricky and we missed it completely. This is ok.

But no one cares. We don’t deserve any compassion from people that pay us money. It’s nice to feel understood, but when people are busy and stressed, they just don’t care. Something is broken because it doesn’t work—end of story.

I struggle with this mightily. I hate being wrong. I always think I’m right. I work hard. I try to think through complicated problems in a thorough manner. Yet, I make mistakes all the time. It’s just the reality of trying to solve hard problems. Making mistakes really stings; it does not feel good for the ego or the pride.

The tips below are things that I try to remind myself often, because I have a hard time being humble sometimes; I get argumentative when I should just shut up and assume that I broke something, because it’s broken… Maybe this list can help you too.

1. Assume that what someone is telling you is true, even if they are having a lot of trouble explaining the problem.

Some non-technical people have terrible trouble explaining complex problems that they are experiencing. That’s ok. Try to help them describe the problem with more precise terms and language. If two people cannot agree on the definition of a problem, it will be much harder to solve. The technical person is responsible for re-framing the conversation in a constructive way; not the other way around.

2. Assume that you are the problem.

Just assume that you did something wrong or overlooked something. It’s ok, it happens to all of us. My experience has shown me that I’m the problem, in advance! Just suck it up and accept it, don’t fight it.

3. Get your client/customer invested in the narrative.

Some problems are really cool edge cases that you never could have seen or understood in advance. Help your adversary get excited about how rare some of these cases are. “I didn’t see this because of a very cool race condition with browser cache. Only after the browser caches something, things re-render so quickly that xyz was not happening… Wow!” Your adversary might still be upset about lost time/money/etc, but if they see that you think it’s neat, they may soften up a bit.

4. Before and after you find the problem, be humble.

It’s ok to make mistakes; mistakes are guaranteed. Be humble and understanding with yourself. No exciting solution is easy, and it might require 3–10 attempts to solve a really complicated problem. More Ryan Day wisdom:

“You have to solve a problem three times to get it right the first time.”

“It’s not done until you hate it.”

Moreover, be humble in front of your client/customer. Apologize once you find the problem — even if it’s half your fault. If you are in front of a paying app customer, refund them a month of service in advance. Humility and proactive good will are very appreciated when people don’t ask for anything apart from a solution.

If you have any good gems to add to this list, please leave a reply.

Find me at WilliamBelk.com. Follow me on Twitter.

--

--