The old days of debugging

If you read some old software development literature, you will notice that the stages of development go something like this.

  1. Gather requirements
  2. Design the program
  3. Code
  4. Debug
  5. Test

The funny thing there reading this today is that debugging comes before testing. We've basically reversed that these days, and it is mostly a benefit.

It's easy to be dismissive of the order but it would be wrong to do so. For the time, it made sense. That's because it took a long time just to enter and run a program. You may not have even been on a machine when coding.

Automated testing wasn't an option in almost all cases. What "debugging" meant here was just getting it to the point where you could even run it. Now we take for granted how easy it is to try to run something. We can use the errors to guide us on what to fix. Back in the 70s and early 80s, you may not have had much machine time or processing power available, so you would debug the program offline most of the time.

Testing still involved debugging, but it was more like the debugging we know now.

It may be worth pondering, even for a short while, to imagine what it would be like to program without having a computer available all the time.

-- Geoff (