I started my career as a Java Software Engineer without any prior Java knowledge. I didn't study Computer Science at the university and I didn't do any software internship. All I knew was how to create static web pages with HTML and CSS.
I became the first Java Engineer in the team and my role was to take over the development of the internal tool we inherited from another team. I had to get up to speed really fast in order to survive.
The thing I couldn't get away without was asking questions. A lot. There was so much to learn about the tool, domain and Java that I never ran out of questions. I was determined, relentless, out of my comfort zone and I'm pretty sure I was annoying. In the back of my mind there was this thought that I'm asking too many times and they would start hating me, but the drive to fit in the role was stronger.
Though the members who built the tool always answered. However frequently I went they always gave me guidance. I guess I was lucky for having such helpful and resilient mentors, because there was a wide gap to bridge with me. In the end I came through and I have been in software for the last decade, probably thanks to all those questions.
Asking questions is a pretty important thing to do in software teams (most likely in any kinds of teams). So if you are ever pondering whether you should ask a question or not, rather ask away! Okay, maybe it's not always that simple because many factors come to play. But worry not, I put together a list of tips that could help you manage these factors and make you an effective asker!
First, try to get prepared as much as you can around the topic you are about to ask. There's a chance that you might bump into the answer. However, if you don't then you still took some time to dive deeper in the area. Presenting that you already have a level of understanding helps a lot in communication.
For example let's pretend you are given a task that revolves around hypergraphs and you know nothing about them. (Let's also pretend that most knowledge of hypergraphs has been wiped off the internet.) There's an expert in the company, but before you ask you could study around the matter. In this case the best start is to learn or revisit what graphs are. For instance understand that they are made of vertices and edges, there are undirected and directed graphs, and there are unweighted and weighted graphs.
The point is to gain a good base knowledge of the topic you are requesting some help about. This will save you and the person you are meaning to ask some time and reduce the friction of the interaction. Here's a visualization of a hypergraph if you were wondering how they look:
A question might arise in you at any time, but you won't always say it out loud right away. We have been taught in ways when to speak up and when to stay quiet. So it's important to be aware of what situation you are in. There are several anchors to this. I'm dividing them into two groups in the following sections: the rather objective ones and the more subjective ones.
It's a good idea to gauge who might be interested in the answer for your question so you ask it in front of the right audience. If you are asking questions of taxation on a global all hands of a multinational company, you are probably wasting everyone's time who doesn't tax in your country. Similarly, think of the time presumably necessary to answer your question. Avoid asking long, open-ended questions if you are short on time, for example during a stand-up. In a fully remote setup you have much less meta information on what your coworkers are occupied with, but you can resort to checking their calendars and chat statuses. So check these before you try to engage in a discussion with someone to diminish the "Why aren't they answering?" feeling.
Some other circumstantial things need to be "felt out". Cultural backgrounds vary a lot, for example I remember the feeling of not being too encouraged to ask questions in the classroom. Why? Because if you asked something dumb or obvious you got shamed by the class or even the teacher. We might carry these ideas throughout our lives as golden truths, so it's good to keep in mind that we are not sitting in classrooms anymore. Another, maybe even greater part of this is that each country and region has their unwritten laws of how you should behave at the workplace. It's really hard to put your finger on these things, but try to be aware of these patterns as well.
This is a no brainer, of course being polite always helps. It's good to remind ourselves to approach our colleagues respectfully. Surely people are more likely to answer a question that's asked nicely. Furthermore, keep in mind that the person might not be available to answer your question at the moment. Understand that you may need to wait for them to come back to you, or schedule a meeting in the next few days or weeks.
I already mentioned respecting other people's time earlier. Being terse is respecting the time of the person you are asking. No one wants to answer long-winded questions or verbose emails. On top of it, no one wants to pay the mental tax of figuring out the important details of a lengthy request. Phrase your questions with just the necessary information and you will save the receiver from spending a lot of mental energy.
Take a look at the following fictional email.
I'm Bob, the latest member of the Hugs Team. I'm writing you because I would like to learn about the technology you used when implemented Haha's. We are looking to integrate Hugs beside Haha's in the next quarter, so it would be really helpful if you could answered the following questions.
Hugs would be something similar like Haha's, but they would represent a different emotion. (It's still a positive one, but could be used for expressing gratitude.)
[some in-depth questions here]
Thanks in advance and looking forward for your answer!
Have you noticed any unnecessary parts? I'm not saying the above email is wrong, but it could be optimized. It's more polite than necessary, burdens the reader with lot of extra information, and has some redundant pieces.
Now take a look at the optimized version.
We are looking to implement a feature called Hugs that's similar to Haha's in the next quarter. We would appreciate if you could answer these questions:
[some in-depth questions here]
We made the email shorter yet polite and still kept some crucial contextual information. Another commonly used medium is instant messaging like Slack. Whenever you are writing someone, it's better to write your request as a whole message and not line by line like you would speak in a real life dialogue.
IRL type of messaging:
Bob 9:37 AM
Bob 9:42 AM
Can I ask you some questions?
Alice 9:44 AM
Bob 9:45 AM
What library did you use to implement the frontend components of Haha's?
Alice 9:49 AM
We used... [Alice proceeds to explain the answer]
Notice how 8 minutes passed from the start until Alice received the question, and 12 minutes until Bob got an answer. Instead, Bob could have opened with something like this:
Bob 9:37 AM
Hi! Could you tell what library did you use to implement the frontend components of Haha's?
Alice 9:39 AM
We used... [Alice proceeds to explain the answer]
With this type of messaging Alice received the question straight away and Bob got an answer after 2 minutes.
Sometimes you will get some long and complicated answers, and sometimes you will get some short answers but won't use them for a long time. Either way you might forget about the answer. Taking notes will help you with that. This seems unnecessary in a mailing for example, but another benefit of taking notes is that it forces you to actually interpret the answer. Interpreting immediately will push you to find potential holes in your understanding, thus driving you to ask more questions to get closer to what you need.
All in all, try to be really attentive when you are receiving an answer so you can avoid the need of repeating your questions in the future. Moreover, from the answerer's perspective it's much better to explain something to someone who is really listening. People can easily tell that, like you can tell that the dog below is paying high attention to something.
You will certainly find yourself on the other side of Q&A. In that case be mindful of the tips above. Try to stay approachable so people will remember that you are someone they can ask. Set up reminders for emails you want to answer later, set up reminders even for inquiries received via Slack. It takes some effort, but people will learn that you are reliable.
Consider helping others when they ask as part of your job because the success of your company might just depend on it. Be helpful and nourish a great culture that will lead you and your peers to great wins.
This isn't a serious advice, rather a ridiculous last resort. If none of the above worked, try following some guerrilla marketing-esque tactics: State something blatantly wrong loud enough and in time someone will come and correct you anyways. Alternative explanation by David Khourshid:
David K. 🎹You can solve *any* problem if you believe in yourself, put your mind to it, and tweet the wrong answer then wait 5 minutes.13:37 PM - 30 Nov 2020
I hope these tips gave you a confidence boost to ask more often!