Iris Classon
Iris Classon - In Love with Code

Stupid Question 163: What is dogfooding?

[To celebrate my first year of programming I will ask a ‘stupid’ questions daily on my blog for a year, to make sure I learn at least 365 new things during my second year as a developer]

Dogfooding, can you stomach your own software?

I don’t know where, or when, but I heard somebody use the term ‘dogfooding’ in regards to software. I had no idea what that means, honestly it doesn’t sound very appetizing :)

Sometime in the 1970’s somebody demonstrated that the dog food sold by the company was so good, it could be consumed by humans. And he (or she) ate it. Fair enough. Then a few years later Microsoft manager Paul Maritz sent an email titled Eating our own dogfood, where he talked about the importance of using the software they created.

So dogfooding is all about using yourself what you expect others to use, and this is a common practice seen by Google and Microsoft, and quite a few other companies. I’ve also seen this phrase used by companies creating software for internal use (which may or may not be sold to costumers).


Leave a comment (via email)
3/14/2013 1:14:10 PM
When you are using your own product you are dog fooding.

IIRC Delphi was built in Delphi. Visual studio is probably built in... drumroll... visual studio.  unt zu weiter 
Steve Smith
3/14/2013 1:17:22 PM
I have a nice write-up of it here, along with a graphic from the 2013 Software Craftsmanship calendar :). 
3/14/2013 2:15:41 PM
I always heard that the origin story was that the spokesman for Alpo dog food fed the food to his own dog because he so believed in the product that he used it himself. 
3/14/2013 11:27:28 PM
I'm an amateur app dev and I follow this method religiously. I basically make apps that I personally want, so I end up using them a lot. It really helps to not only find bugs, but also to iron out the little things that users find annoying. I'm always looking for ways to streamline actions or remove clutter, and I feel that my apps get better with every update.

So my main use of dogfooding is to pinpoint anything annoying, tedious, or unclear about my apps so that the end user has a better experience. 
Jonathan Cardy
3/15/2013 1:07:17 AM
I think it's most commonly used to refer to APIs. So for example if you're releasing an API (eg a public web service) for your app, you should build your app on top of it and that way you'll know it contains enough features and is performant enough. 

Last modified on 2013-03-14