The millennium bug

© Harold Thimbleby, 1998

The Year 2000 problem is the most expensive single problem that has ever faced the human race. It has come about because computers cant do sums correctly around the millennium. The reason for this problem is a mixture of incompetence and the legacy of left-over computers from the 1960s that nobody thought at the time would still be working forty years later.

The problem is entirely of our own making. It is easy to make things, whether computers or cars, without worrying how they will break down in the future. A computer you buy today with the "millennium bug" in it will work just fine, and it will probably work fine right up until the new millennium. But then you may find that the supplier has gone bust, and you have nobody to help fix your problems.

If it was only desktop PCs that had the problem, it would not be so serious. Most of us are going to be on holiday over the celebrations, and fixing things could be done in our own time.

Unfortunately there are far more worrying issues. What happens to the hundreds of computers in an aeroplane when it flies into the new millennium? Frankly, people just don't know. It will be safer to keep planes on the ground, just in case there are rogue computers on board. (Actually, that isn't the main problem: aeroplanes can usually fly despite minor system failures -- but air traffic control on the ground may have bigger problems.) Where will all the grounded planes be put? There just isn't enough land for all of them, and in any case they need to be kept in service. So what at first seems like a simple problem, with an equally simple solution, soon balloons into a major multinational logistical issue.

What happens to our electricity supplies if the electric company has relied on some computer that goes wrong? If a couple of power stations don't work over the millennium, others may be overloaded, and we may have widespread blackouts. What happens if the air conditioning plant in your offices decides that it hasn't been serviced for a hundred years, and packs up? What happens to companies relying on just in time delivery if some of their suppliers don't get their stock control systems working quickly enough? What happens to the City and all its financial services? Quite possibly City traders will have trouble: and world-wide financial markets will crash. In short, we may be in for a big disaster. It may be a really big disaster: some countries with cheap weapons might decide to attack advanced countries -- who are unlikely to be able to retaliate effectively because their weapon systems have millennium bugs.

So, over the millennium: stay out of planes, stay away from nuclear reactors and chemical factories, stay out of hospital, and prepare for living without electricity and water. This is the doomsday scenario, and some people are taking it very seriously. Programmers are buying survival kits, and in the United States where they take survivalism seriously, they are buying guns and fuel as well. The rest of us are trying to stay calm, and trying to get people to take the problems seriously, and to calmly prioritise how they approach them. Some things are going to go wrong, but won't be a problem. It won't matter if your desktop PC screws up. But it will matter if the lifts in the office-block trap someone because their computer controller has gone berserk. It won't matter if the stock control system has problems, if we have a paper-based backup plan. And so on.

But why a should a stock control system go wrong?

One standard example is the "sell by date." A can of corned beef could easily have a sell by date in the next century, say 01. A silly computer might say today is in 1998, so a sell by date of 01 means 1901, which looks like almost a hundred years out of date! My Visa credit card has an expiry date of 7/99. What will happen when my next card has an expiry date of 7/00 which appears to be before it was issued (it will be issued in 99 and expire in 00)? Will my credit card work, or will the supermarket check-outs think I'm using one that is seriously historic?

Let's try and understand how the problem arises, before we discuss how the problem should be tackled.

In the same year Albert Einstein died and Lego was invented in Denmark, I was born in July. In fact, I was born in fifty five.

Sometimes I need to know how old I am.

