background-shape

A Junior Engineer’s Guide to Asking Good Questions

by Riley Raso

Hello, my name is Riley, and I’m a Junior Engineer here on the Outschool engineering team. As the title suggests, I’m going to be speaking about some tips I’ve used to keep communication efficient, effective, and enjoyable for everyone involved. One of the most common forms of communication you will participate in as a junior engineer is asking questions. It is common, and often encouraged, for junior engineers to ask a lot of questions as they grow their knowledge of the codebase and systems used in the development process.

The way you ask questions is going to set the stage for how people will perceive you, since it will take up the majority of your interactions. Because of how important this interaction is, here are some tips on how to ask questions in a way that makes people see you more positively, while effectively communicating the information you have.

Lead with what you have done

This first tip is relevant to all questions you ask. Every time you ask a question, you should lead with what you have done to try and answer the question already. It helps all questions to be in a format like “I have done X but still do not have an answer for Y, is there anything about Y I should know about?”. This format conveys to the person you are asking that you have done the work to try and answer it, but you no longer know how to get the answer. By using this format, you are conveying that your first reaction to not knowing the answer was to take an action, rather than rely on someone else.

There is a theory I heard while listening to the podcast “Developer tea”, that everyone is either a work maker, or a work sink. A work maker creates more work than they do, and a work sink completes more work than they make. If you ask a question without doing any work, you are communicating that you are a work maker. Starting with what you have done to find the answer shows that you are willing to do the work needed to take work away from others, proving you are a work sink.

Another reason to lead with what you have already done is to get a better answer. Chances are that you are asking this question because the answer isn’t where it should be. By starting with what you have done to get the answer, you prevent any unnecessary back-and-forth, in which the person suggests looking in the place you have already checked. You also avoid making the person you are asking feel like you are wasting their time by not communicating that you have already looked in the place the answer should be. This simple statement at the start of the sentence, sharing what you have already done, will likely get you an actionable answer a lot faster and more efficiently.

An example of this tactic being used was during my onboarding, when I was learning the development process here at Outschool. I was confused about the details around MR approvals; there was a section of the documentation that talks about approvals but was not very clear. I could have asked something like “What should I know about the MR approval process here at Outschool" If I had, I probably would have gotten the answer “Look at the documentation here”. this answer wouldn’t have helped since I had already read the documentation and the answer was not there. Instead, I led the question with what I had done to find an answer: “Our Notion documentation mentions 1-2 approvers for an MR, but doesn’t say who should be selected as an approver, are there more details I should know about that?” By leading with what I had done, I enabled my coworker to give me helpful information and, later, update the documentation, clarifying them for future readers.

Frame your questions as requests for feedback

When a question involves an action, this tip will help you show initiative and actively drive your work. When asking someone what you should do, you should frame the question as a suggestion and ask for feedback rather than ask an open-ended question. An open-ended question like “I have finished all my tickets for this sprint, What should I take on next?”. puts the work of finding your next ticket on the person you are asking. Instead, before asking, take the initiative: look at the backlog, find a ticket you think would be a good next step, and frame the question in this way: “Hey I have finished all my tickets for this sprint, I have looked in our backlog and find [Ticket X] do you think this work fits with our priorities?”. With this question, you are looking for feedback on your suggestion, rather than an answer.

Rather than giving work to the person you are asking; when you ask for feedback, you show that you have already done the work. Asking for feedback minimizes the work that needs to be done by the person you ask—all they need to do is tell you if that ticket is a good next step, and possibly suggest a different ticket for you if it isn’t. Both of these questions will get the same result, however the first question requires work from your manager and the second question shows your manager that you have done the work.

Furthermore, framing this question as a request for feedback allows you to have more of a say in what ticket you get to work on next! Asking an open-ended question like “What should I take on next?” forfeits your input over what work you will be assigned next. When you suggest next steps instead, you can choose to work on tickets you are passionate about doing, so long as they fit inside the priorities of the team at that time. This puts you in the driver’s seat of your professional development, allowing you to suggest tickets that will build your resume of skills, take on interesting problems, and refine your development skills by using new techniques and solving new problems.

For example, on my last project, we were developing a new frontend feature that needed a new set of tests. I had never written frontend tests in a professional setting, as most of the testing I had done was on personal projects or DevOps scripts. Once I finished my tickets for that sprint, I reached out and suggested I pick up one of the testing tickets, since it would give me a good opportunity for professional development. I framed the question as a request for feedback: “my current group of tickets are just about finished up. I was looking into the backlog for tickets and was wondering if you thought the testing ticket was a good selection for a new ticket?” My manager agreed and as a result I got to write my first tests of production-level frontend code. If I had not suggested the ticket, my manager probably wouldn’t have given it to me since I had no track record of writing frontend test code, but because I took the initiative, I now have a proven track record of writing frontend test code, which I can add to my skills moving forward.

Summary

Your communication shapes how coworkers perceive you. Used effectively, questions are an opportunity to build your reputation and take initiative. Two ways you can ask questions that build your reputation are to Lead with what you have done to take work off your coworkers plates and Frame your questions as requests for feedback to shape your own work and show initiative. Thank you very much for spending some time with me, and I hope these tips help you build the reputation you would like for yourself!

About the Author

Riley Raso

Riley is a Junior Software Engineer with the habit pod.