Cutter home page

Resources for
IT & Software
Professionals


Order Form

ADS Home

Sample

Guest Book

Why
Subscribe?


Tables of
Contents


Subscribers
Say...


The Yourdon Report
Vol. 1, No. 4, June 1997. © Copyright 1997 by Cutter Information Corp.

The Personal Consequences of Year 2000

Dear Colleague,

Where will you be on New Year's Eve, 1999? If you're involved in the computer field in any way, there's a high likelihood that you'll be frantically working on the last-minute details of a year-2000 project. Yes, I know, not everything is written in COBOL and not every hotshot Java programmer is interested in the problem. But if you're an application programmer who normally develops business applications in Visual Basic, PowerBuilder, Smalltalk, or COBOL, there's a good chance that your organization will give you a temporary assignment to help out with converting mission-critical systems that are too important to fail. If you're a new-age Java programmer in a Silicon Valley startup company, maybe you'll be able to ignore the whole thing; but for many of the people who write software, 1998 and 1999 will be the years of year-2000 death march projects.

I assume that anyone who reads this newsletter is familiar with the basics of the year-2000 problem; I won't bore you with a repetition of the details, or how we managed to get ourselves into this state. What I do want to talk about is the notion that it's our organizations that got themselves into this state, and that we have to make sure we distinguish between the problems and demands of our organizations, versus the problems and demands of our own lives and the lives of our families and friends.

First, let's deal with the basic moral issue of culpability and responsibility. As you well know, there are some enormous legacy mainframe systems that will fall over and collapse on January 1, 2000, unless a thorough, expensive, and time-consuming effort is made to make them year-2000 compliant. But it's highly unlikely that you wrote the original code for those systems; indeed, the original programmers are probably long gone, maybe even dead. Or, ironically, those programmers may have been promoted: They may be your boss, or your boss's boss, or the CIO of the whole shop.

In the rare case where you actually worked on the applications that now require year-2000 maintenance, chances are that nobody paid attention 15-20 years ago if you recommended that the date be coded with a four-digit year field. You were told how expensive memory was, and that none of these systems would last through the 1970s, or the 1980s, or the 1990s.

In other words, with very, very few exceptions, the year-2000 problem is not your fault. Maybe we should have been smarter 20 years ago, and maybe we should have staged a mass revolt when our business users told us that they didn't want to spend the money for an extra two bytes of storage every time a date field was required within an application. Maybe they didn't really understand the significance of the short-term tradeoff that we made on their behalf. But after all, it was their money and their systems. In any case, there's a good chance that you can look at yourself in the mirror and honestly say: It's not my fault.

Perhaps you feel that, as a member of a more-or-less professional category of "knowledge" workers, we all share collective responsibility for letting society get itself into the year-2000 dilemma. After all, what if mechanical engineers told us that a flaw in their calculations would lead to bridges and buildings falling over and crashing on January 1, 2000? What if they collectively shrugged their shoulders and said, "Well, it's not our fault. Newton, Galileo, and Einstein made a few miscalculations in their basic laws, and we just realized the problem."

From that perspective, none of us really wants the IT community to end up with a huge black eye, or with the blame for having caused a massive economic and social disruption associated with year-2000 software problems. I'm willing to contribute some time and energy to help solve the problem. I'm willing to say, "Well, it doesn t really matter whose fault it is at this point. The most important thing is to fix the problem, and then move on."

But what if the problem cannot be fixed? What if January 1, 2000, arrives and half of your company's software has not been converted? What if your organization collapses as a result? At that point, where does your responsibility lie? The interesting thing about this is that almost every organization could have fixed its year-2000 problem if it had begun addressing the problem in 1995 or before. But if the year-2000 conversion team is just forming now, in mid-1997, then the conversion almost certainly won't be finished when New Year's Eve rolls around two years from now. And that part of the problem is the fault of senior management, which was too busy worrying about other issues to focus on the biggest software project of all time.

Let me stop for a moment and address a basic point: Many software professionals believe that the year-2000 problem will be somewhat annoying, and somewhat expensive to fix, but they can't bring themselves to believe that it could be a major, fundamental problem. It's like asking the residents of Southern California if they really believe that they're going to wake up one day and find that the San Andreas Fault has finally ruptured, and that California is now an island floating in the general direction of Hawaii. "We've lived with plenty of earthquakes, and some of them have been pretty serious," these folks will tell you. "Someday, the Big One will hit, but I really can't believe it's going to happen this year, or next year, or the year after."

