An open letter about root cause

Dear Application Engineer,

You are here because it’s been tough lately. Your days feel harder. The dopamine loop your brain needs to let you feel successful took a detour and you are losing your way. You know you still care about our customers, how could you not? So, what is it?

It’s what is hardest about this work sometimes.

Sourcegraph is a customer-first company. We constantly ask ourselves, what is in the best interest of the customer? And sometimes that feels like a trick question. Sometimes what is in the best interest of the customer is saying no. Super intuitive, right? And always what is in the best interest of the customer is solving issues by getting to the root cause, not just solving the symptom.

Again, it’s what is hardest about this work sometimes.

Solving issues by getting to the root cause takes time. It also takes collaboration. You rarely can do it alone. And what if your teammates in engineering are already feeling pressure or stressed out or having a bad week? What about you? What do you have going on?

Temptation enters. It is so tempting to just call it good enough. The customer has what they need now; it will be fine. Software just sometimes doesn’t work. It will be fine.

Take a deep breath. Have a glass of water. Open the window or step outside and feel the air on your face. Sit down, I have something to tell you: It will never be fine. Software is created by humans and when it doesn’t work, there is always a reason. It will always come back and that is not in the customer’s best interest. It erodes trust. And when the customer snaps, it feels confusing because we’ve helped so many customers between then and now, we cannot hold space to see their perspective fully. It seems like it comes out of nowhere, but it never does.

Your job is to make sure the customer can move forward as soon as possible AND that we have something set-up for the deeper work to address the underlying root cause, taking the investigation as far as you can. Product’s and engineering’s job (in collaboration) is to prioritize when the engineering team will do that deep work. Engineering’s job (and heck yes, you can collaborate) is to do the deep work and figure out a lasting fix. We all care about our customers and there is always a lot to balance. If we each do our part, our future selves will thank us and our customers will become even bigger fans.

You know this. In your bones, you know this. It’s why you were hired to be a CSE. You are wonderfully innately curious. You are fiercely compassionate. Your ability to learn quickly is off the charts. Your skillset to investigate is beyond stellar. Your drive to solve problems is :chef kiss:.

Sometimes, we just need to be reminded.

Take another deep breath. Have another glass of water. Open the window or step outside and feel the air on your face again. You’ve got this!

Let’s break it down:

  1. Ask yourself: How confident am I that this won’t happen again; that we have done something to ensure this customer and/or other customers will not have to deal with this issue in the future? If you are not super confident, how will you reassure the customer you have done what is in their best interest and maintain their trust?
  2. Not super confident … remind yourself and your teammates in engineering what needs to be done.
    1. We need to get the customer into a working state as soon as possible, always
    2. Then, we need to figure out how lasting that fix is so we can gauge how to plan for a lasting fix
    3. File a defect or product improvement in the public tracker (the nature of the issue will determine which) and the product/engineering team can schedule the work for the lasting fix in to an upcoming iteration
  3. Share the GitHub link with the customer so they can follow along on progress and remind them they can ask for updates there, or in the shared Slack channel, or by emailing, or by talking with their CE.

No one expects hard things to be solved over night. We just don’t want to forget about or ignore hard things. We want to dig deep and help our teammates dig deep to find that precious root that holds all of the answers, that maintains an effortless customer experience … that gets us even closer to realizing our purpose:

We want to make it so everyone can code. A world where everyone, not just ~0.1% of the world population, can code will see faster and more broadly beneficial technological progress.

Again, you got this!