I've been thinking a lot about the hidden assumptions that are communicated every time I talk with someone. The non-verbal cues and context that are intangible, but are the starkest reminder of the difference between asking a person to do something (where you DON'T have to detail all the requirements) and telling a computer to do something (where you DO have to detail all the requirements).
Knowing that communication is laden with inferences, then noticing and rectifying (with a question) when there may be a misunderstanding, is one of the most important lessons I learnt as a Program Manager at Microsoft. It's one that I think that all hackers/product managers should internalize, to keep their team running effectively, and deliver the product on time with the right feature set.
Asking the right questions is a skill that every body looks for but is hard to quantify. Here is how I think of it:
Imagine I ask this question — A person mows 2 lawns in 2 days, how many days would it take them to mow 1 lawn?
A common answer to this question is 1 day, which assumes that the person mows the lawn at a steady rate. The correct response, in my opinion, is to ask if they mow the lawn at a steady rate — then decide if you can answer the question with the given information or not.
It's these kinds of assumptions that lead to miscommunication, delays, and unmet expectations. However, asking the right questions does not mean asking every question; it does not mean being pedantic. The art is knowing when to ask and not just what to ask.
Mastering this art helps you get the right outcome by avoiding possible problems in the future without adding more layers of process. i.e. Use your insight to ask questions about opinions that are masquerading as facts, or assumptions that could be problematic and dig deeper into them. This is instead of just asking questions that slow down meetings and aggravate their participants.
I'll end this thought with an example of an episode of miscommunication that happened while I was at my 1st year at Microsoft. I was working out of the Canadian office in Vancouver, when two of my friends were having a heated debate about the usefulness of PM's (and all the questions they ask!). I overheard the conversation that happened next:
Dev 1: Anyway, what did you do last weekend?
Dev 2: I went to Cyprus.
Dev 1: How was it?
Dev 2: Really cold, but I really enjoyed it.
Dev 1 (surprised and slightly incredulous): I remember it being really warm this time of year, but I was there a while back, I guess it must be global warming messing with the weather.
Me: Hey guys, I overheard you and I just thought this would be a great time to tell you why PMs are useful and why they ask so many questions :) You are talking about Cyprus the mountain (10kms from Vancouver) where it is very cold right now and you are talking about Cyprus the country — where it is very hot….
Dev 1 and Dev 2: Nods of understanding and mild embarrassment.