Brent's Favorite Bug
This bug is my favorite mostly because of how my experience with it transformed my career.
It was 1998. I was a middle manager for a platform called CDO, Collaboration Data Objects. The API’s were to allow Application Developers to build fantastic workflow tools on top on Exchange Server. The platform was available on client and server OS’s. If you’ve ever used the mail API’s in .NET or CDONTS on NT, you’ve used it.
Exchange Server back then partnered with the Outlook and Windows Server teams. CDO was going to be newly shipping in Outlook and the (then) upcoming Windows release. My team and I were all very excited about it. We carefully considered all of the cases, wrote up beautiful plans, drew up perfect schedules, and then…
Proceeded to execute in an entirely interrupt-driven fashion. Whatever emergency Dev had, my team had. Exchange itself had heavily marketed itself as an App platform, so whatever emergency it had, my team had as well.
This was all good until I got a call from my manager. It seemed someone in the Outlook team had found a bug in CDO. Office was a couple of weeks past locking its build down for final ship. The bar had to be pretty high for any bug to get fixed. Well, this one was.
The claim was CDO was not working on Windows 98…. At All.
I guffawed indignantly at that claim. Of course, it works! My team was the best test team ever. So I went about trying to debug what might have gone wrong. Silly User!
So I did what I had done a zillion times before, except something new happened this time….
I stared at the screen in disbelief. I was shocked. I tried again. Still NOTHING!
I called in my Dev middle manager peer and asked him what he thought I was doing wrong. He asked a bunch of questions that all showed nothing. So he got one of his developers to debug.
“Oh”, he said nonchalantly, “from the callstack, you are missing DCOM. See… It’s failing to load a DLL.”
So we looked to see what was wrong with DCOM… We found out that it wasn’t available on that OS. EVER!!!
My team, being server based, had all been testing on NT. Not, you see, on the Windows 98 OS that Office had just used to sign off.
I was dejected. I looked over all of our plans. We planned it. But we had failed to execute on covering it. Just had not yet gotten to it and had not tracked it as an exit criteria. None of my 35 testers, 20 developers and 5 PMs had tried it.
It was definitely a bad moment. Once I realized that I was going to need recall Office from shipping on time for this, I was miserable. So I began practicing my speech and walking to my boss’ office. One of my frontline managers intercepted me. I think he knew I was going to fall on my sword. If I had been my boss at that moment, I would have fired me.
“Brent, don’t do it.”
“Don’t do what?”
“Anything. Go home. Sleep on it just 1 night. If you still feel the same way, I won’t stand in your way.”
That was reasonable. So I did. Had a nightcap and tried (failed) to get a wink of sleep. When I came in, I found the same manager there… And in the same clothes… In fact, so was my whole team. They had all done an all nighter.
You see what happened was my team did not want to see me go down with the ship. They had all worked together to find a fix and completely test it end to end in 24 hrs (including finding and fixing bugs). The whole undone section of my test plan was repaired in 24 hrs.
So yes, I went to talk to my boss the next day. And yes, I got yelled at, but my team had given me a way out of the nightmare.
This is my favorite bug because of two things:
- It reinforced the importance of testing.
- It showed me why it is *always* important to invest in and be loyal to your employees.
-- Brent Jensen
Do you have a bug whose story you love to tell? Let me know!