Microspeak: Dogfood

Everybody knows about the Microspeak term dogfood. It refers to the practice of taking the product you are working on and using it in production.¹ For the Windows team, it means installing a recent build of Windows on your own computer as well as onto a heavily-used file server. For the Office team, it means using a recent build of Office for all your documents. For the Exchange team, it means moving the entire product team to a server running a recent build of Exchange. You get the idea.

Purists would restrict the use of the word dogfood to refer to a product group using its own product, but in practice the meaning has been generalized to encompass using a prerelease product in a production environment. The Windows team frequently dogfoods recent builds of Office and Exchange Server. Actually, the Exchange Server case is one of double-dogfood,² for not only is the server running a prerelease version of Exchange Server, it's doing so atop a prerelease version of Windows!

Dogfooding does have its costs. For example, the prerelease version of Exchange Server might uncover a bug in the prerelease version of Windows. While the problem is investigated, the Windows division can't send email. These outages are comparatively rare, although they are quite frustrating when they occur. But you have to understand that the whole purpose of dogfooding is to find exactly these sorts of problems so that our customers won't!


¹ Despite the efforts of our CIO, the term ice-creaming has not caught on.

² I made up the term "double-dogfood" just now. It is not part of Microspeak.

Comments (28)
  1. Joshua Ganes says:

    'ice-creaming' just doesn't hold the same emotional impact as the term 'dogfooding'. If you're serving yourself a disgusting (software) product, hopefully you'll take some action and make it more palatable. If you're already working with ice cream, you can still make some improvements, but none are necessary to be desirable.

  2. kinokijuf says:

    What build of Windows 8 are they using?

  3. Larz Olsen says:

    Our dogfooding program has the ironic/I'm-not-sure-if-this-is-entirely-appropriate acronym 'MiA'.

  4. No One says:

    Dogfood isn't really disgusting, just bland.

  5. Robert P says:

    The next logical step is obviously the double-dogfood dare, in which you dogfood a product you know contains critical, difficult to reproduce bugs that have to be found asap.

  6. Joshua says:

    Just don't do it for source control unless you like heartache.

  7. Jon says:

    Actually I thought "the whole point of dogfooding" was to give you the motivation to fix the issues (because it directly affects your ability to send email, or do you job, or whatever, just as it would for your customers), rather than replacing the need for a test department – i.e. finding the issues in the first place.

    [It doesn't replace testing; it supplements it. It's very hard to replicate a complex real-world environment in a test lab. "Hi, we need to simulate 6 months of usage on a large network." -Raymond]
  8. pm says:

    i remember when win2k kernel team checked in pnp; total chaos for about a week for all of us dogfooding 2k. But a teams gotta do what a teams gotta do. If it tasted good it wouldnt be called dogfood

  9. Brian Tkatch says:

    Dogs would rather eat ice cream.

  10. Chris B says:

    What is the relationship between dogfooding and QA? Is it necessary for a dog-foodable build to have passed QA?

  11. Jonathan says:

    Chris B: Dogfooding is a part of QA. Once a product has passed a certain level of QA, it is deemed dogfood-quality, and can then be deployed as such.

    In server groups, sometimes we use "selfhost" instead.

  12. Michael says:

    It would be triple dogfooding if the recent builds of Exchange Server were built with the most recent build of the VC++ compiler.  Maybe it would be quadruple dogfooding if the most recent build of the VC++ compiler was built from a VC++ compiler with the same code (but compiled with the previous build of VC++ compiler).

    Head explodes…

  13. Gabe says:

    I had a friend who worked on the original Exchange server. The whole Exchange team was dogfooding their server, of course, which meant that they all lost their mailboxes whenever the message store file format changed (or the message store just got corrupted). That may or may not have been worse than using the Unix (XENIX) based system that everybody else was using at the time.

  14. Adam Rosenfield says:

    @Michael: I can't speak on VS's behalf, but with GCC, that's par for the course — when making a new build of GCC, they first use an older build to build the new code (the bootstrapping), then it recompiles itself.

  15. David Walker says:

    Yes, building a VC++ compiler using a prerelease VC++ compiler (and so on) is amazing.  Bugs in the compiler may create bugs in the compiler (they may be invisible but still present).

    I like the term ice-creaming better than dogfooding!  Maybe it will catch on.

  16. Anonymouse says:

    In another very large multi-national corporation who shall remain nameless they like to try and call it "drinking your own champagne" – I assume dogfood isn't seen as good enough.  I just laugh at them…

  17. tsrblke says:

    @Raymond @Jon,

    Not to mention that many times you don't really think of something until you use it in the wild. I've had the joy of testing too many pieces of software by too many companies large enough to know better that clearly built bad Market research teams.  It wasn't until someone handed them the software and said "Use this, please"  that they realized it was horrible.  (Plus most of them were designing software they don't even use!)

  18. dog pooing says:

    I despise using my employer's software, and would not recommend it to my worst enemy. When stupid boss ask why, I explain it suck big time, and he goes and shouts on the people i blamed. Repeat every 3 month.

  19. Nat says:

    I worked at a job once where the VP of Engineering unintentionally mixed expressions and came out with this at one group meeting:  "We need to dogfood this puppy".  It didn't leave a good image in my mind :-)

  20. Cheong says:

    I doubt the word "ice-creaming" will go far, as the word "dogfooding" has been used everywhere quite some time and most developers have been used to it.

    It's just no longer an issue related to branding…

    As for Exchange server down for a breaking pre-release, it wouldn't be much a problem if they run 2 Echange servers and then set the dogfooding one to automatically forward a copy of every mail received to the corresponding mailboxes of backup Exchange server. When the dogfooding server dies because of buggy build, the backup server will keep mail functions up by a few networking tweak.

  21. Worf says:

    Probably call it teabagging over at the E&D division whenever they test new Xbox builds. After all, a screwup would result in one geting teabagged.

    Then again, I wonder how the Win CE team dogfoods – it's not like they can do all their work inside WinCE. The Phone team is easy – just run it on their phones.

  22. Ooh says:

    To me "ice creaming" sounds like all employees in some group would get a new phone with a competitor's OS…

  23. Neil says:

    @James: the first thought that came to my mind was, I hope Bear Grylls doesn't start working for them.

  24. James says:

    >> In another very large multi-national corporation who shall remain

    >> nameless they like to try and call it "drinking your own champagne"

    Ahem, the first thought that came to my mind was, "No way! Who's going to drink ***that***???"

  25. Cesar says:

    @Adam Rosenfield: GCC goes further than that. It uses an older build to build the new code (stage1), then it recompiles itself (stage2), then it recompiles itself again (stage3), and compares the last two builds. They should be identical except for things like timestamps on a few binary formats, else there is a bug somewhere.

  26. Chris says:

    I just can't take the term "ice-creaming" seriously. If I heard someone saying they were "ice-creaming" Windows I'd have to wonder if Windows gave its consent.

  27. Meni says:

    I recently talked about this exact topic with a friend.

    Dogfood your own product is fun! Using your own product to help you to build the next version of that product is double fun!

    Think about:

    * Windows division guys who use Windows to develop the next version of Windows…

    * Visual Studio guys from DevDiv who develop the next version of Visual Studio using Visual Studio…

    * Office guys who write specs about next version of Office using Office…

    * TFS guys who stores their next release source code in TFS…

    * Compiler guys who builds the next complier using the current one…

    Etc. etc….

  28. NT says:

    There is also a term "puppyfood" (maybe specific to Office?) which I guess means "A release candidate for dogfood".

Comments are closed.