Solving issues

The work-flow

The meaning of an issues status:

  • Not reviewd - this is an issue which hasn't bean seen yet by any developer. When one comes he will analyze the report and open it if he thinks that it should be solved some time in the future and has the information required to at least start the implementation. But if the reporter gave to little information and the developer can't start to investigate or work on it then he can set it to the status needs more info and ask further questions. In rare cases when the developer is absolutely certain that solving this issue will do no good for the project or is a result of using the system in an improper way then he will just close it with a wont fix resolution.
  • Open - an issue was reviewed by a developer therefore it seams to be valuable to the project and has the basic information required to investigate or implement it. Started working is a similar state but informs you that someone is actually working on the issue. From here there are many ways to go:
    • A developer my just implement a solution to the issue an set the state to Resolved
    • He may find out that it was already fixed. The if the fix already made it to a stable release and hosted vestion then it will be set to Closed. If it is waiting in the source code the it is set to Resolved
    • He may still come to a conclusion that it's do to an invalid use of the system and set the issue to Closed with resolution Wont fix
    • He may have problem with reproducing the bug. It this case the issue should go to the Needs more info status
  • Resolved - an issue fixed in source code.
  • Closed - an issued which:
    • was fixed in the stable release and in the hosted version, this will have a resolution Fixed
    • was closed because a developers concluded that it was invaluable to the project or was a result of invalid use of the system, this will have the resolution Wont fix
    • was closed because it was in a Needs more info status for a long time (like a month), no simulator issues ware reported and there was not much interest with it in the community
  • Needs more info - we need more information to solve this. This should always have a comment from the developer with a request for information he need. If the bug is really strange and you (the developer) don't even have a clue what information could help you to solve it then be honest. Just say that you have no idea what could cause this and you can't fix it as the bug does not happen in your tests. Tell the reporter that he has to investigate by him self.

Tips for developers

Don't close an issue to fast if you can't reproduce it

Just because you can't doesn't mean there is no bug. It also doesn't mean that it's so rare that we can close the case and ignore it. You know the sentence:

It works here ...

is the most hated one in the IT industry, right ?

You don't have the exact same OS, browser, data set, plugin configuration, JVM and so one to be sure.

Be polite and gentle. Turn the status to Needs more info and ask for more information or just say:

I can't reproduce this. I will require more investigation.

And please DON'T say:

I've looked at the code and it must work

No matter how good you are you can't simulate in your mind all the possible contexts in which the code might run.

Just leave the issue in a Needs more info status. When it ages a little and no one gives more info, comments or votes on it then this is a good time to say that we should close it. It's more empirical.

Don't leave reporters without a clue what to do next

It's impolite. Imagine a situation in which:

(Your mother calls you on the phone and says)

Mother: Hi, something is wrong with channel 1 on my TV

(You open channel 1 on your TV and reply)

Son: Can't reproduce

(Hangup)

It's just absurd. Be communicative. Even if you have to tell people that they have to investigate something them selfs or have a IT specialist to see it on the spot.