Are Your Defects Like Potholes?

It’s winter here in Massachusetts, and we’ve had lots of snow, ice, rain, snow, ice, snow, ice, rain. All that freezing and melting plays havoc with the roads. We have lots of potholes, and the local and state governments are busy doing emergency repairs all over the place. (For those of you who don’t know how potholes are made, first the water seeps in through the cracks in the roads. When the temperature drops and the water under the road freezes, the cracks get bigger. Loop until the road surface breaks apart and creates a hole. When the holes are deeper than a few inches and longer than a few inches, it’s time for emergency repairs. We have some foot-long and foot-deep potholes right now. Yuck.)

Potholes are a fact of life in the northern climates when you have cycles of freeze and thaw. But I’ve been talking to some folks whose defects are like potholes. “We only have time for emergency fixes.” “We have time to fix and fix the same darn thing over again, but we don’t have time to do it right.” That’s when your defects are like potholes.

Potholes slow down traffic, because the cars need to drive slowly through them, or around them. Defects, especially big ones, slow down other development or fixes. So, what do you do?

If you have a ton of defects, I would choose a one-week timebox, and work on fixing them. For me, fixing means developing a fix along with a unit test (or two or three), getting some peer review, and then checking it in so the developer can do some around-the-area testing before system test. I don’t care if the developers write the unit test first, I just care that they write some unit tests. Although, if you’ve got defects, you’ve got the makings of a bunch of great unit tests. I would not allow any development in this timebox, just fixing and checking the fixes in a variety of ways.

After making some progress and getting the defect counts lower, decide if you want another one-week timebox. Is it more valuable to finish (fix defects) than write new stuff and have old stuff unfinished? I don’t know, but you do for your project.

For the rest of the project, I would make sure people are working by feature, developing and fixing and checking a whole feature in totality before moving on to the next one.

If you’ve got a bazillion defects, they are like potholes–they prevent you from moving smoothly onto the next piece in your project. Fix them! No emergency repairs either–real fixes.

About Johanna Rothman

I help managers and leaders do reasonable things that work.
This entry was posted in defect, implement by feature, incremental development and tagged , , . Bookmark the permalink.

2 Responses to Are Your Defects Like Potholes?

  1. Johanna,

    That’s a really great analogy… the inevitable winter weather and the potholes they bring.

    You can’t make a career out of filling them (unless you’re in the asphalt business). But if you don’t take care of the really bad ones, someone could break an axle, have the car spiral out of the control, and end up with a real tragedy.

    So it’s really a matter of triage, like an emergency room doctor.

    But you’re right… real fixes are what matters. Not bandages.

    Otherwise, the same problems will crop up again and be slowing down big picture developments in the near future.

    You’re provided some very good food for thought on choosing priorities and time management.

  2. We should be especially aware of this. Unfortunately, a lot of people do have the same attitude when it comes to their defects. Instead of going for the long term solutions, they want the easiest and quickest way. The trouble with this, however, is that effects don’t really last a long time. They’re just temporary. In the long run, you ended up wasting even more time that you would have spent just fixing the root of the problem.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>