I am writing this article in October 98, so I can work out my age by using the sum 98-55=43. And indeed, I am 43 (well, I was when I wrote this!). Of course, between January 99 and July 99, I need to remember that the sum 99-55=44 would give me one too much (unfortunately I wasn't born on the first of January), but from July 19, 99 until the next year I will indeed be 44.

We are all familiar with these kinds of sums, and thankfully people are polite enough not to ask how old you are once you pass magic ages like 18 and 21.

Now suppose someone asks you at a millennium party how old you are. Can you work out how old you'll be?

Well, for me January is a month when I should subtract 1, so I'd be zero minus fifty five, minus the one. Oops! That would make me minus fifty six! The sum I should have done is one hundred minus fifty five minus one -- yes, I shall be 44 on January 1, 2000. Of course 2000 doesn't look like 100, and really we can see these birthday sums start getting into a mess. To make life easier I should have said I was born in 1955, and then the sum would have been 2000-1955+1=44.

With this little example, it is clear there are two problems.

The simplest problem is that the sums are easy to get wrong, because they are surprisingly tricky. They would have been more fun if I'd been born on February 29, for instance, and any computer program would have to work correctly with such "exceptions." Thus, to fix the millennium bug is going to require clever folk going around and fixing programs so that they do the right sums, and use all digits of the year properly, and under all circumstances. The second problem -- you can see I emphasised it in my birthday example -- is that lots of dates inside computers are only two digits long, like 55 -- instead of 1955.

No doubt someone once said if all the dates are going to be nineteen-something, the computer can save money by not keeping all those nineteens around. They were right -- except now we need some twenties as well! So, lots of computer records are going to have to be rewritten. This is tedious.

Of course, there are hiccups.

For fixing the sums, finding programmers who understand what to do is a problem. Not only are all the available programmers already working overtime for someone else, but the worst programs are the oldest ones, and there aren't many programmers alive who still understand them!

Moreover, fixing the sums is not as easy as you might think. For example, do you know whether the year 2000 is a leap year? If your programmers get that detail wrong, you are just going to have some more problems in March 2000!

For fixing the records, the hiccup is that there may not be space for the extra digits that are needed. Suppose you are the NHS with millions of patient records. All those patient records are going to have birth dates like 43, 55 and 67. They aren't going to be 1943, 1955 and 1967. Or if you are a building society with mortgages going back 25 years: they won't have been stored as 1975, but as 75. Every record that is fixed is going to be longer. Maybe there won't be space for all the fixed records. So, even if you get the sums right, you still have to go over all your records to get them fixed. For most organisations, fixing records is going to be the hardest problem.

With so many changes, it is going to be very tricky to check that everything has been correctly fixed. To make things worse, some systems used silly conventions like saying a date like 0 was "impossible" and therefore could flag some fact (like it was the last record in a file). That sort of programming is going to be no help! In fact, there are various worrying dates to watch out for: the ninth of September 1999 (i.e., 9999) is one of the first.

Financial organisations, who face enormous world-wide problems, have chosen to use a trick.

Since so many dates only use two digits for the year (like my Visa card expiry date), they are going to program their computers to use a "threshold date." Any number less than 50 is going to be treated as 2000-and-something; any number greater than 50 is going to be treated as 1900-and-something. So my cards expiry date of 99 will be treated as 1999, and (hopefully!) when I get a new card with an expiry date of 01, that will be treated as 2001. This trick means that if you are careful, your records won't need changing. Unfortunately for the NHS, some people live longer than a hundred years, so the NHS has more work to do!

In my view, tricks like this are more than likely going to cause even more subtle problems: it is hard enough doing date sums when there are no threshold dates to contend with, and if some old programs are being fixed by introducing thresholds, they will just be getting ridiculously complex -- and unreliable.

Fixing programs and records is quite easy, though the longer you wait the more expensive it will be, because consultants will hike their prices as demand for them increases. (And I don't recommend fixing problems in a rush.) Unfortunately, some of the year 2000 problems are not at all easy to fix. For example, most PCs have a chip in them that is used when the computer boots up. If this chip is flawed, it will need replacing (or the computer will have to run with its clock set to a year like 1980).

It looks like the third world is going to be given lots of nice computers as the advanced nations dispose of them because they aren't quite perfect.

Another worrying aspect of the millennium problem is with embedded computers. Not all computers look like desktop computers: many are hidden inside machinery, for instance controlling lifts, production lines, air conditioning, and car engine systems. Certainly many embedded systems will have Year 2000 problems. Your expensive car (computer-controlled emission systems and so on) might decide that if it hasn't been serviced for a century that it could be too dangerous to start.

Replacing chips sounds straight forward, and in some cases it is. One chip can be levered out of a socket, and a replacement inserted. However, many chips are soldered down, and cannot be replaced. In some systems (say, where vibration is expected), the chips may be embedded inside epoxy resin to really fix them down. There's virtually no hope for such systems! Worse, most systems with chips in them have lots of chips, and locating the culprits -- let alone getting access to them to replace them -- is the hard part. Autonomous systems like missiles are a real concern for the military.

So where is the light in all the gloom?

Clearly the problem relates to bad programming practices and bad management practices that encouraged using cheap solutions, when properly designed systems should have been used. It is not as though the turn of the century has come out of the blue without any warning, and programs are having to cope with something completely unexpected.

Businesses must realise that "solving" the millennium problem within their own organisation is not sufficient. Clients and suppliers may have difficulties, especially with just in time systems and process control system, where isolated problems may cause serious knock-on failures. Solving the millennium problem requires co-operation. Indeed, it is pleasing to know that NATO and former Soviet countries are co-operating because of the military worries. Hopefully this co-operation over a shared problem will help build trust between nations -- Pakistan and India, or Iraq and Israel, being other examples where accidental conflict over the millennium period might escalate out of control.

After the furore dies down, we can expect a more mature attitude to computers. Today, computers are over-hyped and are sold as a wonderful solution to every conceivable problem. Evidently they are not all they are souped up to be. Computer systems will have to be better designed in future. Perhaps we will have international standards on quality. If there is a world-wide rebellion against bad computer systems, then programmers are going to have to get their act sorted out.

If you use a computer everyday, as I do, you will welcome having an easier to use computer, a more reliable one that doesn't crash as often, and one that hasn't already gone out of date. Lets hope, then, that all the Year 2000 problems will combine to put pressure on the "profession" to improve its standards. In particular, let's see an end to legal warranties that say the manufacturers are not responsible for their problems. (Have a close read of your credit card agreement if you want a shock; or read your PC software warranty. They are all horrible.)

Oh, by the way, since some pedants get worked up over whether the new millennium starts in 2000 or 2001, you can wind them up even further by saying the Year 2000 bug isn't a millennium bug. Its a centennial bug: computers are going to go wrong at least every 100 years from now on!

Box 1. How will the millennium start?

If hazardous systems are switched off at the turn of the millennium, there is no reason for the century to start with a bang. There may be a few accidents, like car crashes because some road signs won't work, but the world won't end overnight. Most likely, there will be a gradual slow down as a few companies find they have lost track of their stock, or even their staff, and then companies depending on them will get into difficulties -- and so on, as the inefficiency spreads around the economy. Over a period of several months, businesses that have not put in place plans and worked out how to handle difficulties will start going under. Businesses will find there are few people available to help them: consultants will be overworked.

Box 2. How should businesses plan for the millennium?

There are two things to plan for: the time leading up to the millennium, and the time following the millennium. Leading up to the millennium, you should identify critical systems, so you can prioritise any necessary remedial actions. You may wish to upgrade hardware and software well ahead of the millennium, so you know it works!

It won't be easy to convince your finance director to invest in tackling the problem. It will cost a lot, and -- if it is successful -- all it will achieve is carrying on as normal! One useful argument is that some companies have found doing a millennium audit has identified things that already don't work -- one company found that its fire alarms were inoperative (and so it wouldn't have been insured).

It is difficult to identify problem areas. You should identify suppliers and clients, as they may also have problems, and collaborate closely with them: your business will have problems if your supply chain has problems. Secondly, organise your business so that there are contingency plans in place -- the modern world survived for years without computers, and just in case, you should make sure you have paper records and other contingency plans so that work can continue at a slower pace.

Remember that systems interact. A millennium-compliant computer won't help if it is running software that cannot cope with the millennium; and new, compliant software won't work on an old, non-compliant computer, or one that has some dodgy software hidden away on it that messes things up. Now is a good time to do a computer and software inventory, and get rid of obsolete and unauthorised stuff, like games.

Following the millennium, identify problems, prioritise and try to fix them as required. It will be wise to bring production lines back into action one at a time, rather than risking have too many problems to cope with all at once. If you rely on security systems, it is possible that some obsolete security passes become valid again. There will be lots of surprising problems!

Don't forget in the Year 2000 planning that your business will have to cope with the euro as well. You can almost certainly work more effectively on both problems at once.

Box 3. How should individuals plan for the millennium?

How you plan depends on whether you want to panic. If you are going to panic, make sure you have dried foods stocked up, and a good supply of water and ways to keep warm (remember it will be winter). If there is going to be chaos, having cash won't be much help, instead you'll need to have useful things to survive and to help your local community.

On the other hand, you could celebrate the second millennium and relax. Take advantage of your employer giving you a break and do some partying. (Don't bother travelling abroad: insurance companies are no longer covering travel, in case you lose your baggage, or worse, at an airport with millennium problems!) Learn some skills like weaving or basketry that are useful and don't rely on computers.

Box 4. What are the business risks?

There are no quick fixes.

Businesses may be legally responsible for their own millennium problems effects on other companies, or for invalid information about or sent to customers. Both clients and employees may start litigation: maintaining good customer relations is an important part of millennium plans.

The problem is a community-wide problem that nobody can avoid. Retail outlets, delivery systems, and so on may have problems that are likely to have knock-on effects on your business. Co-operate with all companies in your supply and distribution chains.

Embedded systems (i.e., computers hidden in machinery) may cause problems in process control, transport, building systems, office equipment (like fax machines), as well as facilities used by contractors. Telephone exchanges and communications systems may fail or be unreliable.

Check that the business is not susceptible to external threats, such as product contamination, vandalism, floods or theft. Police and other services are likely to have other priorities. Check safety systems, fire systems and security systems work.

Remember that insurers are unlikely to help for problems arising from predictable events.

Box 5. How to get more information

The Institution of Electrical Engineers has useful publications and a web site providing more information about the Year 2000 problem and ways to manage it. One useful report is "Year 2000 Problems in Machinery -- Managing the Risk in Smaller Companies," which costs £7. Their phone is: IEE Publication Sales, +44(0) 438 313311, and their web site is at http://www.iee.org.uk/2000risk/.

The Health and Safety Executive have some very good books on the Year 2000 problem, including "Safety and the Year 2000": see http://www.hsebooks.co.uk/ for more details.

Action 2000, who have practical ways to promote co-operation rather than litigation, is at +44(0) 845 601 2000, with a web site at http://www.bug2000.co.uk/

For those without an internet connection, there are many sources. Try the Economist article of September 19, 1998 for a business-oriented review.


Harold Thimbleby is Professor of Computing Science at Middlesex University, London. He won the British Computer Society's Wilkes Medal in 1987 and is a Fellow of the Institution of Electrical Engineers, a Council member of the Parliamentary Information Technology Committee, and a Freeman of the Worshipful Company of Information Technologists. He has spoken widely on technology issues, from Norway to New Zealand. He has hundreds of technical publications, including three books. His web site is at http://www.cs.mdx.ac.uk/harold/.