During beta testing, sometimes our end-users unfortunately encounter a bug. This inevitably leads to a bug report, where the Joel on Software article Painless Bug Tracking suggests:
Every good bug report needs exactly three things.
- Steps to reproduce,
- What you expected to see, and
- What you saw instead.
This is usually pretty easy to enforce internally, however end-users often only send an email of what they saw (it crashed! Or it generated the wrong result!). They don't always report what they expected to see and more importantly the steps to reproduce the problem. Log files can help, but typically do not provide a complete picture of what caused the error. After a recent discussion with an end-user to try and discover what led to a problem, it got me thinking. How could I do this better? Should I have some sort of conversational structure? What are the best questions for gathering information from a layperson? Or do I need a completely different approach to elicit debugging information from end-users?