Back when I was a wee young lad, fresh from college, I thought I knew everything there was to know.
I’ve since been disabused of that notion, rather painfully.
One of the best happened very early on, back when I was working on DOS 4. We ran into some kind of problem (I’ll be honest and say that I don’t remember what it was).
I was looking into the bug with Gordon Letwin, the architect for DOS 4. I looked at the code and commented “Maybe this is what was happening? But if that were the case, it’d take a one in a million chance for it to happen”.
Gordon’s response was simply: “In our business, one in a million is next Tuesday”.
He then went on to comment that at the speeds which modern computers operate (4.77 MHz remember), things happened so quickly that something with a one in a million chance of occurrence is likely to happen in the next day or so.
I’m not sure I’ve ever received better advice in my career.
It has absolutely stood the test of time – no matter how small the chance of something happening, with modern computers and modern operating systems, essentially every possible race condition or deadlock will be found within a reasonable period of time.
And I’ve seen some absolute doozies in my time – race conditions on MP machines where a non interlocked increment occurred (one variant of Michael Grier’s “i = i + 1” bug). Data corruptions because you have one non protected access to a data structure. I’m continually amazed at the NT scheduler’s uncanny ability to context switch my application at just the right time as to expose my data synchronization bug. Or to show just how I can get my data structures deadlocked in hideous ways.
So nowadays, whenever anyone comments on how unlikely it is for some event to occur, my answer is simply: “One in a million is next Tuesday”.
Edit: To fix the spelling of MGrier’s name.
Edit: My wife pointed out the following and said it belonged with this post: http://www.jumbojoke.com/000036.html