Three A's of Responding to Bugs

Three A's of Responding to Bugs

Doug Bradbury
Doug Bradbury

July 06, 2016

The head judge of Top Chef, Tom Colicchio, has expressed a simple mnemonic for dealing with customer problems in a restaurant setting. There are three A’s to dealing with a problem, he says: Acknowledge, Apologize, and Amend.

My wife often causes problems when we go into a nice steakhouse. Despite my years of persuasion, she insists on eating any steak well done. When the steak comes back with the slightest pink in the middle, she’ll let the server know about it.

A good server will immediately acknowledge the problem. “That is still pink, isn’t it?"

Now the server didn’t cook the steak, it’s not their fault that it came out bleeding, but a good server will apologize nonetheless. “I’m so sorry that didn’t come out right."

Finally, good restaurant staff will amend and make things right. Not only will Jen get a steak cooked all the way through, but often a manager will go above and beyond and offer a free dessert or drink.

When faced with bugs in the code we write, I think we can adopt Colicchio’s device.


Always assume that a reported problem is in fact a bug. Remember that the person reporting a bug has no idea what’s wrong. They assume that they are the ones doing something wrong. A user has to reach a really high level of frustration before they get up the nerve to report a problem.

Hearing, “You are right, that doesn’t seem to be working properly,” lifts a huge weight off the user who was starting to think they were going crazy.


A little bit of “I’m sorry” goes a long way. There is no need to worry about who is actually at fault for the defect. Whomever is interfacing with the customer reporting a problem apologizes on behalf of the entire team. A little bit more empathy can also really help. “I imagine that must be frustrating to have this keep happening to you."

With these kinds of statements, you turn an adversary into a partner.


Defects are highly offensive in the crafter’s work, and are addressed immediately and thoroughly.

We don’t let a bug backlog pile up. If there is a problem, we drop everything until it is resolved. Not every customer request that comes through is a defect. Often, users will have great suggestions for new features or enhancements. But if something isn’t working they way we said it would, we must take care of it immediately!


It all comes down to responsibility. When the development team acknowledges the problem and apologizes, they are immediately taking responsibility for amending the system to correct it. High personal responsibility is one of the hallmarks of a good development team. One of the best places to practice this is right at the point of contact with the application’s users when they report defects.

What more? Check out the rest of this series: