Hi, Nice seeing you here!
Here is a piece of writing describing an art that is very much essential towards problem-solving approach and learning curve – “Art of Smart – Questioning”.
Whether you are a student being taught by a mentor, or a developer working in a company, or a technician, or a user of a software. Whether you are asking a question related to an error, a fault, a bug, a query, a review of code patch, etc. Then there are ways of asking and framing your question, there are ways of gaining pr-requisite knowledge regarding your problem, there are ways of doing homework. This blog points out the recommended steps while framing something called “smart – questions”.
“ This blog is what I have learned from and inspired by a brilliant article on “How to ask smart question” over here. This is my review, note – making and views about the same. ”
What are smart questions?
You know what? There are some questions which you feel like answering and there are some you don’t. What’s the difference between them? Questions which will most probably get an answer from the one you are asking, are good questions to be very brief. If the person you are asking question sends you his/her feedback then it means your question did worth it. But feedback always doesn’t necessarily means the answer.
And good questions which will attract people whom you are asking, and will make them ponder upon, will establish a new learning lesson, are called Smart Questions.
Now how to frame and ask these smart-questions? Let’s have a look at it…
* Before you ask:-
-> enhance your knowledge ( this is called Homework, before asking question )->
-> make sure that you are aware of pr-requisite before actually posting your question.
-> make sure you have searched the Web.
-> by searching Archives (if your question is about a specific software problem or bug then try searching the mailing-list archives of that software.
-> by reading user–manual of that package/software.
-> by reading FAQs.
-> by inspection and experimentation.
-> by asking a skilled friend.
-> by reading the source code (if you are a programmer).
-> by Google it. ( make the use of Google )
This process has several advantages-
– Your background knowledge will enhance.
– May be you will get the answer while searching.
– If not, at least you will learn something new.
Now when you would ask the question, do mention, what have you already searched and what have you learned in the process. This will create an impression on the person that okay at least you have done your homework and are willing to get an answer.
So, move on to.
* When you ask:-
-> make sure your language is polite and not demanding.
-> ask to correct forum.
-> ask with matching standard ( it means not to ask a very basic question to a professional developer ).
-> ask without cross-post every newsgroup.
-> ask from the acquainted forum.
-> Also before asking on Quora, Stack Exchange, etc,. Follow these criterions.
-> Asking on the mailing list of a project is preferred instead of a personal mail to any developer. It has advantages.
– your question would not bound to a single developer.
– there will be more possibility of your getting answer.
– your question will not be much disturbing if any developer is busy in his work.
-> Always use proper, meaningful specific headers. Add [OT] as a prefix of your subject to ask any question that is “Off Topic”. While creating your subject- header you can use the format of “Object – Deviation”.
-> make it easy to reply: Do not demand to reply to other email Id than the one from which you are sending the question.
-> Never ask to reply in web forums.
-> Write in clean, clear, grammatically correct ( pardonable: if not your native language), but a spell check is a must.
-> never use SMS language. User proper English.
-> make them aware of your second language difficulties.
Points to ponder:-
# send plain text mail, not HTML.
# don’t write paragraphs in single lines.
# MIME attachments are usually o.k.
# avoids emojis.
# be precise and informative about your problem. Don’t make abstract questions. Explain in detail ( if the problem is a bug, a fault, etc regarding the software)
# avoid top-posting, do Bottom posting (write your questions/text below the quoted text)
How to Report Bug, effectively?
* inform about the symptoms of your problem.
* environment in which it occurs (OS, Version, Component, etc,.)
* the research you did to solve your problem.
* any recent changes in your computer/soft. configuration.
* provide, a way to reproduce the problem in the controlled environment. ( it is the best way to ask a question regarding your bug issues. )
Suggestions towards correct approach:-
* Volume is not precision: make your question up to the point and short and sweet.
* Don’t rush to claim that you have found a bug. ( developers work really hard to develop a software and it is not sweet to listen that there is a BUG in your hard work, even if you found one. Ask like: “It might be a wrong approach of mine but can you…” , there is always a sweet way to ask your question. )
* Groveling is not a substitute for doing your homework.
* Describe the problem’s symptoms, not your guesses. ( if your guesses would be that efficient you wouldn’t be asking the question, right? )
* Describe the problem’s symptoms in chronological order.
* Describe the goal, not the step.
* Don’t ask people to reply to private e-mails.
* Be explicit about your question.
When asking about code:-
# post minimal test case.
# don’t post homework questions.
# prune pointless queries.
# don’t flag your question as “Urgent” even if it is for you. ( You are not paying something to answer anybody, you can’t demand. )
# courtesy never hurts, and sometimes helps.
# follow up with a brief note on the solution.
Now how to interpret an answer:-
-> never urgently reply if you don’t understand the answer. Do all the background research before replying again.
-> understand something called “tact filter”.
-> even if you get the scolding in reply, do not take it sensitively. Understand “tact filter” again.
-> flame wars are common, save yourselves with them.
Alright, then you are all set! Have a nice day. This, is GeekyShacklebolt
bidding you goodbye!