These are the things I try to remember when I’m bug hunting:
1. Do I understand the actual problem?
Has the customer reported the issue correctly?
Has the Help Desk recorded the issue correctly? This is a good reason for having quality help desk staff. These days, for difficult problems, I find myself going on site to determine what the customer’s actual issue is.
2. What has changed?
Any changes to the customers procedures, or systems, which may have caused the issue to occur?
3. Garbage In Garbage Out (GIGO)
Is the customer using the feature correctly?
Is the data being input, valid? ie. formatted correctly, data ranging correct?
4. The function call you are calling isn’t working correctly.
Which means two things.
One. The function has a bug, which would be unusual if it’s a mature piece of code.
Two. The code is making a mistake in how the function is being used/called.
5. Having problems working out the bug?
i. Do something else for a while. Your subconscious mind will continue to work on the problem.
ii. Talk through the bug with a colleague. This will help to clarify the issue and your colleague may have a perspective to offer.