No one likes a bug. But there are days when you wake up and see ladybugs in your project in Pivotal Tracker. When this happens, how do you deal with it? I’d like to share with you, our process of dealing with bugs that show up in an iteration.
No one likes a bug. But there are days when you wake up and see ladybugs in your project in JIRA.
Rollbar - the error tracking software - help us in finding bugs before users ever will!
When this happens, how do you deal with it? They can be especially troublesome when you have already set your weekly iteration, approved by the client. I’d like to share with you, our process of dealing with bugs that show up in an iteration.
When you find more than a couple of bugs within the last days, you should assume that something is going wrong...What can it be? The first step is to identify and verify the qualities of the bug.
First of all, ask your team why it happened. Did they write tests? If not, ask your developers why they stopped, and once again remind them that it is important, because it helps to avert having too many unexpected “guests” in the project. As members of the team, we are notified by Rollbar where bugs are located and when they occurred.
Now, when you’ve properly identified the bug and its causes you need to decide if it is an urgent bug. For example, 500 error on the production server being major, or a smaller thing which doesn’t have to be done immediately.
Be transparent and remember that if there is anything that may influence the users’ opinion, the displaying website or makes the application hard to use it’s time to inform your client as soon as possible. Do not wait until the client finds the problem; it should rather be you!
The next step is when you may take action to fix the bug. As we work with Pivotal Tracker we do not estimate bugs. Why? Because bugs are not new features that you have to develop. It takes time to find a bug in your own code and come up with the solution. It always takes time, because you have to be more precise and accurate, to be sure that particular line of your code is responsible for such a bug.
The second question, then, is how do you fix it? During development you have probably tried to do your best to avoid bugs, but if they occurred, it is time to think of the second way how to build it and avert mistakes this time.
Let’s assume that your client is already informed about an urgent bug. How do you explain to him or her that solving it will take time, and it has an influence on finishing other features a bit later? It is always a hard balance to strike, but if you report immediately that something is wrong, there should be no time for discussion, because the client has the same goal: solving the issue as soon as possible.
When it comes to smaller bugs, remember them on weekly calls. Do not let ladybugs fly for a while in the Icebox. It’s always better to add a couple of bugs to one iteration than to gather them and suddenly realize that it is better to do code refactoring, which takes much more time than fixing single bugs within the iteration.
Let’s go back to the beginning of this blogpost: Did the developers write tests?
They should be. Writing tests is the most important part in our flow. Without them, you can be sure that sooner or later, you will find bugs in your project.
It is better to make the estimation bigger and assume time for writing tests than developing features without them.
There is an even more drastic action to take. It’s not very nice, but QA knows what’s important for our application development to succeed. At any time, a QA member can reject a task which doesn’t have a test. If you are a developer, it is always better to have a QA find the missing test and reject it than to push bugs to a dissatisfied client who spots them first!
Even if you are an amazing coder and hyper-optimistic person, don’t be deluded that you will avoid all bugs and you won’t see any of them in your project. It’s simply impossible. Bugs are a natural part of any living development project, and issues will always show themselves during an iteration. The goal is to cope with them by properly planning: your tests, your QA flow, and your responsiveness.
Software testers are a truly multi-talented breed - check out how different technical skills improve the work in quality assurance!