Reflecting on Smart Questions

08 Sep 2016

Questions… Questions?

From the beginning of time, man has asked questions. Whether they be to himself, or his peers, questions have are the quintessential reasons that some things are even discovered today. Everything starts with a question. “Is the Earth round?”, “Why did this apple fall on my head?” These are a few examples of simple questions that have lead people like Sir Isaac Newton to come up with his ideas of gravity, and eventually, the laws of motion. Philosophers like Confucius create philosophical questions that make people think about human nature, scruples, and psyche. Some questions are filled with superfluous details, and others on the opposite end of the spectrum could make one ask if what they were reading was even English. Nowadays, a profusion of people, including software engineers, have difficulties with many software and coding problems, and come to the infinite knowledge pool known as the internet in search of answers. Some people still don’t put in the effort to write a properly formatted question, or simply don’t know how to and unfortunately one of the most important communication skills of a software engineer is to learn how to ask “smart” questions. Luckily, Eric Raymond has written an essay that provides guidelines for effective interaction with the open source community, so even can get educated on the matter and start asking questions that will intrigue readers to answer, rather than have them sitting in confusion in their desk chair.

Smart Question! Dumb Question?

To get some examples showing the difference between a “smart” question, one with a good amount of detail pertaining to the problem at hand, and a “not smart” question, I have found a well written question, and a not so well written question on stack overflow. Obviously, the first question is very well structured, has a profusion of details like a descriptive header, the expected results and actual results, configuration, including the code and known which function is currently having the problems. This seems very similar to the specific subject header’s section of Raymond’s essay and it seems very well written and there is no surprise that his question was answered within a few short days with a quick and helpful answer. As for the badly written question, it really isn’t that bad. However, it is definitely not as thorough as the last question and probably would not receive a thumbs up from Raymond. The question in the header seems simple, and the explanation seems easy enough to explain, although there is some bad grammar involved. Although it must not be descriptive enough to get a good answer, as of today eight people have viewed it, yet no one was able to respond to such a simple looking question. There are a lot more “not smart” way of asking examples, such as this. It’s been up for two years and the only answer that is given is someone stating that he should do more practice tests on individual parts of his code to narrow down a problem, instead of him just throwing out a wall of code to have the rest of the internet try to solve for him. People all over the internet just want quick and easy answers for their programming homework and probably just don’t know how to go into extreme detail, or are just too lazy, although I understand from a student’s standpoint, I wish I could just throw my code up online and hope that someone could just solve it for me in an instant; however, reality is a cruel place. I could look and find a million more examples of good and bad questions on stack overflow but I think that at this point, I have been able to understand the difference between a smartly worded question and a not so smartly worded one. It is also important to not that this does not really “prove” anything, and it isn’t exactly proven fact that a question with a superfluous amount of details will have better answers than a question without the superfluous details, although it seems that it would be more helpful and on average, produce a better selection of answers.

Conclusion

Conclusively, questions have been the catalyst in human epiphany’s, and are an important skill to train in this day in age, especially for software engineers. It is an important skill so that when dealing with a problem that requires one to go to their colleagues and peers for help, they can get an alacritous and helpful answer back, instead of confusing them. If all the software engineers working together on a project are able to ask precise questions, they will be able to solve the problem much more quickly and effectively. From the examples shown, I feel confident in my ability to recognize a smartly written question and a not so smartly one, and understand their consequences, due to the types of responses on each type of question. I feel like I may have not written the best questions in the past, and without reading Raymond’s essay, I may have just ended up confusing my peers instead. Ultimately, I have come to understand how to write a superb, detailed question, and how unequivocally important it is to be able to understand good question formatting, as it can save a profusion of valuable time and confusion when working on a project.