So here's the question: Do you believe the year-2000 problem is going to be really serious? Do you think it could shut down telephone service, banking systems, and airline systems for a few days, or a few weeks, or even a few months? I've been thinking about all of this during the last several months, and I'm becoming increasingly worried about the "ripple effect" problems that will be difficult to anticipate, and almost impossible to avoid. It won't be the end of civilization, but the year-2000 problem could indeed trigger a depression on the scale of the Great Depression in the U.S. during the 1930s. For example, consider XYZBank, which has 300 million lines of legacy code. Assume that XYZ has the time and resources to convert 200 million lines, and it has done a triage to ensure that the mission-critical systems are converted. That leaves 100 million lines of unconverted code that won't run at all, or will spew out gibberish. Since this unconverted code is associated with noncritical systems, it won't have a fatal impact on XYZ though it could incur a nontrivial cost. My real concern is that the applications XYZ considers noncritical might be very critical to some of XYZ's customers, partners, suppliers, etc. So it's quite possible that XYZ's failure to convert some of its software will cause little, tiny ABCWidget Company to go bankrupt, which causes slightly larger DEF Corp. to fold, and so on.

Meanwhile, XYZ can't operate entirely alone; without electricity, phone service, and water, the offices can't function; without transportation services, none of its employees can come into work, and none of its customers can visit the bank to transact business. Let's assume for a moment that these basic utilities do continue operating properly after January 1. But what if the Federal Reserve Bank, S.W.I.F.T., and all the other banks that XYZ interacts with are having problems? What if XYZ's ability to print monthly bank statements depends on PQRPaper Corp. supplying laser-printing paper on a "just in time" basis? And what if PQR has a staff of three overworked programmers who maintain an ancient legacy system written in assembly language? If PQR stops shipping paper, then XYZ stops sending bank statements. Not forever, perhaps just for a month or two, but that's enough to cause a lot of confusion.

There's also going to be a lot of confusion resulting from bugs injected into the converted programs. If XYZBank converts 200 million lines of code between now and December 31, 1999, then there will be an enormous amount of testing, and with that much code it's inevitable that some bugs will slip through. Maybe not fatal bugs that delete the database or shut down the bank's systems, but perhaps the kind of bug that will send incorrect monthly statements to 100,000 of the bank's 3 million customers. A problem like this might not be noticed until January 31, or when the year-end statements are produced on December 31, 2000.

The problem with 100,000 incorrect statements is that it will generate 100,000 angry phone calls. Indeed, officials at the Social Security Administration (SSA) are quoted as saying that if the SSA has a 1% error rate in its retirement checks and other benefits, it will lead to somewhere between 43 and 50 million phone calls, starting the day after the checks are mailed. If the problem isn't resolved right away, then those people are likely to call back the next day, and the day after that, and the organization is likely to be in a state of paralysis.

Back to the banks again: Do I really think that Citibank, Chase, Chemical, and BankAmerica (along with all the huge Japanese and European banks) are going to shut down on January 1, 2000? No, of course not. But I won't be surprised if the XYZSavings and Loan in South Poobah discovers that it can't process deposits and withdrawals for a week or two. That problem might cause a run on the bank, or an outright bank failure, and similar problems are likely to occur for a number of other small organizations as well. General Motors (GM) won't go bankrupt, but ABCWidget and PQR Paper could.

Indeed, if ABCWidget goes bankrupt, it could cause serious problems for large companies like GM. Suppose ABC is one of the 100-odd companies that supply parts for GM cars and the widgets manufactured by ABC are an essential element of the transmission system. Because of the lean manufacturing system used throughout U.S. industry today, there's a good chance that GM doesn't have an inventory of widgets; ABC is supposed to deliver the appropriate number of new widgets to the GM plant every day. To ABC's surprise, its computers fail on January 1, 2000, and its widget production line shuts down. A week later, GM's production line grinds to a halt until it can find a replacement widget manufacturer. Meanwhile, GM's factory workers are furloughed without pay.

