Monday, May 24, 2010

Remember the Y2K Bug?

It hasn't been that long. A little more than a decade ago, in the time leading up to the new millennium, there were dire predictions about the potential impacts of a bug in computer software known as the Y2K Bug.

The premise was very simple. Since the 1960's dates were represented in computer programs as a two digit number. So, 1968, for example, was represented as 68. You could always tell which year preceded another year because the earlier year would have a lower number. 68 comes before 69 and so on. However, at the turn of the millennium, this was no longer true. The year prior to the change in millennium would be 99 and the next year would be 00. So, any bit of decision logic within a program that relied on subsequent years having a higher number would fail.

There were, no doubt, many software programs that contained this flaw so I don't want to dismiss it out of hand. However, what is really hard to believe was the extent to which the implications of this flaw were extrapolated. As the clock ticked over to the year 2000 computer systems throughout the world would just shut down; crash from the Y2K bug. Elevators would stop working; Planes would fall out of the air; Life support equipment would stop its life support functions. Even more dire consequences were batted around. It could be the end of life as we know it. It could be the end of Western civilization.

Less dire but more personal consequences were predicted. You won't get your bills on time so you can't pay them on time. Since you don't pay your bills, you will loose your house and car and your good credit score.

And, yet, none of that happened. Why not? And why did we ever believe it would?

Let me offer a few observations. I am reluctant to use the word 'facts' as 'fact' are a matter of perspective and perspectives on this issue were all over the map.

First, the less one knew about computer systems the more likely one was to believe in the Y2K bug.

Second, most computer software, especially that written by competent software professionals, would not have this problem.

Third, if software written by professionals did have this problem, fixing it would be a fairly straightforward maintenance task.

Fourth, the real focus of this problem was computer code written in the 1960's and 1970's by non professionals who not only created the date problem but wrote such poor code that maintenance would be a nightmare. The underlying problem here was not the way the date was represented. The underlying problem was the lack of maintainability of the computer code.

So, there was a real problem but it was of very limited scope and very limited consequence. How, then, did this get extrapolated into the end of civilization as we know it? The answer, I believe, is that it is a great example of modern, secular apocalyptic thinking. And that will be expanded upon in the next post.