Being a Master Inquisitor

07 Sep 2017

Sometimes, how one asks for something is much more important than what is being asked for. Asking the right questions in the right way and in the right context can make all the difference in the answer it may or may not receive. People are, after all, not machines and will parse queries while considering the font. What this exercise and reading strives to teach is that software engineers, or “hackers” in this case, will typically respond to questions in predictable ways, and manipulating that response is a matter of respecting their intelligence and time.

Part of asking smart questions comes from what it does for the person asking them. In order to construct the ‘perfect” “smart” question to find the answer to a problem one has, the article by Eric Raymond describes a method that requires the asker to prove they did some work. The asker should prove that he or she made a decent attempt to solve their problem in a thorough enough manner. It also notes that the asker should, if possible and relevant, provide a snippet of their related code or what have you so that anyone attempting to assist may do so without having to devote time looking through unnecessary things. Through both of these methods, the asker might simply come upon the solution on their own, which is just fine. Personally, I agree with this; it gives a nice confidence boost to the asker and doesn’t clutter up forums with the same problems.

Another thing the article talks about is the wording of the question. While showing fellow software engineers that you put in work is important, you need to remember that they are busy, intelligent people who have to take time out of their day if they want to help you. Therefore, you should give them a reason to, and one way to do that is to have an interesting problem for them to solve, or at least convince them that’s what you’ve got. Woe betide you if your problem is difficult to solve by the usual solo methods, yet too boring to bother other people with. Raymond mentions the various channels to go to to get different levels of technical and specific expertise, so if you’ve got boring and difficult issues then you might as well go to Stackoverflow and pray.

Really, a lot of how to behave as a seeker of knowledge on the internet can be gleaned in maybe fifteen minutes per site if you just browse a few entries and see what goes over well. If you treat the potential bearer of the answer as an intelligent, busy person who has no real need to help you unless you give them one. If you’re on the right website (or asking the right person) the right question in a smart way you’re probably done enough. If you’re also polite, with a history of being thankful, giving credit where credit’s due, and make sure questions end with closure, then not getting an answer is just terrible luck.

Good

Bad

I feel as though these two examples give a good representation of a good way to ask a question on SO and a bad way.The good example shows a someone who includes rich and relevant details such as version number of language, concise example code, and evidence that they made a solid attempt to RTFM. They also thank both people that answered their question in a way that seemed sincere.

The not so smart example includes a giant chunk of mostly uncommented code with a vague question about an unknown system. This person originally tagged the post with the wrong language as well, and doesn’t respond to the one person that gave them a hint towards the right direction. I did my best to try find someone who didn’t obviously have English as a second language since they may have trouble wording their question due to the language barrier. Plus, I don’t really want to trash people who are just looking for an answer on the internet. I think Olaf (the helpful answerer in the not-smart question link) did just enough to help and remind Pedro how SO works.