VSTS, Visual Studio, VS2010,
windows 7 discount for vista buy ms project standard windows 7 price kenya purchase roxio creator 2010 buy quickbooks enterprise buy adobe acrobat australia download autocad mechanical 2010 buy guitar pro 6 discount archicad 12 buy microsoft office online download 3d home architect software buy parallels for mac steinberg nuendo download windows 7 price microsoft lightroom pricing best buy powerpoint download guitar pro 5 full version buy ms excel 2007 buy windows vista singapore autocad electrical 2010 trial purchase vista 64 bit buy windows 7 in australia buy office enterprise 2007 cheap office 2007 pro buy premiere elements 7 cheap windows vista 64 bit buy microsoft office 2007 cheap where to buy adobe flash cs3 buy windows 7 home premium upgrade family pack buy windows xp os buy photoshop nz buy ms access online cheap windows xp os buy pcanywhere 12.5 turbotax 2009 deluxe coupons buy sound forge 9 windows 7 home premium coupon where to buy dragon naturally speaking fl studio 8 xxl buy download wordperfect purchase windows xp professional buy visio 2003 download windows 7 price point buy autodesk autocad buy autodesk lustre 2009 windows 7 ultimate price oem cheap windows 2008 standart cheap photoshop for mac acdsee pro license key buy microsoft money 2009 corel software for mac buy windows xp volume license cheap powerdvd 9 purchase windows xp professional sp3 archicad 12 download buy adobe photoshop cs3 buy illustrator cs2 buy windows vista best price windows 7 home premium where to buy windows 7 malaysia download adobe after effects cs4 mac buy adobe presenter 7 adobe contribute cs4 mac price cheap quark software buy vista key buy autodesk 3ds max 2009 buy windows vista ultimate autocad mechanical best price buy adobe premiere pro cs4 buy windows 7 future shop buy windows xp code buy sony sound forge 9 buy vista disk adobe contribute demo buy windows 7 sri lanka buy 3ds max 2009 buy windows 7 buy microsoft office student online cheap fl studio 8 xxl purchase windows xp upgrade excel 2007 to buy windows 7 pro 64 bit download buy encarta kids buy windows 2003 datacenter maya pricing propellerhead reason 4 mac download windows xp buy download cheap microsoft office for teachers microsoft office onenote 2003 download buy acronis disk director suite 10 adobe production premium cs4 price purchase microsoft office 2003 online buy windows 7 home premium (32 bit) buy parallels desktop 5 buy adobe cs4 master collection windows 7 home premium 64 bit download windows 7 price list in india purchase office 2007 professional cheap windows xp computers windows 7 price for beta testers buy imsi turbofloorplan home and landscape pro 12 purchase vista business buy windows 7 digital copy autocad 2010 trial buy windows 7 3 license windows 7 home premium 64 bit iso buy windows vista business 64 bit buy photoshop canada buy windows xp black edition buy dragon naturally buy autocad lt 2010 purchase vista ultimate product key download autodesk autocad 2009 buy indesign cs3 cheap windows 7 in singapore purchase microsoft mappoint 2006 europe buy adobe cs3 cheap adobe illustrator cs4 sale buy microsoft expression web 2 purchase adobe contribute cs4 buy microsoft office project buy photoshop cs4 extended office 2003 price india cheap conceptdraw office pro 8 buy windows xp activation code buy microsoft access 2007 download buy adobe master suite cs3 buy windows 7 price purchase windows 7 license only buy visual studio 2008 professional edition adobe cs3 master collection price windows 7 price check dreamweaver for cheap buy quicken 2004 buy office 2003 download cheap roxio creator 2010 buy adobe premiere pro cs4 purchase windows 7 malaysia buy microsoft office one note purchase windows 7 in singapore microsoft streets and trips 2010 best buy buy adobe contribute cs3 cheap lightroom 2 windows 7 discount for military download dragon naturally speaking 9 download frontpage express office 2007 price compare buy microsoft project 2000 turbotax discount coupon windows xp price in bangalore windows 7 discount canada student upgrade price vista to windows 7 windows 7 64 bit best buy buy windows vista basic buy windows 7 perth buy microsoft access 2002 buy microsoft office powerpoint download abbyy finereader 6.0 sprint cheap windows vista business buy photoshop 8.0 acdsee download full version purchase microsoft office 2003 download cheap vista software buy adobe acrobat professional buy windows 7 ireland buy parallels 4 cheap autocad 2010 microsoft office price student purchase adobe flash cs4 cheap windows 7 versions discount quicken 2008 buy autodesk maya 2009 buy windows 7 egypt best price acronis true image 11 buy ms access 2003 buy cubase 5 dongle buy smith micro poser 7 norton 360 buy online best buy microsoft money 2007 microsoft autoroute 2007 download purchase vista product key office 2008 for mac download buy windows 7 ultimate oem purchase windows 7 operating system buy adobe dreamweaver cs3 mac download native instruments traktor dj studio 3.4 buy norton 360 key xilisoft dvd ripper ultimate 5 download buy office 2003 licence adobe acrobat price list buy windows xp product key online buy windows xp disc cheap windows 7 buy purchase photoshop cs2 roxio creator 2010 price buy matlab 2009b buy windows 7 ultimate download cheap norton ghost 15 student discount photoshop cs3 where to buy windows 7 64bit buy acrobat 9 corel painter x mac download windows xp discount for students purchase corel draw 12 purchase windows 7 serial key download microsoft mappoint 2009 buy windows 7 64 bit oem cyberlink powerproducer 5 ultra buy windows 7 price chart buy windows xp home edition product key cheap adobe creative suite cs4 nero 9 buy windows 7 64 bit price buy microsoft onenote adobe cs4 web premium oem cheap microsoft autoroute 2007 europe buy adobe acrobat reader cheap corel dvd moviefactory 6 plus adobe illustrator cs4 direct download buy windows 7 india online cheapest norton 360 3.0 adobe photoshop cs3 discount mcafee total protection coupon code buy windows 2008 datacenter windows 7 price staples buy windows 7 uae buy vista to windows 7 upgrade office onenote 2003 download buy photoshop student discount buy office 2007 small business upgrade adobe indesign for mac cheap pinnacle software buy autocad lt purchase cs3 software buy windows 7 serial download turbotax 2008 premier buy microsoft office in hong kong how much does archicad 12 cost cheap parallels desktop for mac buy xilisoft video converter ultimate 5.1 buy symantec antivirus buy adobe cs3 design premium mac buy windows 7 usa buy cyberlink powerdirector 7 ultra buy windows 7 mumbai cheap propellerhead reason 4 cheap maya 2009 buy microsoft project manager buy windows 7 original should i buy windows 7 now cheap microsoft office 2008 for mac dreamweaver cs4 demo buy windows xp x64 adobe pagemaker price after effects cs4 for mac purchase windows vista activation key buy adobe contribute cs4 indesign software cost photoshop cheap version download uniblue registrybooster 2009 purchase microsoft office for mac buy vista 64 bit best price adobe fireworks cs4 cheap microsoft office for students buy cyberlink power dvd buy windows vista india download adobe audition 3 full version corel draw prices cheap photoshop cs4 mac best price adobe premiere pro cs4 buy symantec winfax pro 10.4 download windows 2008 server r2 cheap dragon naturallyspeaking 10 buy windows 2008 enterprise norton 360 price comparison buy photoshop in india buy windows xp key online best price adobe premiere pro cs3 master collection cs4 student buy adobe indesign cs2 microsoft visio 2003 professional download cheap windows 7 pcs cubase sx3 price download quickbooks 2009 premier where can i buy windows 7 software adobe illustrator cs3 sale how to buy windows 7 key buy windows vista os vista discount flags windows 7 price dubai purchase windows xp home best price windows 7 discount guitar pro 5 for mac download purchase windows 7 key online microsoft mappoint 2009 cost windows 2003 datacenter download buy windows 7 computer buy windows 7 in singapore efreesky magic utilities 2008 buy nero 9 cheap cubase 5 download quarkxpress mac cheap windows vista adobe cs4 price comparison windows 7 buy download roxio copy & convert 3 buy windows vista cd buy maya 2009 cheap microsoft streets and trips 2009 buy avanquest mylogomaker professional 2 buy windows xp pro photoshop elements download buy windows xp cheap windows 7 discount australia buy sound forge audio studio 9 microsoft office enterprise 2007 price cheap microsoft access 2007 microsoft windows 7 professional 64-bit oem download archicad 13 buy pagemaker 7 cheap adobe photoshop elements 6 buy powerpoint 2007 buy conceptdraw office pro 8 buy windows xp professional online buy cs4 master collection buy adobe cs4 premium buy adobe captivate 3 cheap sony vegas pro 9 cheap cyberlink powerproducer 5 ultra buy pdf converter professional 6 soundbooth cs4 download buy norton partitionmagic 8.0 buy adobe flash builder buy corel painter x buy adobe premiere elements 8 buy corel video studio pro x2 buy cs4 mac buy windows vista activation key microsoft visual studio 2008 professional microsoft windows 7 ultimate cheap download architecture software buy windows xp home download buy illustrator for mac vmware workstation 6.5 promo code download dragon naturally speaking buy adobe photoshop cs3 extended buy microsoft windows 7 professional buy corel draw 14 microsoft visio download purchase windows 7 oem key windows 7 pricerunner

