At the last Python meetup, the presenter was going to talk about a concept (let's call it the XYZ pattern), and he wanted to make sure everyone understood the concept before he did. He did it in a common way, by saying,
Does anyone here not know what XYZ is?
This is the wrong way to do it.
When you ask a question like this of your audience, you get an uncomfortable pause. Your listeners now have to gauge their own knowledge:
- The ones who have no idea what XYZ is will wonder if they'll look stupid for raising their hand.
- The ones who have a vague idea will wonder if they need to know more, or if they can skate by.
- Half the ones who are confident that they know what XYZ is actually have it a little wrong, but won't realize that they have a different conception than the speaker intended.
The talk will stop for a moment while people decide what to do. If someone asks for an explanation, the presenter will spend a little time explaining it. If no one does, the presenter might actually explain it a little bit anyway, because he was prepared to. Momentum has been lost and people feel awkward.
The better way to do this is to say,
As I'm sure I don't have to remind you, the XYZ pattern is a common way to mumble the frabbitz in systems with more than three quuxers. It's good because it separates the concerns about sculpting and shading.
In less time than it took to poll and embarrass the audience, you've:
- Complimented your listeners about already knowing what XYZ is.
- Defined XYZ, so those that didn't know now do.
- Explained your view of XYZ, so that even those that did know it now have your take on it as a common starting point for the rest of the talk.