I’m working to fix about two dozen (mostly small) things that don’t work quite right in Behold that I’ve found and were reported to me, It seems I can classify them into three types:
1. Bugs: These are the once that take a few minutes to find, resolve, and fix. Sometimes, they may require up to an hour afterwards, to scan the program for similar creatures, and do a few changes to prevent them from reappearing. This makes up about 70% of all bugs.
2. Buggiers: These are not nice. They appear to be one thing but aren’t. It takes a bit of debugging, often up to a couple of hours to trace through statement by statement, display variable values and hopefully reach the “aha” moment - where what I thought was happening didn’t happen. Once that happens, it doesn’t take long to zero in and positively identify the problem. It’s now turned into a 1. Bug. These happen about 25% of the time. (I really wanted to call these “buggers”, but something wouldn’t let me do it.)
3. Buggiests: These are horrible. They happen 5% of the time. Often they are a reported problem I can’t reproduce, but sometimes they are in program code that should work but doesn’t. I may spend a few hours and make no progress at all. Time sometimes fixes that. I may shampoo my hair 6 times in the shower thinking about the problem, or suddenly get an idea in a semi-sleep as I wake-up at 4 a.m. thinking about it. Aha! I got it. Run to the computer (dry off first if it was from the shower) and try it out. One time out of four, I got it. The other times I just slink back to finish dressing or go back to bed. There is a bug there somewhere. Next follows the Google or Stackoverflow research. Type in a few keywords and see if that’s happened for anyone else. Another one time out of four, that gives it to me. If not I may get an idea at least and try another hour or two of experimentation. Maybe one more time out of four that finds the solution.
Left over is the 1%, the Buggibaddest - the ones I can’t solve. Being a perfectionist is such a drag! Either gotta take it out, or leave it in and live with it for now at least, and hope that one day something comes up.
So goes the life of a programmer.