Weak is Strong: Asking Questions Well is a Superpower

Weak is Strong: Asking Questions Well is a Superpower
“If I never ask questions, no one will ever know I don’t know what’s going on!” - Junior Engineer

In my ten years of engineering as an IC and manager, one of the most common mistakes I see junior engineers make is not asking enough questions 🤐

Driven usually by intense impostor syndrome, you toil away quietly on a cryptic error log, frantically Googling and asking ChatGPT for help, but you make no progress for 2 days.

You're remote now so your manager can’t see the sweat on your brow as you frantically hit cmd+tab hoping the answer will magically appear on your laptop.

You’re stuck in a self-feeding spiral of confusion and inadequacy.

Let's check in with your manager

“Hmm, Jr Eng hasn’t asked anything about their task in over a day and they said it’s going fine. Hope they’re making good progress then.

Oh… looks like they’ve committed nothing and asked no questions in meetings or slack. I see no activity in the last 24 hours. Do they even know what they’re doing? This is worrisome. I’ll have to reach out and check in”.

Weak is Strong

The truth is, in engineering, showing ‘weakness’ and asking lots of questions is often a sign of strength. In fact, I’d argue the more senior you are, the more questions you ask. This is because senior engineers know that building good software is a process of discovery and iteration. Confident, experienced engineers are not afraid to say “I don’t know”, but then roll up their sleeves and say “Here’s what I’ll do to figure out the answer”.

From a manager’s perspective, every question you ask reflects growth, a curiosity to learn, a chance to teach, and also an implicit progress check-in. It makes their job easier, letting them know what problems you’re encountering and how they can better support you.

Manager secret: managers hate having to reach out to you to unearth what your problems are and dig up a status update. While that’s certainly a part of a manager’s job, you can make it easier for them by just telling them! This is one of the best ways to “manage up”.

Ok, so you know you should ask more questions, but how should you ask questions?

Here’s 5 tips on how to ask questions more effectively as a software engineer:

1/ Do your homework

Before you ask a question, make sure you’ve gone through all documentation and other resources you have available to you. Is there a README on that repository you’re working on? Have you Googled or searched GitHub issues for your error message? Did your Tech Lead share some guides that are relevant to your work?

Do your homework and check out existing resources first before taking up someone else's time.

2/ Understand your team’s norms

What are your teams norms around asking questions? Some teams like a free flowing slack channel where people are constantly asking questions. Others don’t mind directly DMing and interrupting someone as long as the question is important. There are lots of different ways teams implicitly, or explicitly support a question asking culture. Figure out what the norms are on your team, ask your manager if you’re unsure, and adhere to those norms.

3/ Present all information clearly, and at once

When asking a question, make sure to include the homework you did in part 1, add as much context as possible, and have a clear ask for what you need help with. Put it all in one single message.

Your goal is to make it as easy as possible for someone to see your request and help you quickly, without them having to dig for more information.

For example, let’s say you’ve come across some cryptic error message that you can’t debug. Here’s a bad way to ask a question:

Hey, I keep getting ERROR 3934: X is undefined. Can someone help me?

Here’s a better way:

Hey team, I’m trying to finish <Ticket #123> and I need some help debugging an error message.

Here’s my <draft PR>. I keep getting ERROR 3934 when I run the ./execute script. Here's what I've tried so far:

* The error doesn’t have much description. I’ve searched our docs and Google but can’t find anything about this specific error code. It seems to be related to the FooBar Library, but I hit a deadend beyond that.
* Removing Line 305 removes the error, so I know it’s originating from that line, but then Ticket #123 isn't complete. I’m not sure what exactly in that line is causing the issue.

Has anyone seen this error before or have advice on how to further debug?

4/ Model more senior engineers

Watch how well established and more senior engineers ask questions. You can learn a lot from how they ask questions and how they think.

5/ Practice answering questions yourself

Don’t just take but give!

Even if you are the most junior member of your team, answering questions helps you learn and improve. Even if you don’t know the answer to something immediately, you can use another teammate’s questions as a way for you to test your knowledge. As you continue to be helpful to your team, this will also build your social capital and a strong sense of teamwork.

Check out the Taro resources on asking great questions (and this video in particular).

A safe environment

Lastly, I’d be remiss not to mention that asking questions does require vulnerability and humility. It is the job of a manager and the whole team to create a safe environment where everyone feels like they can ask questions (assuming they’ve done their homework!).

If you are being shut down or criticized unfairly for asking questions, chances are you’re not in a good environment to learn and grow. In this case, I’d recommend talking to your manager or skip manager, or finding a different team or company when practical.

The next time you get stuck and fear asking a question for appearing weak, take a deep breath. It's okay! Collect yourself then take a systematic approach to trying to answer your own question, before asking to your team.

Remember that questions are an important form of communication, and a sign of strength.

Connect with me

I'm Ernie and I've worked as an engineer, manager, and consultant at companies like HubSpot and Brex.

I write a newsletter on part-time work in the tech industry: Part-Time Tech. You can also follow me on LinkedIn, Twitter, and Medium.