Asking Questions The Right Way

08 Sep 2023

The Importance of Framing a Question

Asking questions is a great way to promote learning between multiple parties. It can allow for the one asking to learn something new while challenging and strengthening the understanding of a particular topic for the responder. However, software engineering is likely the field most well known for the use of online resources to solve particular problems. Chances are likely that any given software issue nowadays has been encountered by another developer in the past with documented troubleshooting and solutions present on a variety of forum platforms. With such a lucrative paying career practically relying on finding information online, it is no wonder that there can be quite the backlash when a question is framed in a manner that expects others to perform the hard work for the questioner. Acquiring useful information from the online community requires asking questions the right way, notably in demonstrating effort and willingness to work alongside the community to answer a particular question. Presented here are an example as well as a counterexample of Stack Overflow forum posters asking smart questions.

Demonstration of Past Attempts

This Stack Overflow post asks for help on formulating a SQL query to extract all posts from a WordPress database with associated categories. It has many qualities one would expect of a smart question. For one, the topic is very clear and concise: “SQL query to extract all WordPress posts with categories”, which conveys exactly what the poster is attempting to accomplish. The poster also demonstrates their past attempts at formulating a query by posting a source-code style formatting text of their attempted SQL query. In addition, they post the result that this query generates compared to the expected value. This demonstrates competence from the poster and the fact that they were not simply looking for another user to do all the work for them. One last point to be mentioned that is not present in too many posts. The poster edited their post many times with updates on troubleshooting steps that have been taken as they have continued attempting to develop a working query. This further illustrates the credibility of the poster as they are not only attempting to solve their issue but also demonstrates what has not been working for them which helps all readers learn from the poster’s errors.

RTFM

As a case of a type of question to avoid, this Stack Overflow post asks what the printf() function in C returns. This question was met by a variety of forms of banter from different users. However, all the responses can be summarized in the now infamous forum response of Read The F*cking Manual (RTFM). It is not difficult to see why users were annoyed by this particular question. In a language as old as C, and especially with a function included in a standard library, there exists a plethora of documentation available on the open Internet. In addition, the question posed was typed in grammatically incorrect all lowercase and was asked very bluntly. To quote, “in c printf() returns what?”. This heavily portrayed a lack of any effort at all on the part of the poster. This was taken as a sign of disrespect by many members of the community and as such was received very negatively.

Moving Forward

Asking questions can be a great way to learn from a community of other individuals. In addition, there may come a time when we run into a problem that almost no one else has ever encountered yet. If there is anything to take away from these example questions, demonstrating effort along with clear, concise communication of steps taken is an essential part of acquiring information and getting help from those most qualified to help with a particular problem. No one usually appreciates someone expecting to get answers without putting in any effort and the same can be said within software engineering. In one way or another, the effort put towards formulating a question properly will correlate with the quality of the received response.