Bug triage, like labor and delivery triage, is about deciding a course of action on the spot, often with minimal information guiding decision making. Discover what other lessons Robert has learned from Anne's experience in nursing that have practical applications in his hunt for bugs.
Bug triage is about making decisions about the fate of software bugs: Should we keep a bug? Should we fix it now? Can we fix it later? Can we live with it? What other choices do we have? What should we do next?
I have implemented bug triage in every software project I’ve run since 1992. My inspiration in organizing bug triage comes directly from the world of labor and delivery nursing, which I learned about from my wife, Anne, a nurse at the birthing center of the Royal Victoria Hospital in Montreal. Anne has triaged hundreds of expectant mothers arriving at the hospital in anticipation of the childbirth experience.
Labor and delivery triage is about deciding the course of treatment of patients arriving at the hospital. Anne must decide the course of action on the spot, often with minimal information guiding life-critical decision making.
I apply the four basic steps of labor and delivery triage directly to bug triage:
- Preliminary Assessment
- Exploration and Observation
- Taking Action
Preliminary Assessment—Looking the Bug Right in the Eye!
The labor triage assessment begins as soon as the triage nurse sees the patient. The triage nurse observes the patient: Can she talk? Is she agitated? Is she about to faint? Is she excited, anxious, or in any sort of trauma? Her first judgment is related to the urgency of the situation. Sometimes the patient needs immediate medical care, even before Anne knows the patient’s name—the baby will not wait. The triage nurse must be prepared for anything and remain calm despite the adrenaline rush. In some cases the triage nurse delivers the baby on the spot. It’s a job that has all the excitement of a TV drama. The triage nurse knows what to look for and is trained to recognize and act in response to critical situations.
The bug triage assessment begins as soon as I see the bug. I take a good look at the bug: Will critical user tasks be blocked? Is the bug infectious? Will it break other things? Does it violate laws, regulations, or contractual obligations? Did we lose client data? Does this bug block us from doing other work? My first judgment is related to the urgency of the situation.
In the preliminary assessment of bugs I look for those bugs that demand immediate action and then I initiate whatever course of action is required. In some projects I call this bug filtering. I cut out any paperwork or bureaucracy involved and get right to resolving the bug. When a bug demands action, I take action.
To hone my preliminary assessment skills I have to study a lot of bugs. I want to avoid crying wolf and getting developers to start fixing a problem that is not really urgent. Knowledge gleaned from studying bug taxonomies is a great source of information. I always study real bugs experienced in similar projects. In order to get a good sense of the urgency of a problem, I try to understand the impact on the end-user of not fixing the problem immediately.
The preliminary assessment helps trigger immediate action before going to bug review meetings or doing any further testing. Being prepared for a preliminary assessment includes a blend of knowing what to look for and knowing how to get things done. I make sure project managers, development leads, and all team stakeholders know that I do preliminary assessments and that I can sidestep bureaucracy in some urgent cases.
In labor triage context is everything. The same conditions observed with a different context can lead to dramatically different results.