Contents of this page:
If you don't already know what the Y2K problem is, the links on my links page will explain it in exhausting [sic] detail. This page simply provides a few convenient references.
Software. This is the obvious stuff - computer programs (on mainframes, servers, and PCs) have bugs in them, and we need to find all the programs, find all the bugs, fix all the bugs, and test all the fixes. Simple enough, after all, how many lines of code can there be in the world? (Hint: the answer is followed by the word "billion".)
Embedded Systems. Now it gets more interesting. Embedded systems are all the things that are not obviously computers but have computers in them: manufacturing systems, oil drilling rigs, refineries, nuclear reactor cooling systems, elevators, automobiles, VCRs, coffeemakers, etc. The vast majority of these either aren't that important or don't care about the date, but there are so many of them that even if a tiny percentage fail, the effects could be quite serious. They are also hard to find, since the owners/users often don't even realize that they have one.
Ripple Effects. These are also called chain-reaction effects, the food chain, synergies, interdependencies, etc. This simply means that even if every computer in your company is perfectly Year-2000-compliant, if the power or phones go out, you're dead. If your bank can't process payments from your customers or to your suppliers, you're dead. If your suppliers go out of business, you're dead. If you can't deliver your goods or services, you're dead. If your office is on the 57th floor and the elevators don't work, ... well, you get the idea.
Psycho-social effects. This is just a fancy word for panic, or self-fulfilling prophecy. Basically, if enough people believe that the world will fall apart on 2000-01-01, and they act on that belief, for example by selling all their stock and pulling all their money out of banks as physical currency, that alone will create massive disruption, even if all the computers work perfectly.
There is one point of semantics on which I know the world will ignore me, but I'm going to make it anyway: It's the "Century bug," or even the "Y2K problem", but it's not a "millennium bug":
Oh, and while we're being anal-compulsive about semantics, you do know that the year 2000 is the last year of the 20th century, not the first year of the 21st, don't you?
OK, OK, I promise not to tilt at windmills. I promise not to tilt at windmills. I promise ...
As will quickly become apparent from following a few links, there is general agreement that we will not get all the code in the world fixed in time, and there will be failures. However, there is no general consensus about just how serious the consequences of those failures will be. Predictions range from "the thermostat might not work" to "Western Civilization will collapse."
My own crystal ball is a little cloudy today, and somebody somewhere may archive this page and send it to my boss just before my 2001 performance review :-), so I'll be a wimp and make only four predictions:
Before 2000-01-01, programmers will make lots of money.
After 2000-01-01, lawyers will make lots of money.
If you live in Russia, Canada, the northern U.S., or Europe, the Year 2000 will arrive in winter and it will be cold outside.
Because today's computer systems are so highly interconnected that we just don't understand all the synergies between them, I feel that chain-reaction failures where we least expect them are inevitable. It's very likely that some of these will seriously impact efficiency - even now the computer mess being experienced by the Union Pacific Railroad is contributing to potentially significant problems with the U.S. grain harvest. On the other hand, I can't imagine that computer failures could be any worse than the bombing of England and Germany during WWII, and they somehow muddled through without dropping back into the Middle Ages.
Some Y2K Spike Dates | |
---|---|
Date | Reason |
1998 Jan 01 | Year "98" could be used as a flag. |
1999 Jan 01 | Year "99" could be used as a flag. |
1999 Aug 22 | First time (ever) the GPS "weeks" field rolls to zero. |
1999 Sep 09 | "9/9/99" could be used as a flag. |
2000 Jan 01 | First time (in 100 years) the low-order two digits of the year roll to zero. |
2000 Jan 3 | First business day in 2000. |
2000 Jan 7-9 | First full end-of-week processing in 2000. |
2000 Jan 31 | First end-of-month processing in 2000. |
2000 Feb 29 | First time (in 400 years) that a century-year is also a leap year. |
2000 Mar 31 | First end-of-quarter processing in 2000. |
2000 Dec 31 | First end-of-year processing in 2000. |
2038 Jan 19 | We do the whole dance again for Unix 32-bit times. |
Next, take the table and repeat most of it 3 months earlier, because the U. S. Federal fiscal year begins in October. Then do that again, but 6 months earlier, because most States' fiscal year begins in July. (If you live outside the U.S., apply the appropriate time frames for your own national/provincial governments.)
Furthermore, any date that a Y2K bug fix goes live is a secondary spike date for you, because unless your testing is very good the fixes themselves are a likely cause of problems.