Debugging - a dark art?

imho Debugging is the art - science? - of finding the errors in code (and/or hardware), the analysis of why the application is behaving other than expected / intended. The rest is fixing. Debugging and fixing is not always done by the same person. I see in complex cases you have pair/group debugging and single person fixing quite often.

I recognize the 5 stages billroy mentions, but there are more:

  • stage 0: Unaware (ignorant?) and
    ..
  • stage 6: the ability to recognize and // after coding
  • stage 7: the ability to prevent and // while coding
  • stage 8: the ability to predict. // before coding

example of 8: I know that I make mistakes with complex boolean expressions, so I can predict that there will be (big chance) bugs in it
maybe 7 and 8 should be swapped?

Probably there will be a few more (sub)stages but I'm no shrink :wink: