Joho the Blog » Y2K’s 1% solution
Everyday Chaos
Too Big to Know
Too Big to Know
Cluetrain 10th Anniversary edition
Cluetrain 10th Anniversary
Everything Is Miscellaneous
Everything Is Miscellaneous
Small Pieces cover
Small Pieces Loosely Joined
Cluetrain cover
Cluetrain Manifesto
My face
Speaker info
Who am I? (Blog Disclosure Form) Copy this link as RSS address Atom Feed

Y2K’s 1% solution

Just over twenty years ago, computer scientists were racing the clock to fix a possibly devastating error brought about by an over-estimation of the pace at which tech becomes obsolete, which is an over-estimation of the pace of change itself. It turns out that one of the two popular solutions to the problem made the same mistake. And now we’re paying for it, but mainly through some annoyances, not the sort of world-stopping calamity that the prior error threatened.

The problem twenty years ago was that software developers had with some frequency thought that storing the year could be done with two digits, so that 1970 would be saved as 70. After all, the program wouldn’t still be used in 2000! Would we also still be driving around on earth-bound cars, or giving poodles ridiculous haircuts? Ridiculous!

But, if those apps were in fact still be used as the new millennium began, then the two digits internally representing the year would be taken internally as 00, which would be likely to confuse a computer that would assume – based on the way numbers work – that 00 (2000) comes before 70 (1970). And 2001 would look like 1901, etc.

One approach developers took to preempt the Y2K (year two thousand) bug was to change the way the programs expressed date data, allotting four digits to the year. We shall call this “the right way.” But it’s more complex than it seems. For example, you may have to find every place in a complex, integrated set of programs where the date is referred to. You may have to recompile ancient code, unearthing compilers from ancient crypts guarded by three-headed dogs. It was a freaking nightmare for many organizations.

The second approach was to write a little code that looked for year dates between 00 and 20, and write an except that takes them as referring to 2000-2020. Most applications aren’t dealing with dates going back to the beginning of the 20th century, so that worked. Chris Stokel-Walter (twitter: @stokel) in his excellent, brief explainer in New Scientist, says that an estimated 80% of Y2K solutions took this approach, known as “windowing”, but which we shall refer to it as the “Please don’t do this” approach.

Well, now it’s 2020 and some indeterminate number of windowed apps haven’t updated the fix. Thus, some traffic meters have stopped working. As Chris writes, “The theory was that these windowed systems would be outmoded by the time 2020 arrived…”

So, exactly the same over-estimation of the pace of tech obsolescence has led to exactly the same problem. Surprise?

It’s not at all clear, however, who has made this mistake. The developers implementing the windowing patch were staving off an imminent, plausible crashing of globally crucial systems. Windowing was a reasonable approach to forestalling this crisis … but only if there was a system – a human system – to remember to allocate resources for fixing the problem that the patch postponed.

Conclusion: “Human system” is an oxymoron.

Previous: « || Next: »

Leave a Reply

Comments (RSS).  RSS icon