By now, I'm sure you get the drift of my concerns. The interesting thing is that while software professionals and systems analysts are well-equipped to understand the reasons why the software could fail, and the possible consequences of those failures, they prefer to deny it. I wasn't aware of this until I watched Peter de Jager's year-2000 presentation at our recent Summit 97 conference, which ended with a question to the audience: "How many of you really believe these problems will occur?" To my surprise, a significant number of people raised their hands to indicate they did NOT believe that serious year-2000-related failures would occur. They couldn't disagree with any of the technical points that de Jager raised, just as you probably won't find anything fundamentally wrong with my arguments here. But de Jager's audience, and many of the people reading this newsletter, don't want to believe things could be this bad. "Surely," people will argue, "companies will find a way to solve this problem." Given our track record for normal software projects over the past 30 years, this argument borders on hysterical optimism. More likely, it's cognitive dissonance: If the facts disagree with the conclusions you were hoping for, then ignore the facts.

What does all of this have to do with your job? Well, first you need to realize that a "denial of reality" may be taking place within your own organization today. Has your CEO or board of directors made a public commitment that all of the organization's systems will be year-2000 compliant, and that there is a detailed plan for coping with the organization's non-year-2000-compliant vendors, suppliers, customers, etc.? Do some arithmetic: If your company has 100 million lines of code in its application portfolio, then as of June 1, it would need to convert more than 100,000 lines of code per day, every day, in order to finish the job on time. Do you see the plans, the people, the tools, and the management commitment to make that happen?

If not, what will be the impact on your job? Chances are that your company will go into panic mode sometime in 1998, halt all of its development work, and assign everyone in the IT department to work on year-2000 conversions. When I say everyone, I mean everyone. Secretaries will be drafted into the testing effort, and the managers will be expected to begin writing COBOL code. Is that the kind of environment, with everyone putting in double overtime, that you want to work in? And if the year-2000 conversion isn't finished on time, who will be blamed? You can be sure there will be lawsuits; are you sure you'll escape the wrath of the lawyers?

If your company's year-2000 problems are very severe, what happens if it goes bankrupt? Will you be able to get another job? (An even more interesting question: At that point, will anyone want to admit that he or she is a programmer, or will it be a social stigma after January 1, 2000?) If you're out of work for six months, do you have enough money in the bank to support your family?

Speaking of banks, what if your savings account is in XYZSavings and Loan of South Poobah? If depositors begin to worry about XYZ's year-2000 compliance in late 1999, will they begin withdrawing all of their money? If they do, will you be able to withdraw your money on January 3, 2000? Indeed, given the delicate balance of the fractional reserve system used by banks, it doesn't take a very large percentage of panicky customers to cause a bank run. The worst-case scenario in this area is pretty scary -- it might not be just the XYZSavings and Loan that suffers a bank run, but the big banks too. If the banks close for more than a couple of days, then how does the government collect taxes? If the government can't collect taxes, what happens to the value of its bonds, T-bills, and other financial instruments?

Meanwhile, how many non-year-2000-compliant railroad and trucking companies will it take to disrupt the transportation infrastructure? While you're thinking about this, keep in mind another aspect of the lean manufacturing system -- the average grocery market, especially in urban areas, has to be restocked every 72 hours.

I don't have answers for all of these questions, and I spend a portion of each day wanting to believe that none of these crises will occur. But I can't find a way to deny the possibility that they could occur, not exactly in the way I've described, but as a series of domino-effect problems that ripple through society. And if my software experience allows me to anticipate some of this, then your experience should provide similar insights. Think about this, and try very hard to avoid the cognitive dissonance problem.

If the problem is anywhere near as bad as I think it could be, then you have to think very carefully about your loyalties and priorities. Will your employer get first call on your loyalty, or will it be your family and loved ones? On January 1, 2000, will you be at your keyboard, still converting two-digit year fields? Think about this now, while things are still calm. It won't be so easy two years from now.

Ciao!

Ed
Internet: ed@yourdon.com
Web site: http://www.yourdon.com

Year-2000 Resources from Cutter Information Corp.

Top | Home Page | Order Form | Sample Issue | Guest Book | Why Subscribe?
Tables of Contents | What Subscribers Say | Resources for IT/Software Professionals

© 1997 Cutter Information Corp. All rights reserved. Updated 19 June 1997.
Comments/suggestions to webmaster.