Asking questions as a software engineer


It has been 6 months since I have started my internship at Lyra Network as a software engineer, and 3 months since my internship turned into a real software engineering job. During this period, you are expected to know little or nothing about the job, and thus, asking questions is mandatory. I would like to share some hints that I have picked up during this period.

Why asking questions is hard and why you should do it

Asking questions is not easy.

First, It shows that we don't know something, and usually, we don't like not knowing something, especially in a work environment where we are evaluated on our performance and our expertise.

One of the problems with asking questions is that the period where you should ask lots of questions (ie when you enter a new work environment) is when you are the least comfortable doing so.

The more you know, the least questions you need to ask

The number of questions you ask should be inversely proportional to your knowledge about a specific topic.

But you also have to avoid the trap of not asking any questions because you are supposed to know the topic and be an expert.

And that brings us to another pain point about asking questions.

It is easier to ask questions when you are expected to

As an intern or even a junior software engineer, you are expected to ask questions, so people might be more willing to answer, and your ego is not damaged, because you are okay not knowing. But the task becomes harder when you are more experienced and you are supposed to know your stuff. Imposter syndrome might start to kick in, and you start thinking that your new coworkers will find out that you are a fraud ... or you might not care and ask the question anyway. In this case, good for you.

Asking questions is a two-way exchange

Asking questions is beneficial for you because you benefit from years of experience in a matter of minutes in the form of your coworkers. Completing a task could take days if you try to complete it by yourself, but only a few hours if you ask for starting point before starting. In this case, you saved yourself some time and you also saved your company some money, because yes, you are paid to get the job done, not to be a superhero that completes every task by himself without any help.

On top of that, having a newcomer that asks interesting questions is a real asset for a team, because it can highlight problems only a newcomer can see.

For example, if you start working on an issue, but you spend an entire day looking for more details and asking multiple people about the process, it could mean that the description was not detailed enough, or that the documentation is lacking.

What you have to do in this situation is write down what you have learned, and create a new documentation page on your documentation tool of choice, so that the next person facing the same issue can benefit from it.

This process is way easier to apply when the company you are in has adopted a growth culture and people around you see the benefit of learning and improving bit by bit.

How to ask questions

So how to ask questions then you might ask? Here are some tips :

Ask the right questions

The questions you need to ask are the ones that you feel you will have a hard time figuring things out by yourself, and getting help might save you hours or days of work.

Do not be lazy. If it is possible to get the answer, even if it is hard, you should try that first. On top of that, you learn more effectively when you are struggling compared to when you get the answer right away.

Choose the right moment

You need to understand the context you are in. Some moments are more appropriate than others.

If you have a question on a low-priority task, and your coworker is struggling with an urgent task that needs to be done today, you might better write it down and ask it at a later moment.

On the contrary, daily stand up are a great moment to ask questions. Everyone is here and they are listening to you! ( they should be ). But be aware not to take too much time, and continue the discussion afterward if there are still things that need to be tackled.

Do your part of the job

When you are about to ask someone a question, be prepared.

Things like:

  • know why you are asking the question
  • be confident that you can discuss the problem
  • remember how you have failed to solve the problem so far
  • be concise but put all the relevant details

Remind yourself that you are going to take time from a coworker, probably disturb him or her and even destroy his/her mental model that has taken hours to build.

Choose the most appropriate person

Before firing your questions at anyone close to you, think about which coworker is the most relevant to answer your question.

Your first try is usually one of your teammates, but you might be redirected to several persons before getting to the right one.

If you know someone knowledgeable about the topic you are wondering about, you should go directly to that person.

This process gets easier when you start to know more people and get a sense of who knows what in the company.

Batch your questions

This technique is very efficient and I have used it thoroughly at the start of my internship.

Here is the step-by-step process :

  • Dive deep into a topic with a goal in mind
  • when you encounter something that you can't figure out, write it down in form of a question
  • continue until you feel you can't make progress by yourself anymore
  • go fetch the expert on the topic and ask him when he/she will be available to answer a few questions
  • ask the questions

In this way, you will be prepared and the person will have an easier time understanding your thought process and might even predict your next questions.

Use asynchronous communication

If you feel more comfortable asking questions by text, go for it.

It allows the person you ask to answer when he feels like it and to collect his thought before answering. And now that remote work is more popular, it might be your only option.

The downside is that you will have to wait to get your answer, but that is part of the game.

Record what you learn

Asking a question for the first time is normal, asking a question for a second time is fine, but if you keep asking the same question over and over again, the problem might be on your side. To avoid this situation, make sure that you will remember what you have been told by taking notes. As the amount of notes you take grows, you will start to structure them, and it will help you create a mental model of how things work globally. On top of that, you can use your notes to improve the shared documentation if you see it is lacking on a specific topic covered by your notes.

Do not ask

This is a bit contradictory to the idea of this blog, but sometimes, you just have to get the job done. There might be nobody able to help you right now, or you might be the most knowledgeable person on the topic.

The mindset

Adopting the right mindset will help you ask questions in a better way, and get more out of it.

First, you need to ask questions with confidence, so that the person answering the question feels like if he gives you the right information, you will be able to figure things out. Of course, deep down, you could have no clue of how to do it, but you must be confident that you are going to figure the stuff out.

Secondly, you need to adopt a growth mindset. Ask questions not only to get unstuck but to acquire knowledge and feel that you are making progress. You need to be willing to learn, not just get the knowledge, get done with your current task, and forget about what you learned the next day.

Finally, you need to keep being curious. After few months in a company, it is easy to get into a routine, where you get used to how things are done, and you do not rethink as much as when you started at the company. Don't forget that there are always things to improve on, and new concepts and practices to learn about.