Home > Essays > Y2K

The Y2K Bug and Me

[Note - I wrote this in July, 1999. Its interest is purely historical now; 01 Jan 2000 came, and the world didn't end.]

I work as a COBOL programmer. I realized with a start the other day that I am one of those people you read about who caused the Y2K problem in computers. How, the rest of you wonder, could we have been so shortsighted?

It's an ugly story, but one that must be told. Let me start with a little background. My neighbor is 80 years old, and a constant embarrassment to the rest of us. A lot of people his age have retired to condos, where their chores consist of a little dusting and watering three pots of begonias. He, on the other hand, works 8 hours a day. His yard looks like the centerfold from "Better Homes and Gardens". (My yard has what I like to call "the natural look.") When he isn't puttering in the yard or his orchard, he does cabinetwork for his family and church. His woodwork looks as good as a professional, except he takes longer on the finish, so it is smoother.

He keeps five acres of walnuts; his orchard grows in tall, straight rows, weed-free, with little furrows for the irrigation water. When I irrigate, I think in terms of "open the valves all the way and let it go for an hour and a quarter, give or take 15 minutes; that's good enough". He adjusts each valve to within a quarter of a turn, to compensate for the fact the water pressure is a little higher at the first valve, it being closer to the main pipe, than at the last valve. It takes him longer to set his valves, because he does it right the first time.

He is the kind of guy who takes an afternoon each winter to sand and varnish his shovel handles. I try to bring my shovel in out of the rain, but when the handle gets too full of splinters I just buy a new one.

Hold that thought while I go off on another tangent. In the world of computer programs there are not all that many original "plots". For instance, say you have a program that will read a file of people, their department, and how much they earned this week. It will list them alphabetically within department and total their earnings and benefits, giving totals by department and a grand total at the bottom.

You could, with a few swift strokes, copy and alter this program to list inventory on hand by store. Instead of person you would have part description, instead of department you would have store, and instead of earnings and benefits you would have units and value. Now you have a program to show you how many dollars worth of widgets and gizmos each store has. The outward report would be completely different, but the inward logic would be identical. It would take you two days to design, write and test the first program, two hours to copy and alter the first to "write" the second.

I sometimes compare the work I do to the authors of those romance novels you see in the supermarket. They always have a handsome dark-eyed rogue on the cover. He is usually sweeping someone in a flowing white blouse off her feet, or at least holding her pretty close. There is usually a storm cloud on the cover. There are always storms of passion inside. (Men don't read this kind of trash. They read the trash where a small, highly trained band of super-secret commandos attack communists, drug lords or international terrorists.)

The romance novels are all pretty much alike. (The good guy gets the girl.) They do have to vary a little bit, however. It would be possible to pull one into your word processor, change "Dirk" to "Troy", "Charlotte" to "Tiffany", "blond tresses" to "auburn locks" and have a new novel. In the publishing world this is known as "plagiarism". In the programming world it is known as "smart programming" or "using a template". An engineer designing a conveyor belt will usually buy a 1-horse, 1500 rpm electric engine off the shelf, instead of designing one. A programmer designing a system will usually copy programs instead of writing them from scratch.

Back in 1985, the common wisdom was that most computer programs had an average life of five years. Most of the programs we copied back then had been written in 1980, or even 1975. They used a two-digit year. In 1985 it didn't make sense to "varnish our shovel handle", because we knew we were going to buy a new one in 1990 or so.

1990 rolled around, and, by golly, the old shovel was still useful. We kept meaning to fix it up --varnish the handle, sharpen the blade -- but never quite got around to it. In 1995, for my company at least, we started to have Y2K problems. Our union employees are eligible for a pension on their fifth anniversary year. The computer looked at someone hired in "95", added 5 to it, came up 100 and dropped the "1". That's how computers do arithmetic if you've told them the field is only two digits long. It's called "left truncating" because it chops off the digits on the left; in this case the "1" in front of those two zeros.

Next it compared the fifth-year anniversary date to the current date (00 to 95), and decided all of the new hires had 95 years of seniority. There's another trick computers play on you - if you don't tell them a number can be negative, they don't bother to look for positive and negative. They give you "absolute value", which you may remember from your high-school algebra. 00 take away 95 is negative 95 to you and I, but positive 95 to a computer that hasn't been told to watch out for negative numbers. Fortunately for our pension system, one of the humans in the payroll department caught the computer's error, and we fixed the program. That left just 4,328 other programs to look at.

We've been looking at them, with increasing fervor, ever since. On the one hand, it's nice to know that the code I wrote in 1985 is still useful. It's been changed here and there, as business changes, but it still plods along. On the other hand, I wish I'd made all of my years four digits, starting in 1983. A lot of us programmers do. I wish I had done them right the first time, instead of making them "good enough". I wish we had started our Y2K maintenance in 1990, instead of 1997.

Routine, preventative maintenance is probably the dullest task you can do; how many people actually like to change their oil, clean their furnace filters or polish their silver? I think of the billions being spent this year by corporations all over the country every time I see my neighbor, working with the shovel he bought in 1979. The next time you wonder why the Y2K could have snuck up on us like this, ask yourself - how long has it been since you varnished your shovel handle?

[This is one of my Miscellaneous Essays. There are more; you may enjoy another section of my web site, too:]

Home | Christmas Letters | Genealogy | Homilies | Peace Corps | Web Design

Problems, comments or complaints? Need an opinion? Send E-mail to:
This page updated: June 21, 2014