The Art of Asking Questions in Software Engineering

07 Sep 2023

These days resorting to going on the web is an instinct when something confusing arises. This holds particularly true for software developers, as they are already working on a computer, with the internet readily accessible. Software developers tend to use technical forums for help, such as Stack Overflow. Although there are people willing to help on those forums, it’s important to ask a question that is deemed smart.

As stated by Eric Steven Raymond, smart questions are characterized by being precise and informative about the problem. To do that, provide as much relevant info about the issue’s cause, describe attempted actions, specify the environment, and talk about what your end goal is.

Why Smart Questions

Smart questions are essential for software engineers because it’s the key to getting quality responses. An informative question allows responders to spend less time trying to understand what is going on, and more time understanding how to fix what is going on. Therefore, more brain power is spent on the responses and they can end up being posted faster, benefiting both the asker and the responders.

Analyzing Questions on Stack Overflow

In this question, a user was trying to figure out how to remove a warning when compiling. This is an example that is deemed smart on Stack Overflow.

The post starts off talking about their environment. They state that a large codebase was upgraded to GCC 4.3. Knowing the version of this compiler already gives an insight into features related to the problem. Next, they clearly state what they would want to do to fix the problem, then they state their goal that they do not want to change over 564 files. Another descriptive detail is that they said they are running with -Werror. Due to all the useful context, many people answered, causing other discussions to start up and branch off.

In this question, a user was trying to figure out why iterating through a C++ vector gave an error. This is an example users should not follow.

The post only contains their coded snippet, with no other context. This forces people who want to help to look through the code. At least the title mentions that there is a runtime error. The way the title is written it seems like the asker didn’t bother to try to find the issue. This asker needs to mention what they have tried, or what particular part of the code they believe is wrong. Additionally, a specific error message can help. Fortunately, someone looked through the code and spotted the problem, but the post did get downvoted to a -14 score.

My Takeaways of Smart Questions

I never wrote any questions on technical forums because I always found my answers through web searches. Perhaps the issues on the code I was working on weren’t obscure enough. Now if I ever have an issue that no one has resolved on the internet, I have techniques to ensure I receive a detailed response and save developers’ time.