|
|
[
vmassol
]
11:11, Saturday, 4 December 2004
When working using a Time-boxing approach with JIRA there are some typical
issue-smells that I have noticed appear frequently. In order to perform good
deliveries it is important to fight them.
- Issue smell 1: Too many unscheduled issues. This means
that new issues are not assigned to iterations, i.e. that they are not planned
to be fixed.
- Issue smell 2: Open issue from past iterations. Any
issue that is left from a previous iteration has to be rescheduled so that
everyone knows when it is planned to be fixed. If some portion of the issue has
been done, I've found that it is usually best to split the task into 2,
so that the work done in the iteration it was scheduled is clearly shown in the
release notes for that iteration and the unfinished part can be scheduled in
a future iteration.
- Issue smell 3: No iterations in changelog view. This means that
past iterations that are finished have not been JIRA-released. The good
thing about releasing an iteration is that it forces to solve the unfinished
issues (see Issue smell 2). In addition it allows cleaning the roadmap view
that becomes less cluttered by all past issues and which gives a clear view
of what's left to be done. Last it provides an important feeling of achievement.
- Issue smell 4: Issue types in issue description. I have often
noticed that some JIRA projects were using some description conventions for
some issue types. For example, using
XXX - Code review
for a code review
issue on the XXX feature. In that case, a real JIRA issue type should be
created. The reason is that by defining a proper JIRA issue type, it is now
possible to perform operations on this new issue type: it will appear
properly in the release notes under its own category, it can be searched for,
etc.
- Issue smell 5: Issue status are not in sync with the reality. This
is often a big problem (especially with distributed teams) as people usually
rely on JIRA to provide an exact view of the progress. If issues are found
not in sync, there's a tendency to not "trust" JIRA anymore, which in turn
leads to less using it and loosing visibility. One good strategy is to
do Issue Driven Development (IDD). It goes like this: When a task is done and
just before the code is checked in, ensure that the corresponding JIRA issue
is marked as Resolved/Closed. If there's no issue, create one (unless the
modification is a really minor one that the user should really not be
concerned with). Then check in the code mentioning the issue number in the
checkin comment (that allows for example using the JIRA CVS/Subversion plugins).
Note: If you're using CVS/Subversion you could write a quick pre-commit hook that verifies
that each comment has a reference to a JIRA issue.
- Issue smell 6: Lots of resolved (but not closed) issues. Most projects
I have seen do not use a Resolved state. However, people often mark the issue
as resolved but not closed and the issue stays in this state for ages without
anyone doing anything about it. So either remember to directly close issues
or if you're using JIRA 3 create a custom workflow that do not have a Resolved
state (if you're not using the resolved state of course!).
Let me know if you have found other important issue-smells when using JIRA!
Issue smell 7: Issues assigned to persons who left the project.
many times, the issues assige to persons who left the project are ignored or mistakenly not included in reports. These issues must be assiged to someone else and correct status should be known when person is leaving the project.
-- Vinit, December 4, 2004 12:17 PM
Issue smell 8: two issues rolled into one.
A reporter reports an issue, and 'mentiones' another problem in the same description that really should be a seperate (linked) issue.
Re Issue smell 6: Perhaps an explanation about the differences of "closed" and "resolved" would be good.
-- Maik, December 4, 2004 03:21 PM
Re issue 6: My understanding is that resolved is used when the developer thinks the problem is solved. Closed is when the user/customer/tester agrees with the developer.
vmassol, could you give us your take on resolved vs closed, and why most projects don't used resolved?
-- brian, March 22, 2005 08:24 AM
The reason why a resolved state is often there but not used:
- It's an extra workflow step thus it takes more effort to follow it
- The issue Reporter is the one supposed to verify that the issue has indeed been resolved to his/her liking and then close it. However very often the Resolver is either not aware of the process or does't not care or forgets about it. It also happens that the Reporter is the developer fixing the bug.
Personally I prefer to systematically let the resolved close the issue. The reporter will get an email and will still have the chance to reopen the issue if need be. In practice this happens very unfrequently thus saving an often unnecessary step. YMMV.
|