6 Stages of Debugging

My friend came up with the 6 Stages of Debugging: 

  1. That can’t happen
  2. That doesn’t happen on my machine.
  3. That shouldn’t happen.
  4. Why does that happen?
  5. Oh, I see.
  6. How did that ever work?

Update: Looks like this is an old, but still relevant list.

Although you could apply the Kübler-Ross model too:

  1. Denial – It must be user error! Are we sure their system is supported?
  2. Anger – By filing this bug you have questioned my family honour. Prepare to die!
  3. Bargaining – What if we just update the documentation? Can we tell the users this is a feature?
  4. Depression – All my code is broken! I have no idea what I am doing! I’m going to lose my job.
  5. Acceptance – Oh, that was easy to fix.

Do you ever find yourself in these stages?

This entry was posted in Funny. Bookmark the permalink.

8 Responses to 6 Stages of Debugging

  1. jpluimers says:

    You miss “that’s a feature” (;

  2. Jim McKeeth says:

    That’s stage 3: Bargaining

  3. jpluimers says:

    Dang, how could I miss the word feature in that sentence? (:

  4. I would add to the stages of debugging – That doesn’t happen when the developer of that part of the app is within 5 feet of the screen 🙂

  5. That was me yesterday. Its a firmware bug, it’s a firmware bug … Oh wait. It’s a … erm .. bug :-/

  6. Françoisf says:

    @David. I’ve been known to tell users to hang a poster of me in front of the computer to that effect… 🙂

  7. Gareth says:

    🙂 I ran through that list with a user yesterday without even knowing it. “It’s nothing to do with the new update – no other user has reported it!” – by the end – “yes it’s an issue, we’ll get a fix to you by the end of the day” – this list hits the nail on the head!

  8. Pingback: [??] ?????? (The 5 Stages of Debugging) | ??????

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.