(background music of Pink Floyd's Welcome To The Machine)
The Y2K problem (and it was/is a real problem) was because in the old days, computing was outrageously slow, limited, and expensive.
To save space, dates were save as a 2 digit year only, not the four digit year and century. So when the date rolled over to 2000, the computer programs would think it was 1900. To put it mildly, thing that depended on things like date of birth, among other dates, would have major problems. Like getting life insurance for a baby, that the system would think is 100 years old. Lot's of financial businesses are heavily dependent on dates. (Imagine what would happen to an interest calculation with a century off date. . . )
Now businesses will not spend a dime they don't have to (except for executive bonuses). On the other hand, if they didn't fix the date problem, they wouldn't be in business long. (Think Mel Brooks as Governor in Blazing Saddles - "Gentlemen, we have to look out for our phony-balony jobs!!!!)
So they, to a business, waited until the last minute to do anything. (An old MBA friend of mine pointed out the no business looks at any problem until 5 years before it happens and then doesn't <do> anything until 2 year until failure.) So now you had a bunch of companies, all biding for the same limited labor, with a hard, unmovable, deadline. The work wasn't hard, but there could be no mistakes, because if there were, the error(s) would start propagating through all the permanent files.
There were three courses of action.
1. Do a permanent fix. Change all the programs, convert all the files. (And you had to make a list of every program, every job, and every file, and be <certain> you haven't missed any.) Then test every program, job, report, and file. (and remember that the changed files sort differently, or they results go BANG.)
2. Replace all the programs with existing new commercial systems, already verified to not have a Y2K problem. (And tweak the new system to do everything the old one did, and do full comparison test between the old systems and the new systems.)
3. Or do a "quick and dirty" set of patches called "windowing" to "kick the can" further down the road. That consisted of checking each year against a benchmark year. If the year coming in was less than the benchmark year, set the century to 2000, else set the century to 1900. The benchmark date used for the compare was called the "Pivot Year". The three most popular Pivot Years were 2020, 2049, and 2050. The advantage was no file changes (so no file conversions), and you could used a sort feature to sort with the Pivot Year and the high/low year.
The problem was that it would fail when the Pivot Year was reached. But the managements who used windowing were certain that (a. They wouldn't be around when it failed. and (b. The mainframe would be scrapped by the end of the windowing period, so why waste money doing a permanent fix?
Except that the mainframes (like DC-3 airplanes) won't ever die. . . .
SO. . . . Here we are.
Companies who use mainframes, and used windowing, and a 2020 pivot date are having their master files corrupted. That started with the first run of the year. They may or may not know about it yet - but believe me, they will!
And they have no time for planning, no time for repairs, every day leads to more master file corruption. The company I am currently doing a contract for got their first taste of the problem on Thursday. The programmer who found the date logic that caused the first complaint, thought it was a single program error, but sent out an e-mail to the other programmers in my area, describing the problem. I immediated knew what was happening (I had spent 2 intense years doing a #1 fix, from late 1997 to late 1999), and gave a heads-up to my manager. Friday morning I completed a code search of programs that probably had the some aspect of the problem. At least 1,600 programs. I gave the list to the managers involved. Friday afternoon, I was included in the management meeting. I gave them the scope of the problem and what had to be done immediately (I made it clear immediate was that afternoon!). I was "patted on the head", and the development lead programmer assured that the 8 to 10 critical programs had already been changed, and the rest could be handled without any panic. I was thanks for my input, and informed that the rest of the meeting were to be management only, and I didn't need to be invited. Ok by me, I'm a contractor. I don't give a D.R.A. about the company, just the quality of my work.
How many more companies are like this, who knows? 20 Pivot was the lowest common pivot year, 49 and 50 were much more popular. But the next few months should prove very interesting. . .