If you don’t know what you’re going to do with the answer to a question, then there’s not much point in making others work hard to answer it

A customer asked the following question:

We've found that on Windows XP, when we call the XYZ function with the Awesome flag, the function fails for no apparent reason. However, it works correctly on Windows 7. Do you have any ideas about this?

So far, the customer has described what they have observed, but they haven't actually asked a question. It's just nostalgia, and nostalgia is not a question. (I'm rejecting "Do you have an ideas about this?" as a question because it too vague to be a meaningful question.)

Please be more specific about your question. Do you want to obtain Windows 7-style behavior on Windows XP? Do you want to obtain Windows XP-style behavior on Windows 7? Do you merely want to understand why the two behave differently?

The customer replied,

Why do they behave differently? Was it a new design for Windows 7? If so, how do the two implementations differ?

I fired up a handy copy of Windows XP in a virtual machine and started stepping through the code, and then I stopped and realized I was about to do a few hours' worth of investigation for no clear benefit. So I stopped and responded to their question with my own question.

Why do you want to know the reason for the change in behavior? How will the answer affect what you do next? Consider the following three answers:

  1. "The behavior was redesigned in Windows 7."
  2. "The Windows XP behavior was a bug that was fixed in Windows 7."
  3. "The behavior change was a side-effect of a Windows Update hotfix."

What will you do differently if the answer is (1) rather than (2) or (3)?

The customer never responded. That saved me a few hours of my life.

If you don't know what you're going to do with the answer to a question, then there's not much point in others working hard to answer it. You're just creating work for others for no reason.

Comments (32)
  1. David Walker says:

    The customer wanted to learn, and they wanted you to spend a few hours of hard work.  :-)  

    Going through the "what would you do differently" exercise is often pretty valuable.

  2. Well, I see this as a (potential) bug report, slash question. Getting that answer back would put me off reporting bugs forever.

  3. alegr1 says:

    I guess the guy asking the question had social skills of a thermonuclear device.

  4. frymaster says:

    arghhhhhhhhhhh: well in that situation you'd have probably responded differently to the first question

  5. Joshua says:

    (3) has a real potential difference. Both (1) and (2) mean a simple version check is enough for which version to expect. (3) requires checking for the presence or absence of a hotfix.

  6. JB says:

    Now I really want to know the reason for the difference!

  7. kog999 says:

    suppose they have an support agreement that entitles them to unlimited support cases, or more support cases then they would ever use in a given period. Why not ask questions for the sake of asking questions, What do they care if it took your hours to find the answer.

  8. DonBoy says:

    Possible answer: "We want to document the behavior for OUR customers."  As mentioned above, this puts the hotfix case in a separate category from the XP-vs-Win7 case.

  9. Tyler Reddun says:

    More then likely the answer is "Because my manager wants to know and is breathing down my neck about it. He isn't going to DO anything with it, but he's demanding to get an 'authoritative' answer"

  10. VIMH says:

    Seems to me they're asking so that they will know if the change was on purpose or perhaps an unintentional change that would be fixed later. Knowing that information would potentially keep them from having to re-engineer something when it's going to be just a transient issue.

    No offense, Raymond… and perhaps the situation would have been helped if they actually replied to the last question you asked… but, the answer you gave really wasn't helpful and I'd have been rather put off if that was the response I was given.  (Then again, I would have explained why I need to know better than that person).

  11. Rick C says:

    @VIMH, Raymond's time (as is people's in general) is not free.  If the customer doesn't have a reason for him to spend hours answering better than "because I was curious," it's a waste of Raymond's time to figure it out.

    @Tyler Reddun, then the Microsoft response can be "file a support incident and we'll be glad to charge you for an answer."

  12. One possible answer: the customer wanted to deploy their app to Windows XP and Windows 7, and wanted to pass the Awesome flag to the XYZ function. This would entail backporting the fix to Windows XP (assuming the answer was 2), and giving the customer a hotpatch they could distribute with their app's installer.

  13. dave says:

    "Do you have any ideas about this?"

    "Yes. I have the strong idea that I don't give a hoot."

  14. BC_Programming says:

    >Do you have any ideas about this?


  15. JJJ says:

    @arghhhhhhhhhhh:  You could get all pouty about it, or take it as a life lesson to be direct and say what you mean.  "This behavior is different.  Is this a bug or expected?  Are there specific conditions that cause the difference so we can work around it?"

    Also, directed at others, I suspect "customer" in this case is a different team at Microsoft via a mailing list.

  16. GrumpyYoungMan says:

    How is it unreasonable to ask for an explanation of the goal before taking on a time consuming task to answer a question, especially when it's couched vaguely?  Chances are that if the asker can't articulate a coherent reason or goal, they didn't have a genuine need for the information anyway.  (Not that it ever stops that type from asking.)

    If you want intelligent answers, ask intelligent questions.

  17. Myria says:

    The Windows 8 compatibility/compliance test program noticed that my employer's application is in the AppCompat list with a custom shim (i.e., not a standard shim).  I figured out what exactly the shim does, but we don't know why it's in place, because what the shim is fixing we don't know.  Who could we contact about this to get more information?

    Also, would putting a compatibility manifest into our program suppress this shim, assuming we fixed whatever issue is occurring?

  18. David Walker says:

    @JJJ: "This behavior is different.  Is this a bug or expected?  Are there specific conditions that cause the difference so we can work around it?"

    That's a very good explanation of how the customer should have asked his question.

  19. Jim says:

    General observation: if I wasted my time it's OK. If somebody else wasted my time is not OK…

  20. AndyCadley says:

    @Myria: I believe Product Support Services should be your first port of call, unless anyone else knows better. However shims are applied only to a very specific version of an executable, so even a rebuild with a bumped version should remove any shims. Certainly a manifest declaring compatibility with a specific version of Windows should automatically disable all AppCompat functionality.

  21. 640k says:

    4. "The Windows 7 behavior is a bug that didn't exist in Windows XP."

    [The customer explicitly said, "However, it works correctly on Windows 7." That was in fact part of my confusion. You're complaining that a bug got fixed? -Raymond]
  22. Steve D says:

    Well, what else are they going to do when the Old New Thing's suggestion box is closed? :-P

  23. ulric says:

    too rude a reply IMHO, you should have said that you didn't know off hand why.

    it could be a valid question, example to explain that on xp another flag was also necessary. sometime some  programmer remembers  why an API changed and it's a quick reply

  24. Joshua says:

    @ulric: Why are you complaining that the man who advertises the social skills of a thermonuclear device as being too rude for so mild a reply as that one?

  25. voo says:

    @ulric Whoever submitted the question should see it just as a good opportunity to learn how to ask sensible questions. An extremely valuable skill that way too many people actually possess.

  26. asdbsd says:

    I think it's obvious what they meant. They were interested in hearing what exactly is the contract for this behavior (XP results? Windows 7 results? Undefined?) so that they can rely on it in the future.

    [They already said that the old behavior was a bug, so they're not asking what the correct behavior is. They already claim to know. So what are they asking? If they wanted to know whether the behavior was contractual, then why ask for the reason why they behave differently? -Raymond]
  27. Anonymous Coward says:

    I think Asdbsd is right. Hence it wouldn't have been useful for Raymond to fire up his VM, since he would have done more or less (but maybe with some more detail) what the questioner had already done. Then you see that the behaviour is different, but that was already known.

    What the questioner wants to know is whether the change was intentional and if so, what the reason was, and if not, what the implications are.

    The reason the questioner stopped asking was because he couldn't get a sensible answer.

  28. To be honest, it seems to me that Raymond's manager would be at fault.  I've always thought of managers are responsible for protecting their underlings from unnecessary work or bother. In general, it shouldn't have to be the people who are actually doing the work who also have to determine whether the work should be done at all.

    [The question was not sent to me personally. -Raymond]
  29. T. Dubinsky says:

    Hi, this BLOG post and the other you link to at the end is perfect. I have been supporting SDKs for Crystal Reports and related products for about 16 years now and we get these types of questions more often than you would think. Would you mind if myself or a colleague linked to this blog posting from on of our own blogs?

    [This is the Internet. You can link to whatever you like. -Raymond]
  30. JB says:

    "I have to use this service and it appears to be working ok, but I'm worried that I don't understand something about it that's important".

  31. T. Dubinsky says:

    [This is the Internet. You can link to whatever you like. -Raymond]

    My thoughts too, but not everyone thinks the same way!

  32. asdbsd says:

    They already claim to know. So what are they asking? If they wanted to know whether the behavior was contractual, then why ask for the reason why they behave differently?

    They just word it this way. When they say "However, it works correctly" they probably mean "However it does not return error". And they ask for reason because they can't pinpoint the correct question right and seek understanding in general.

Comments are closed.