Nobody likes bugs. But when they occur — get them fixed fast by following these guidelines to deliver all the information your developers truly need.
Use an issue tracker
You don’t want your bug to be forgotten about, and you want it to be top priority. In order to achieve that, make sure you use an issue tracker (no matter which one, actually). This will ensure your team knows its priorities and nothing will get lost.
Include reproduction steps
Don’t write “the save button is broken”. In most cases, your team won’t know what that means. Even though it sounds dumb at first, not everything is as obvious as it seems to you. Bugs may be encountered only when entering specific data, taking a specific route to a page or any other steps upfront. It may matter who you’re logged in as or what button you click. If you supply your team with that information upfront, you won’t have delays later.
Make sure your issue contains concrete steps to get to the problem (including direct URLs, user logins, button clicks, … ) in an ordered list, e.g.:
1. Go to page with URL X
2. Log in as user Y
3. Click button Z
Expected vs Current Result
Let’s take another look at the commonly used bug report “the save button is broken”. This literally includes no information about what happens and what is supposed to happen instead.
Imagine you or somebody else going over the bugs in one month. Do you remember what exactly didn’t work? Probably not. Will you recognize when that problem happens again? Maybe. But you’ll have no trail of what was done, what was fixed and why things went wrong.
Thus, right below the reproduction steps, write down the expected result. Given a user performs the steps above, this is what the result should be. Below, state the current result. Describe what currently happens instead of the expected result. Example:
Expected Result: The edit page opens in an overlay.
Current Result: The edit page opens in a new tab.
That way, everybody knows exactly what’s wrong now, how to fix it and you can come back to it should it come up any time again in the future.
A short but good one: make a screenshot of the current result, and attach it to the issue. If you still think you need to open Paint to do that, here’s a list of free tools which will create screenshots for you very quickly.
If you can, please highlight the areas you’re talking about with red arrows or circles. Don’t ever write on the screenshots as the text can not be copied. Use the issue itself to describe the problem.
Add meta information
For even more clarity, state the version of the app which you’re using, the environment you were on (dev / stage / production) and your browser including its version number. Again, this will help everybody to find and fix the problem as soon as possible.
If you want to keep a healthy relationship with your team, not prioritizing every bug as “high priority” is a key. If you assign everything a high priority, not only will your team stop taking your bugs seriously at some point, the really important bugs will actually drown in the list of other “high priority” tasks and won’t get done fast enough.
So, in order to get the bad boys fixed quickly, choose accordingly:
- Blocker: Users can not accomplish their main goal, and there’s no (obvious) workaround for them (e.g. not being able to find ones friends on Facebook).
- Critical: Users can only accomplish their main goal by using some sort of workaround (e.g. not being able to find a Facebook friend in ones friends list, but being able to search for them).
- Major: A significant amount of users feel uncomfortable accomplishing their main goal (e.g. the friends search on Facebook is suddenly terribly slow, but works).
- Minor: Side goals can not be accomplished by users (e.g. the poke button disappeard on ones Facebook profile).
- Trivial: Cosmetic things (e.g. the poke button on Facebook uses the wrong font).
Recap: Get bugs fixed faster by
- using an issue tracker
- including reproduction steps
- naming the expected & current result
- making screenshots
- adding meta information
- and prioritizing correctly
…any by the way: You can also try avoiding bugs upfront. How? Here’s an article on that topic.