The Smart Question Checklist

25 Jan 2024

“There are no such things as Not so Smart questions”

I’m sure we’ve all had the experience where we were sitting in class and our teacher decided to say something along the lines of “There are no such things as not so smart questions,” typically in the beginning of the school year or amidst a completely silent classroom. The logic behind the phrase is that it is likely someone else could also benefit from the answer of our question, regardless if the teacher said something prior that answers it and even then, at least the one who asked would benefit as their question has been answered.

For me personally, I’ve seen this phrase lose its meaning over time and honestly lost its weight. There are videos I can recall watching where a common punchline is of a school setting with the teacher saying the same exact phrase of “There are no such things as not so smart questions” then a student saying a clearly not so smart question for comedic effect. However, I still understand where the phrase is coming from. It’s not so much to ask a question without any thought behind it at all, but rather to at least ask a question in the pursuit of knowledge. Even so, there has to be a better way to ask these not so smart questions, right?

Well, what is a Smart Question?

Unfortunately, forming a smart question isn’t always a simple task, but there are definitely some boxes to check when doing so. The most important of which is, and I can’t emphasize this enough, CLARITY. The skill to get your point across is not only vital in asking smart questions, but also very applicable to both inside and outside the field of software engineering.

We see instances of both smart and not so smart questions asked on StackOverflow, a platform where the community asks and answers, typically programming, questions. It is important to keep in mind, however, that saying there are a lot of questions on StackOverflow would be an understatement. From a software engineering perspective, smart questions are incredibly important for the responders and askers. Responders are really busy people, so the more clear, explicit, and not open-ended you can formulate your question, the faster you can receive a constructive response. We see this in Eric Steven Raymond’s document, where he states “The less of a time commitment you implicitly ask for, the more likely you are to get an answer from someone really good and really busy.” Make your subject headers concise and include a crystal-clear goal of what you want, such as tips or code. There must also be relevant background information that can provide a “road-map” of sorts for the responder as well.

Example of a Not so Smart Question

This is a very simple example of a not so smart question. The post title is “How would I generate nicer color palettes?” While this is concise and definitely a coherent, relevant sentence, it doesn’t really provide the readers with any useful information. This is important to keep in mind, as responders are trying to filter out smart questions for people who are more deserving of answers, as opposed to answering not so smart questions. The original poster (OP) also states that they would like to generate random color palettes, but doesn’t want to generate “a bunch of ugly colors” and asks how they would do so in JavaScript. This is an open-ended question, and as Raymond stated, “Open-ended questions tend to be perceived as open-ended time sinks.” As such, it is highly unlikely that you will receive an answer.

Aside from that, there is also the major issue that the entire post is unclear and very subjective. The post raises questions itself, such as “What constitutes as ugly?” The OP did not post any form of code snippets either of their attempts or thought processes. Within the same day of being asked, the post was closed and needed to be “more focused “ as a result of a lack of clarity. However, before the post was closed, it did receive some feedback. As one may expect, there weren’t any solid “answers.” They were either bringing up the lack of definition of “ugly” or how to determine their own definition of “ugly.” An interesting thing to note is that the post is edited and the previous version included “Thank you” at the end but in the current version, it does not have that. While courtesy isn’t required, showing that you respect the time of other people can increase your chances of getting a constructive response.

Example of a Smart Question

This is also a simple example but is a great smart question. The post title (“How do I check if an array includes a value in JavaScript?”) is much more specific, and while it does not go into the level of detail as the post itself, still provides enough information for someone to form a framework of how to respond to the question. The post’s contents is clear and asks “What is the most concise and efficient way to find out if a JavaScript array contains a value?” It also includes the OP’s code for how they approached it, and included a reference to another StackOverflow question that is related, showing that the OP is not asking blindly and did proper research prior to tackling the question.

As one would expect, the OP received plentiful constructive responses (and consequently more upvotes), while receiving a strong, solid answer regarding the fastest way to iterate through an array in JavaScript and even providing relevant methods. The responses also expanded on relevant topics regarding the prompt, even solutions for searches for objects as most of the solutions are under the assumption that we’re iterating through an array of primitives.

Smart Questions are your Answer

Prior to researching smart questions, I did not really put active thought into how impactful they can truly be. Going through Eric Steven Raymond’s “How To Ask Questions The Smart Way” changed my perspective on the representation of our question and how we’re really trying to present our questions so that they are more deserving of other people’s time. Everyone wants answers, but to get your answer you need a proper question. While we can make a list of checkboxes to go through in order to be certain that our question is a smart one, actually making smart questions is a life-long skill that goes beyond the software engineering scope. As such, smart questions are your answer, not just for a technical problem but for many inquiries throughout life.