Eating Dogfood (DF)

Growing up in East Tennessee, I owned American Bull Terriers, German Shepards and hound dogs but at no time did I ever eat any dogfood nor did I ever even taste it… however, I did see a girl from down the road try it one day but that's a different story and I own a cat now. The dogfood that I'm talking about eating today is when a team uses its own software bits during the software product cycle prior to Beta or release to see how it works or as is sometimes the case, how it doesn't work.

Dogfooding can yield great results that one cannot get in a test lab. During dogfood, you are actually using the software product as part of your daily routine. In the case of Microsoft Exchange, our dogfooding encompasses thousands of people across multiple groups/divisions here at Microsoft using email on newly created backend services. You might be thinking that in a lab, you could have more email test accounts that could stress and work the software to its limits and be able to inject various emails with and without attachments, yada, yada, yada, etc. Well, that is true and prior to dogfooding one needs to have the bits properly tested and as stable as possible. The real world usage in dogfood however, allows one to understand the product more deeply and find customer pain points that a test environment just cannot do.

The feedback and issues obtained during eating dogfood comes from the dogfooding customers of the software. For example Microsoft Exchange has as our dogfooding customer Microsoft IT deploying the dogfood bits and maintaining the dogfood servers. MSIT gives us a great feedback on how our setup/install and configuration documentation is, of how well our setup program works, what it is like maintaining the dogfood servers, etc. Then there's the dogfood customers using these dogfood servers to send/receive email. (I need to mention that at Microsoft, we live and work by email.) If the dogfood Exchange servers are down for some reason and our dogfood customers cannot send/receive email, well, let's just say we hear about it very quickly. We also quickly investigate and fix the issues as fast as possible. This feedback is unique to dogfood because the issue most often could have been found in a test lab within a reasonable period of time and cost nor possibly even at all given the real world randomness.

Now as you may expect, your dogfood customers have to have patients as the issues arise and while you are working to fix the issues found in dogfood. It is along with you that all involved in dogfood get to taste the bitter sweet success that only eating dogfood brings from first hitting and finding the issues and then from fixing them. Remember all along that in the end, you will learn how to build better software and that your customers using the released software will benefit from the pain experienced while you were eating dogfood.

I suggest that you give eating dogfood a try even if it is a small application you are working on and if it would only involve a few people. The real world feedback you get could just make the bits you are writing even better!

At this time, I would like to thank all of those people here at Microsoft who are supporting us in our Exchange Dogfood efforts of Exchange Server in our process of making Microsoft Exchange better than ever! Nailing the production issues before our customers do is what dogfooding is all about! Again, thanks all of you who are supporting us in our Exchange Dogfood efforts, you are the greatest!

For more on

Eating Dogfood, go to https://www.msnsearch.com and enter "dogfooding"