CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeffrey Palermo [MVP]

Software management consultant and CTO, Headspring Systems

Driving a "no bugs" team culture - level 200

I've been reviewing Jim Shore and chromatic's upcoming Agile book, and I especially like the "No Bugs" section here: http://jimshore.textdriven.com/Agile-Book/no_bugs.html

Large, dusty bug databases abound.  Some teams have a process where this is unavoidable.  Some teams use a bug database as a roadmap *shudder*. 

Personally, I believer that a "low priority bug" doesn't exist.  If it's a bug, why would you ever think of not fixing it?  If a product manager decides that the current behavior of the system is acceptable for the time being, then why would you call it a bug?  You may find the behavior of the system undesirable, but ultimately, it's the product owner's call what is desirable or not.  Maybe he agrees it's undesirable, but there are other things more undesirable (like the complete absence of several large stories). 

In my experience, poor management leads to a code-and-fix culture - working off a bug list.  It's "easy" if there is just a running list of bugs.  The team stays busy, and you can track work (kind of).  What is hard is to lay out a prioritized road map and manage the growth of the product.  Managing the product is actual work. 

Many things can contribute to a low bug count:  proper roadmap planning, good developers, automated tests, good software design, etc.  I think the average life of a bug is also very important for the team culture.

To drive a culture of "no bugs", bugs cannot be allowed to live long.  If a bug is announced, and nothing happens, the team accepts that the bug is there, and they will fix it "when they get to it".  If someone stops and immediately addresses the bug, then the team knows that bugs are not acceptable.  From a management perspective, I give bugs top priority.  If there is a bug on our wall (red index card), it has top priority - no questions.  The bug is not allowed to live.  This is key for driving a "no bugs" team culture.
 



Comments

Willie Tilton said:

I don't think it's so black and white.  While a developer "wants" to fix a bug, upper management often times thinks more about the cost and time involved in the fix.

In my current project, there are tons of bugs.  Most of them have a workaround.  Since the workaround's are known by the people that use them, they aren't a high priority.  Getting the business done is.  Critical bugs are moved up and taken care of first to keep things moving.

If I stopped working and went to every bug found no work would ever happen.  Funny yet true.

# December 22, 2006 11:57 AM

Sam Gentile said:

We tried to do that here with Jim here and its not that black and white. There just isn't enough time to do enough business-value functionality, start testing, and fix all bugs in an Iteration.

# December 22, 2006 12:13 PM

Jeffrey Palermo said:

Willie,

I know where you are coming from.  My team encounters the same issues.  For instance, there are some situations that require "workarounds" because they aren't very intuitive.  For instance, if you delete something, it doesn't delete, just hides.  The workaround is to go to another screen and delete it.  I think that's bad behavior, BUT, it was how the original story was designed to behave.  We delivered that story, but now we're seeing that we were wrong.  A change in the behavior from what we delivered long ago is a new story, not a bug.  A bug means that we delivered something other than what was intended at the time.  Our product manager takes this suggestion for change and prioritizes it towards the bottom of the roadmap.  We'll get to it in a month or so.  I think this is perfectly fine.  We have all work prioritized.  If management finds the behavior of the software acceptable, then where is the bug?  If management wants to change something 3 months from now after more important functionality, then they are making a conscious decision to prioritize it lower in the list, after more important stories.  Perhaps the problem is that "bug" is being used too broadly.  

# December 22, 2006 1:41 PM

Jeffrey Palermo said:

Sam,

Are you saying that some bugs live past an iteration boundary?  That happens on my team also.  Our tester sometimes doesn't finish testing all stories before the end of the iteration.  We need to start doing acceptance tests up front for that to happen.  We have bugs that spill over, but we take care of them right away.q

# December 22, 2006 1:46 PM

Vikas Kerni said:

The problem is in bug database, we also see good-to-have business functionality, and tester’s perspective how the things could have been implemented better, masquerading as bugs.  These are generally beyond the scope of initial business requirement. One has to attach priority to them to meet the release date.

# December 23, 2006 8:17 AM

Mischa Kroon said:

What your saying doesn't make much business sence to me.

It's all about value for the users.

Low priority bugs VS New features

Low priority bugs VS User friendly interface

etc

# January 2, 2007 4:15 AM

Jeffrey Palermo said:

Mischa,

Can you be a little more specific?

"It's all about value for the users."

- absolutely correct.

# January 2, 2007 7:25 AM

About Jeffrey Palermo

Jeffrey Palermo is a software management consultant and the CTO of Headspring Systems in Austin, TX. Jeffrey specializes in Agile coaching and helps companies double the productivity of software teams. Jeffrey is an MCSD.Net , Microsoft MVP, Certified Scrummaster, Austin .Net User Group leader, AgileAustin board member, INETA speaker, INETA Membership Mentor, Christian, husband, father, motorcyclist, Eagle Scout, U.S. Army Veteran, and Texas A&M University graduate. Check out Devlicio.us!

This Blog

Syndication