Why smart questions are smart.

06 Sep 2023

Why asking smart questions matter.

Asking smart questions is important in software engineering because it facilitates efficient problem-solving, reduces misunderstandings, and aids in producing innovative solutions through effective communication. Smart questions demonstrate a commitment to clarity, which is vital when navigating intricate landscapes of coding, architecture, and user requirements. Users who have accumulated knowledge of what makes a question “smart” ask well-researched and clear questions, it helps them get relevant and timely answers, saving time for both themselves and those who provide assistance. Moreover, it contributes to the overall quality of the platform’s knowledge base, making it a valuable resource for developers facing similar challenges in the future. Smart questions demonstrate a commitment to learning and understanding, fostering a collaborative spirit that is essential in the software engineering community. This, in turn, accelerates individual and collective growth, enhances coding skills, and enables developers to make better informed decisions when building software solutions.

An example of a smart question can be found in places like Stack Overflow. One I have encountered asks the question “What does “use strict” do in JavaScript, and what is the reasoning behind it?” Along with the clear goal that the author seeks to pursue in the headline, they accompany it with detailed information that informs the reader the error that occurs in the environment they were in, informing us that they google searched of this occurrence beforehand but to no solution, and asking if it occurs in multiple environments. By informing us that they google researched this error beforehand, this establishes that the author is not being lazy and showing effort that they truly need this question to be answered. The same effort can be seen when they precisely indicate what environment the error occurred in, this helps guides responders to potential appropriate solutions to the specific case. Finally, by asking if this occurs in multiple environments, may help a large pool of readers who use different environments identify the cause and solution of the error. By asking this question, not only will it entice responders to proper answers for the authors own problem, he may have shot two birds with one stone by also helping others who may come across the same problem that occurs in other browsers.

As you get past the authors post, comes the replies. The replies you get at this point depends on how well you formulated your smart question, and this person recieved many satisfying answers. In the most upvoted question, the responder is able to precisely indicate the source of the error and come with a solution tailored to the environment they are in. They provided a small batch of code how “strict mode” is properly used and sent links to further clarify the use of strict mode. They even said that strict mode is supported by all browsers because the author was thoughtful enough to think about it occurring in other places as well! Talk about being considerate!

Here is the link to the smart question: Stack Overflow

Does the world end if you dont know how to ask smart questions?

Of course not! Although it might as well be if you continue to ask questions that would entice many software engineers to pull their hair out and give them cluster migraines. SO lets make sure to not have one of the many building blocks of our society to spiral into despair and hopelessness at the sight of your questions. Just kidding, just kidding!

Failure to recognize what constitutes to a smart question in the software engineering world means you may be better off not asking questions at all. If you don’t ask smart questions on forums such as Stack Overflow, you risk encountering several negative consequences. Your question may receive downvotes or even be closed by the community if it lacks clarity, relevance, or demonstrates a lack of effort in researching the issue independently. In turn, this can deter potential responders from providing assistance, leaving your problem unresolved. Moreover, asking vague or poorly structured questions can lead to misunderstandings, resulting in wasted time for both you and those trying to help. Additionally, you might miss out on valuable learning opportunities and fail to establish a positive reputation within the Stack Overflow community. Asking smart questions, on the other hand, fosters constructive interactions, increases the likelihood of receiving helpful answers, and contributes to a more supportive and collaborative online programming community.

One example of a question that lacks precedence of what it means to be a smart question can be found in Stack overflow. One I have came across is the question “Javascript Game Betting”… Yeah that does not sound like a question. Stack Overflow headlines should be used to tell the reader at a glance what problem needs to be solved or question to be answered, the headline does not tell you that. It makes you wonder what they may ask, but at that point, you might not feel like even clicking on this page because it seems like the author has placed minimal effort just by reading the headline. When we do decide to see what the fuss is about, we get to see a few lines of code with a vague explanation of “Ive also tried passing the code through another variable but it doesn’t seem to work either”. There is no part in this post that tells us what exactly he is trying to figure out, and gives us the responsibility to determine what hes trying to ask while also hoping that we are giving the right answer to the question we think they are asking. This ultimately wastes time and could be accompanied by poor effort responses as well. One responder states immediately that “Your question is pretty confusing, but apparently you’re trying to remove the bet’s value in the bank.” The responder makes an educated guess on what the problem the author wants to be solved and possibly could give an answer that may not be relevant to the authors problem at all. Although it seems that they gave a reponse with a proper solution, we are not sure if it the correct solution to the imaginary problem we think we are supposed to solve, all because the author wasn’t precise on what he wants to be solve.

Here is the link to the “unsmart” question: Stack Overflow

Save the world, ask smart questions.

Asking smart questions in software engineering matters because it not only helps in solving immediate problems efficiently but also provides valuable insights into the underlying principles and best practices. Through smart questioning, I gained a deeper understanding of the software development process, uncovered how innovative solutions are found through great questioning, and honed my critical thinking skills. It is another weapon added to my arsenal to continuously improve as a software engineer by learning from others, addressing complex issues effectively, and contributing to a culture of knowledge sharing and collaboration within the software engineering community.