Eating dog food doesn't sound like much fun but it's an important part of creating software.

Dogfooding is short for “eating your own dog food”. As a software company or developer, this means using for yourself the software you write for your clients.

This has great advantages because you are able to see what the user experience is like for your clients. You are also more likely to fix a bug if it affects you in your daily work.

For a long time the compiler for Microsoft’s C# programming language was written in C++. Then the C# team at Microsoft created a new compiler called Roslyn, which is written in C#. It is a lot faster than the previous compiler and it has the advantage of now being cross-platform (it works on different types of computers). It’s interesting that the code to compile the language into code is written in the language.

No one really knows where the term dogfooding or eat your own dog food comes from. In the 1980s, a TV actor Lorne Greene mentioned he fed Alpo dog food to his own dogs. And the CEO of Kal Kan Pet food also supposedly ate the company’s dog food product at annual company meetings.

However, the first mention for computer programming was in an email from a 1988 email from Microsoft manager Paul Maritz, titled Eating our own Dog Food, encouraging another Microsoft manager to use their products as a way to understand and improve them.

So now that you know what dogfooding means, can you find ways to try it yourself when creating a tool or application for other people? What software do you use, or could you use, that you might also build for other people?

Learn More

Eat Your Own Dogfood

What is the Work of Dogs in this Country?


  • Tim Slavin

    Tim is an award-winning writer and technologist who enjoys teaching tech to non-technical people. He has many years experience with web sites and applications in business, technical, and creative roles. He and his wife have two kids, now teenagers, who are mad about video games.

Also In The August 2019 Issue

Explore the world, spend time with family and friends, and shed some light on the secrets of nature!

Make your sprite’s motion more realistic by adding acceleration and gravity to your code!

These three strange words keep popping up in coding tutorials. What’s their story?

Interactive play is a great way for students to learn STEM concepts, and new web technologies are making this easier than ever.

Meet the STEAM star who’s combining activism, innovation, and collaboration to build a better world — with sparkles!

Eating dog food doesn't sound like much fun but it's an important part of creating software.

Transform ordinary smiling faces into something kooky and unique with this fun SketchUp activity.

Learn what your antivirus software does, and why it’s important to keep it updated.

Driverless cars could mean less traffic and less accidents, but their developers have some challenges to solve.

A long time ago, before the internet, games were stored on cassette tapes — just like music! Well, Sort of.

We might think robots are a modern invention. But al-Jazari created amazing automatons in the thirteenth century. Today we would call him a maker.

Why does your computer need special hardware to render graphics? And what’s the deal with all those pixels, anyways?

A quick primer to the ins and outs of typed vs untyped programming languages.

Links from the bottom of all the August 2019 articles, collected in one place for you to print, share, or bookmark.

Interesting stories about computer science, software programming, and technology for August 2019.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!