Issue Tracking Bug Report Technical Support – Why Reproduction Steps Are Helpful for Fixing Software Bugs

bug reportissue-trackingtechnical-support

Our company have a support team and a dev team. We require reproduction steps on every bug report, however sometimes the support team submit reports without and become frustrated when dev close them as "cannot reproduce / cannot fix".

Support then make the argument "if I take my car to the garage, the mechanic will look at the engine for me to diagnose and fix the problem, I don't need to know how my engine works, and I shouldn't have to spell out to the mechanic that my car makes odd noises".

What's a good way to explain WHY reproduction steps are important in response to this sort of challenge?

Searching for the topic finds lots of links with information on HOW to write good reproduction steps, but I cannot find any links that answer WHY they're important from the point of view of someone who is not a developer.

Edit: similar questions / sites / blogs the advise seems to amount "Mark it as cannot reproduce and they'll have to fix their work and resubmit the bug. Eventually they'll learn to do it right the first time", but I'd much prefer a constructive discussion on why I'm saying I can't fix it so that there's genuine understanding of what sorts of things the support team should be doing rather than completing a template by rote and being upset when their work is rejected.

Best Answer

To follow on from the car analogy, I've used the following in other contexts:

Say you took your car into the mechanic and said the battery keeps dying. He runs thorough tests on the battery and the electrical system and finds nothing wrong. The mechanic asks you how to reproduce the problem and you get annoyed at the question and say it just happens randomly for no reason. The mechanic digs deeper and eventually discovers you've been frequently leaving your headlights on all night, which as a brand new car owner, you didn't realize would drain the battery.

Now you might say that the car should prevent the battery from dying if you leave the lights on. That's a reasonable claim, and many modern cars do just that. However, it was still impossible to make the diagnosis without knowing the steps to reproduce the problem. And at least in this case, they mentioned the battery. Some bug reports are like, "my car is broken sometimes but it's fine now" and they don't know why you want more detail. Also, the best mechanics will have the conversation first and not even charge you.

It's not a perfect analogy, because in a computer application, "leaving the lights on" might not have been a user error, but an unintended side effect of another feature, or subtle interaction between two features. You also can add preventative measures and logging even if you don't precisely know what the cause is. And I would consider a mechanic very poor if they just returned your car without at least having a discussion about possible root causes.