One aspect of being a successful engineer is asking great questions! We shouldn't be afraid to ask questions (they are critical to how we learn and grow) but, if you follow these steps, you'll ensure the questions you ask are high quality and you can learn the most from the answers you get.
I read a guide like this when I was growing as an engineer and found it to be one of the things that accelerated my personal growth drastically - I also found that, following these steps, I ended up answering my own question 75% more of the time.
Make sure you've searched for the answer in the documentation, Stack Overflow, in channels (on Slack or Discord), etc.
- Ask in the right place - find the experts for this
- Skip the hello, get straight the point
- Format is clearly
Content
- Give a clear title summary that helps people quickly triage
- Share what you're aiming to achieve - we often share the problem we're seeing but we've chosen the wrong solution for this problem or the extra context can help more
- Include all the information and context - share all the code (not just a line), all the logs (including commands run, not just the error). This helps the other people understand full context and reduce the back and forth.
- Detail what you've tried and what the outcomes of those fixes were (this is a key step - as you go through this it's a good chance to think through what else you should have tried before asking)
- Make it easy to reply - create a thread
Go back and close the loop - include the solution (maybe edit the original message) so others can learn from this and/or find the solution if they hit the same problem. Consider how you can prevent others from hitting the same blocker - can you refactor code so this isn't possible, add documentation, etc.
Finally - ask yourself how you could have solved this yourself, how did others help you in ways you didn't consider, and how could you change the way you approach problems next time.
This is a super compressed version of this great read: http://www.catb.org/~esr/faqs/smart-questions.html