Issue ManagementThis is a featured page

Initial Issue Creation

After the initial up-front activity to get a handle on the basic feature set and Release Planning, we enter the tasks and features into the issue tracker system. From a high-level customer prioritization of the major feature sets, we can add in our technical development needs and come up with a rough plan of attack for the first handful of iterations. That's the EASY part!

Balance Tip
We always try to balance doing just enough work to be effective, but not going too far into the future where our efforts turn out to be wasted. Therefore, you should not plan out 20 iterations in great detail, as that is surely a fool's game.

<insert some TBS graphic>

Ongoing Issue Handling

For a long-term project, you will find yourself getting into a sticky mess with too much backlog if you are not careful. New issues (feature ideas, bugs, improvements, tasks) can arrive at any time -- from customers, from developers, from testing, from marketing. Managing those issues from the beginning starts with ensuring they are written well, and are not a duplicate. As we move through producing the release in a number of iterations, we continuously need to pull the next set of issues out of the issue database (see Management by Bucket, below), and schedule and estimate the iteration, and execute against the list of issues.

As we near a release, we begin to need to handle parallel development. Some issues are critical and need to be put into next week's build to TEST. Other issues are long-term, and are part of a more strategic set of features, or re-architecting. You may release new features to Production every iteration, or you may need to release every few months or maybe once per year. If you have to make interim fixes to the released product along the way, then you need to be set up for, and proficient in Branch Development techniques.

To put it in perspective, here is a snapshot in time of the issues for our Sales Portal project that is at the initial product release point in its lifecycle:

Issue Snapshot
You can see the following:
  • 11 issues in progress (for the current iteration)
  • 343 open issues (you can't tell which milestone they are in, if any)
    • 13 critical (0 blockers)
    • 266 with the same priority of immediate
    • 68 Eventual
    • 5 Optional
  • 8 issues reopened (undoubtedly due to testing discovering they weren't working quite right)

Management By Bucket

Once the project has been going on for some time, or after production, the issues are often flying in faster than you can ignore.

Instead of worrying about ranking a new issue in absolute terms, I tend to manage in big "buckets" as issues arrive. The first bucket is the "All New Issues" bucket -- whether it is a bug, a task, a new feature. The issue needs to be "scrubbed" -- it may be unclear, it might be a duplicate, etc.
Managing New Issues

Only when we get to Iteration or Release Planning do I begin to care about the true prioritization. For me, this is easier in that we don't waste time agonizing over a fine-grained priority of some issue that may not see the light of day for months.

Bucket
Intent
1st in lineWe need it ASAP. Waiting for resource availability or milestone.
2nd in lineNeeded next.
3rd in lineWould be a nice to have if we have time.

Some great new ideas for a feature might get tossed into the "1st In Line" bucket. Another idea might simply get tossed in the big "Next Release" bucket. Some bugs are high priority and get into the very next iteration. Others languish, or get picked up in an iteration when (1) we are working in that area of the app anyway, and (2) we know it is an easy fix. Some bugs may never get fixed and some issues may never get developed. It all depends on what the business chooses to spend time and money on.

You might even want to consider creating a bucket called "Reject" or "Not Wanted" if it is important to make it visible.

When it comes time to do Iteration Planning, we can pull from the candidates in the "1st In Line" bucket, then the "2nd In Line" bucket, and so on -- should we need more.

I find this easier than dealing with 100s or 1000s of issues in a single "bucket" to pull from for the next iteration

Tracking Progress

You can keep track of issues closed and added per milestone, either via homegrown excel chart like below, or with an already-supplied output from a tool.
Feature burndown chart (cumulative plus per iteration)

Or another view:
Feature trends



JonKern
JonKern
Latest page update: made by JonKern , Dec 9 2009, 9:13 PM EST (about this update About This Update JonKern Edited by JonKern

31 words added
2 images added

view changes

- complete history)
Keyword tags: agile development process
More Info: links to this page
There are no threads for this page.  Be the first to start a new thread.

Related Content

  (what's this?Related ContentThanks to keyword tags, links to related pages and threads are added to the bottom of your pages. Up to 15 links are shown, determined by matching tags and by how recently the content was updated; keeping the most current at the top. Share your feedback on Wetpaint Central.)