Practical Process Improvement (Part 2)

By Jeff Levinson • on October 23, 2008

In my last post I talked about why metrics are important and what the goals are in using metrics. In this post I’ll talk about the bug process. How does your team handle bugs, how can you gather metrics on it and which metrics are important? This post covers the process itself. So let’s take a look at an “ideal” bug handling process:

Bug Process

Let’s look at each of the states so we understand what the state represents. And if this looks like the start of a new methodology, well, it is and it isn’t. It is because I’m going to detail out of this series of posts how to handle numerous items and there is a lot of methodology and process displayed here. But it isn’t because much of this is just common sense. Also, note that you do not need to implement every step. This process that I’m describing here can be scaled based on your needs.

The states and their descriptions are these:

Proposed

This state indicates that a reported bug has been received. It does not indicate that any action has been taken with regard to working on the reported bug.

The key item to note is the reason which in this case tells us what group filed the bug. This is important because as has already been noted, it costs more to fix a bug the later it is found in the process. This allows you to note where the bugs are found and determine where certain weaknesses lie.

Under Investigation

This state provides status to the end user to indicate that the bug report is currently being triaged.

The state transition provides us one very useful piece of information – the time it takes from the bug being received until someone starts working on it. This is the first of the areas where we find waste.

This state requires some work though – no free rides here. Several things need to happen:

1. A duplicate bug must be checked for. If a duplicate is found, then this bug needs to be closed and linked to the original bug report.

2. Find the test case that relates to the functionality at issue.

3. The analyst needs to determine what the correct functionality is supposed to be. If it works correctly (as designed) then what the user is actually reporting is a change request and a change request needs to be created. This bug can be closed and linked to the change request.

4. The bug needs to be reproduced. If it can’t be then it is closed.

5. If the bug can be reproduced, then the test case needs to be modified (or created).

What does this information provide us?

If the bug is a duplicate it means at least one thing and maybe two. First it means that this bug occurs in a commonly used piece of code and is therefore a cause for concern. Secondly, depending on the lag time between the original bug report being filed and the duplicate bug being filed may indicate that the bugs aren’t being fixed in a reasonable period of time.

If you cannot find the associated test case(s) then there is another issue. First, why was no test case created? Was it because this is in a less frequently used part of the system? If so, that may be acceptable (maybe it isn’t part of the normal path and so minimal testing was done on it), but it means that this part of the system is being used and additional test cases may need to be created to proactively identify any additional, related bugs. If you do find the test case, what about the test case missed the bug? Is there a gap in the test case? Are all paths not tested? Can you go back and review the code coverage report to see if there is a path through the code that was missed? These questions and their answers will help you proactively identify other areas in this particular area of code so you can take mitigating steps.

What if the functionality is as designed? The user is then requesting a change to the functionality – maybe. They may not understand how the functionality is supposed to work. But what does this tell you? Were the users trained in the correct use of the application? Is there online help for the application and is it effective? If the users haven’t been trained and you receive a high number of these items then maybe it’s time for a training class. If they have been trained and there is online help, then maybe the help isn’t effective or effectively integrated into the application. This may indicate that changes in those areas are needed – but only if you know what to look for.

If the bug can’t be reproduced, it must be closed. However, it must not drop off of the radar. When duplicate bugs are found you need to remember to check the closed bugs as well. If you find a number of non-reproducible bugs being duplicated, it may be time to activate the bug and try to have the developers spend some time investigating the situation.

Finally, if the bug is validated, that isn’t good enough. There needs to be a test case which shows what the correct behavior of the system is supposed to be so that the developers know when they are done fixing the bug and they have a way to verify that fix. If there is an existing test case and it is incorrect, then you need to look back at the requirements to determine if the test case was incorrect or whether the requirements were incorrect and make the appropriate changes (each of these points to a different area that needs to be looked at for improvement).

Investigation Complete

This state indicates that the bug report has been verified and is now an actual bug. And again, it provides a solid indication to the end user of the status of their bug report.

The transition from Under Investigation to Investigation Complete provides the first piece of information on work performed in order to fix the bug (after all, you can’t fix the bug until you have verified it).

At this point the assignment of work can commence. However, there may be a high number of work items to assign so it may be up to a Change Control Board (CCB) to accept and validate work for a release. If that is the case then the list of Investigation Complete items will make up part of the agenda. This however can present problems. See the section entitled “Waste” later in this chapter for the problems related to this and some ideas on how to fix them.

Assigned

This state is an indicator that the bug has been assigned to a developer for work.

This is called a buffer state. The transition between Investigation Complete and Assigned is basically unimportant. What is important is that this transition says is that you are planning to fix the bug. Now, what it doesn’t tell you is what release you are planning on fixing it in. Using TFS you can simply re-assign the bug to an appropriate future iteration. The assigned state also tells users that no one has started working on the bug yet. Additionally this state provides feedback to the CCB about what work is scheduled to be done but hasn’t started yet so the CCB doesn’t accept more bugs than can be reasonably fixed.

Active

This state indicates that the bug is actually being fixed. No bug must ever move to this state without having an accompanying test case.

This state isn’t as important as the transition to this state. The time between the bug being assigned and the bug being active is lag time and is therefore waste.

One of the activities that should be performed during this phase is the creation of a unit test to verify the existence of the bug in code. This will help create a large library of unit tests which target previous bugs which makes regression tests easier to run.

 

In this part I’ve started to describe what happens in each state and what information you can gather from each state. In the next post I will round out the steps in this particular process and then I’ll move on to discussing the benefits of the metrics. Note that this process covers virtually every type of metric you may need (there are a few it doesn’t cover but I’ll talk about that in the next post). Note also that you can pick and choose which states you want. For example, if you’re reasonably confident that you don’t have bugs sitting around for a long period of time, then maybe the early buffer states aren’t needed. Or if you aren’t sure where the problem is occurring, use broad categories and introduce additional steps to pinpoint a problem as needed.

Stay tuned for the next post!