Bugs happen. It doesn’t matter how much experience you have, or how much you test your code, a user will do something that you didn’t expect and your application behaves improperly. Perhaps it throws an exception and reports it to the user and continues working. Maybe your application quits on exceptions. Either way, you have an unhappy customer that is reporting back to you.
“It’s crashing,” is a common phrase I hear in the Xojo forums and from our own users. So the first question I usually have is “is it really crashing or is the application reporting an exception?” The difference being, of course, one is controlled by me and the other is the application goes *poof* and there’s nothing controlled about it. With the former I usually have some data that can help me figure out what’s going on and the second is a bad sign that it might be a plugin or library issue that I’ll have to track down.
What is their operating system and version?
It’s important to know if they are running on Mac, Windows, or Linux and what version it is. For Windows and Linux it’s important to know if it’s 32-bit or 64-bit. You may end up having to send them instructions to determine what version they’re running depending on the end-users skill level.
What version of the Application/Library/Control are they using?
Applications are relatively easy to get version numbers from since the user can get this from multiple locations (usually). Controls and libraries are a different matter and you, as the developer, should make this easy to find with documentation and constants in the code.
We’ve all had an email where a disgruntled customer says, “It doesn’t work!” If you have multiple products this makes for an awkward return email asking which product they’re actually talking about.
Can they replicate the problem? If so, what are the steps?
Customers often think that simply telling you about a problem is good enough. Sometimes it is but usually I need more information. The more detail the better. If it’s a sequence issue I will sometimes ask for a video showing it in action.
Can they send you the error log?
If you create error logs it is helpful to get those. To get the error Stack of an exception is useful and can sometimes tell you exactly what to fix if you’re lucky (especially with small/short methods!).
You may have to tell the user not only where they are but how to get the location. Getting to the Application Support folder on Mac and Windows isn’t hard but it’s also not easy. On MacOS the users Library folder is invisible by default. On Windows this location is buried multiple layers deep.
Can they send you an example project or file?
With developer products it’s handy to get a small example project demonstrating the issue. I can’t tell you how often simply asking for this solves the problem because they find their own mistake. Even if it doesn’t you now have a good example project demonstrating an issue you didn’t know about!
With applications and utilities getting their data file is good. There is nothing like working with real data to discover issues.
Users aren’t often helpful when it comes to asking for help with your products. What other things do you ask customers when dealing with bugs?