A colleague told me an amusing story about an oddball design decision that puzzled him and three tech service representatives for days. Norton Antivirus told him his antivirus software was out of date, so he updated it. The next time he booted, the program told him it was still out of date–and it continued to do so on every boot even though it had claimed the previous time to have updated successfully.
The first responses naturally focused on whether the database was corrupt or otherwise failing to update. But eventually a savvy technician figured out the real problem.
It seems that my colleague had checked his calendar for a date in the following month and had left his calendar on the month of October while in fact it was still September. Norton Antivirus relied on his personal calendar to determine what date it was. The software had been updated for September, but the program thought the month was October.
I am curious as to why a programmer would take such an unrobust decision to use a user’s calendar setting to determine the date. I’m wondering whether the programmers discovered that to get the date from the operating system would require a variety of different calls on different systems, and found it simpler to consult a calendar. Obviously, this backfired. A program that installs automated updates should use an external authority to find the date, and not depend on any settings on a user’s PC at all.
The bug was particularly amusing because the program was promising to have an update it couldn’t possibly have for the upcoming month.