← Back to context

Comment by theaeolist

6 years ago

In a communication course my employer asked me to take a while back we were taught to a) never ask a yes-no question and b) never ask "why". So I would reformulate simply as

"How would sshd function in this setting?"

I have no idea how I'd answer that question without just ignoring it and treating it like a "why" question instead. I'm trying to apply this to a few technical decisions I've made someone might ask me about.

"I made a game on the web!" "How would your game work as a native app?"

"I made a thing that syncs files!" "How would you build this with Git?"

The two word answer I'm always going to be tempted to give is just: "I/It wouldn't."

To me, this is no longer asking the reasons why I made a technical decision, it's asking me to consider an alternate reality where I didn't make that decision, and to try and suss out what that reality might look like. And my purely instinctive, gut reaction to that is, "why are you wasting my time asking about things I didn't build, ask me about the thing I built or go away. It's not my job to re-architecture and reconsider all of my things under your random restrictions."

If a boss asked me a question like that: "How would Postgress work in this setting", I would politely reformat their question in my head, but unless I knew them quite well I would be quietly annoyed. But when someone asks me a direct "why" question, I feel like they're being more respectful, and I feel free to give a range of answers:

- "Why wouldn't your game work as a native app?" "It has some complicated tradeoffs that would take too long to enumerate."

- "Why not use Git?" "It has some specific tradeoffs, that I can go into more detail about: X, Y, and Z."

- or even, "Why not use Rust?" "I'm just not familiar with that technology, so I used something I already knew."

I'm not disputing that there are probably people who have different reactions. But I am immediately skeptical of any rule that uses the word "never". People just aren't that uniform.

I disagree with your communication course. In technical discussions, asking "why?" is one of the most important things you can do. You are ignorant. The person you are speaking to is not, and they are teaching you. But in order to teach you, they need to know what you don't know. Asking "why?" tells them what to explain.

I agree with danShumway's take: if I received your question, I would furrow my brow, pause for a moment trying to understand what the real question is, then probably plainly state: "It doesn't. Why are you asking?" Then you would explain that it seems to you like it would solve the problem, and I would explain why it doesn't.