Happy new year, well, at least if you follow the Gregorian calendar. Every new year just before the calendar turns over I get a little nervous. Nothing like the Y2K time, but some tension nevertheless. The systems I take care of at work have been humming fine for years, at least as far as the calendar turn-overs go. But I always wonder about that one program I or a teammate wrote, or the one product we rely on going awry on January 1st.
Maybe a logging subroutine will look for a 2010 subdirectory in vain and crash trying. Or maybe some old product will think 2010 is really 1910 (if it still relies on a 2-digit year format), or vice versa and will make a giant mess of a calculation. Who knows what lurks under the heaps of twisted and long-forgotten code.
To be sure, the industry did have some headaches with 2010. Bank cards in Germany stopped working. Cisco and Symantec had issues with hard-coded dates in some of their products. Fortunately nothing too drastic happened that wasn't fixable and a few days into the new year things seem to be running normally.
As for us, we had one issue with an old internal reporting system which had the future years hard-coded through 2009 but no further. A user reported the crash and we promptly fixed that by extending the years to 2020. I know, we should just fix the code to automatically handle the years, but who has the time when we can just edit the code and append a few extra years to the list. Consider it a human-powered exception handling!
And so with the exception of that little problem, everything else appears to be OK. Guess that means that I'll be getting another support call in a decade and I'll probably just extend it for another 10 years, like a passport renewal process. After that, either me or the program will have been retired and we'll leave it to the next generation of programmers to tackle the issue. We must leave something for them to feel useful. I mean our predecessors gave us the Y2K challenge forcing us to use a 4-digit year format and it's long way off to Y10K.