It'll be a long while before Donnie will forget about March 5th, 2004. Early that morning (during one of the ungodly hours), Donnie received his first off-hours support call. Naturally, one of the "mission critical" applications (more specifically, one that Donnie knew only by name) was completely broken and needed to be fixed right away. With the primary and secondary support guys unavailable, Donnie was on his own.

After waking up and reading the sparse documentation available, Donnie looked at the errors and noticed that most seemed to originate in the database. A bit more digging and Donnie found that the problem was at the apparent center of the database, the Date Table:

As it turns out, the system "abstracted" out dates into a separate table and every table requiring a date field used the DateId instead of the real date. The application didn't cope so well when the Date Table ran out of dates. Donnie inserted ten year's worth of dates into the Date Table and, after filing his report, the primary support guy thanked him and mentioned "yeah, this happened last year; we probably should have put more than a year's worth in there."

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!