Smart Questions = Fast Answers: Asking for Help with Efficiency
Software Engineer's guide to ask questions effectively, and avoid being ghosted :P
When I started my career, I never expected that asking questions is a skill. I always threw my questions to the team, with the assumption that everyone knew what I was working on.
I got ghosted a lot 😅
After I moved to a senior position, I started to get a lot of similar questions from junior devs. For example:
“Hi. My tests didn’t pass, could you help?”
How? What’s the context? What’s the error message? What have you tried? 🤔
And I realized that asking smart questions actually speeds up the process 🚀
In this post, I’m sharing all the tips and tricks that I know about asking questions.
First, Do Your Own Research
Before asking others for help, take time to explore the problem yourself. This step builds your skills and shows respect for others' time.
Also, for most of the time, answers are already there in the documentation.
Reading Error Messages when Troubleshooting:
If you’re debugging a coding issue, error messages often point directly to the problem. Make sure you don’t skip this part.
This process won’t necessary resolve all issues, but it is to establish sufficient context before asking questions.
For example, if we need the following error message while starting a Ruby on Rails server:
We can extract useful information from this:
The error is called “RuntimeError“
There is a keyword “circular dependency“
It has a list of files showing where does that error come from.
Try Googling unknown keywords and locate the files regarding your changes. Even if you end up not resolving problem, you already gain enough context.
Search Documentations & Chat History
Two places I would recommend searching are:
Company knowledge base: Confluence, Notion, or Google Drive
Slack chat history
My experience is that someone might have already resolved a similar issue before, but those knowledge were not shared or organized properly. Dig through those history. There might be an answer somewhere.
Find Answers on the Internet: Google & AI
Google is a developer's best friend. That’s why people usually call themselves “Stack Overflow Engineers“. Type in your error message or problem description. Add the programming language or tool name to get more specific results.
If that does not work, ask AI. The biggest benefit of working with AI is that you can be as specific as you want. It’s like asking a person directly. For example, instead of asking only:
circular dependency ruby
You can ask copy/paste the entire error message and add:
My operating system is …
My Ruby on Rails version is …
And here is my dependency chart (copy/paste the entire Gemfile)
I have tried X, Y, and Z.
This is a great first step to formulate a question before asking a human. You’ll probably get some guidance or help at this step.
Asking Questions: The Best Practice
The Right Time & Right People
First, find the right time. Ask yourself:
Have I tried everything?
Am I able to provide sufficient contexts?
However, if you have got stuck in the same issue over 24 hours, escalate it right away. Either the problem is too complicated, or the research is not on the right direction. Getting a second opinion to help facilitate the process.
Second, identify who’s the best person to ask:
If you have a mentor, go to them first.
If the a question belongs to a specialized domain outside the team, such as system administrations, go to find the experts in that field.
Information to Include in the Questions
Just like asking AI, include the following information in your questions:
What do you want to achieve
Error messages or logs
What you have already tried (and why those did not work)
Code snippets or PRs
Additional information such as dependencies, local environment setup, etc.
The urgency and impact
Here is a full example:
Hi. My frontend deployment pipeline is failing on CI. Could you help take a look?
Error message:
Error: Process completed with exit code 1.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ build: `next build`
npm ERR! Failed at the build script
Context:
Started failing after merging PR #1234 which updated Next.js from 12.3.4 to 13.0.0
Only failing in CI environment, builds successfully locally
What I've already tried:
Cleared CI cache
Verified node_modules is being correctly installed
Compared local vs CI Node versions (both using Node 16.14.0)
Reviewed build logs - no obvious dependency conflicts
Environment info:
Node: 16.14.0
Next.js: 13.0.0
CI: GitHub Actions
OS: Ubuntu 20.04
Would appreciate help identifying what's causing the build failure in CI but not locally. The deadline of this task is next Friday so appreciated if someone can take a look as soon as possible.
If People Are Not Responding: Find Out Why
Sometimes, you might ask questions but get no answers. This is mostly because the questions require some effort to tackle. Similar to the 2-minute rule:
People tend to reply to questions immediately if it takes less than 2 minutes.
If you don’t get a response within a few hours on Slack or from a person, I would suggest a follow-up. Try to understand why it’s hard from them to respond. Some common reasons why people do not answer:
They are not the right people
Ask them if they know about the answers. If not, ask them who would be the best persons to ask the questions.
If they don’t know either, post it in a public channel with a bigger group (e.g, the entire engineering division or tribe).
Context is not clear enough
Experts have their own perspectives, so it’s hard to provide all necessary context on the first try. In such situation, do a follow-up with a message: “Let me know if you need more information.”
The tone is not inviting collaboration
This happens sometimes, especially when things are urgent. If you simply drop a message such as: “URGENT: Need help with AWS permissions NOW!!!” It’s probably not going to work.
A better way to phrase it is to explain why it’s urgent, and show that you are aware of other people’s priority and time. Ask politely and be transparent.
They have other priorities
They might just forget to reply, or they are handling something else. It's okay to follow up after a few hours. A gentle reminder can be helpful.
If you still don't get answers, talk to your tech lead or manager. They can help you find the right people or resources.
Anti-patterns
When asking questions. Here are some key anti-patterns:
The XY Problem
The XY problem happens when you ask about your attempted solution (Y) instead of your actual problem (X). This can lead you down the wrong path.
For example, you might ask, "How do I increase the max_connections in MySQL?" when your real issue is slow database performance. By focusing on Y, you miss better solutions for X.
To avoid this:
Step back and think about your end goal
Explain the broader context of your problem
Be open to different approaches
Asking Too Broad or Too Narrow Questions
Finding the right scope for your questions is crucial. Too broad, and you'll get vague answers. Too narrow, and you might miss the big picture.
For example:
Too broad: “How does authentication work?”
Too narrow: “Why isn't this specific line of code working?” (without context)
Instead, aim for:
“I'm implementing JWT authentication in our Rails API. Here's my current approach [code]. I'm getting [specific error] when testing the token validation. Any ideas what might be causing this?”
Aim for questions that are specific enough to get useful answers, but not so narrow that they limit helpful insights.
Assuming Others Know What You Know
It's easy to forget that others don't share your exact knowledge and experience. This can lead to confusion and misunderstandings.
Some common context that we would like to provide:
Avoid using unexplained acronyms or project-specific terms. If you're working on a feature called "Project Unicorn," don't assume everyone knows what that means.
Recent changes: explain what has been changed recently.
Try to explain your thought process. This gives others insight into your understanding and helps them spot any misconceptions.
Last Words
Remember, there's no such thing as a dumb question in software engineering. Asking questions is how we learn and grow as professionals.
However, the better we can frame a question, the easier and faster we can get an answer.
Also, if you are answering other people’ questions, let them know how to ask a question properly. This help them ask questions more efficiently in the future!
Thank you for reading the post!
❤️ Click the like button if you like this article.
💬 Leave a comment if you have questions. Or let me know if you are interested in knowing any specific topics.
🔁 Share this post to help others find it.
Resources
Access structured 👣 learning paths if you’d like to move forward your software engineer career more systematically.
Contact
You can find me on LinkedIn or Substack.
If you want more content like this, consider subscribe to my newsletter.