Delicious Dogfood

Delicious Dogfood


In software development, eating your own dogfood applies to when you use the product that you're building. Dogfooding makes you put yourself in your users' shoes and since living in the house every day is very different from designing and building it, you end up noticing some flaws that you didn't even think of in the first place.


At OutSystems we eat our own dogfood every single day. As a company that builds a platform that allows you to build amazing web applications, we couldn't even take ourselves seriously if we didn't use the Agile Platform to build our own website.


Actually we believe in our platform so much that, among other things, we use it for:

  1. our website, including
    • the OutSystems Commmunity website that includes the forums, downloads, components and the articles area where you are reading these words;
    • the OutSystems Academy, where you can go to get training and certification on the Agile Platform;
  2. our issue tracking system
  3. our project management and sizing tools
  4. our complete intranet, including directory, vacations booking and approval and much more
  5. build management (nightly builds, etc)
  6. regression testing orchestration and dashboard


... and a lot more incredible stuff. Actually a considerable part of the platform itself is built using the platform!

Agile Platform Service Center



Building those systems ourselves is awesome because if we need anything we just implement it. Recently a team leader wanted to use KANBAN on his project and wanted to use it in our project management tool, so he just edited the tool and created a KANBAN board in a couple of minutes. Bang! Problem solved.


Keeping a rich diet

Although eating your own dogfood is very important, you shouldn't go on a dogfood only diet. Making all your own tools doesn't make sense especially when there's already a very good tool available for the job. Sharing documents or editing them collaboratively? We use Google Docs! Source control? We've started with CVS many years ago and have since moved on to subversion.

It's not a matter of fundamentalism: we don't dogfood all things and you shouldn't either. It's just not practical to do everything yourself. You should always use the best tool for the job. However if that means not using your own tool for anything, then there might be a real problem with your product.


Using other's tools also doesn't mean that you lose the ability to add that extra feature you need. We use Google Docs, but we've integrated it with our own Vacations booking and approval system so allocation sheets and reports are automatically updated when new vacation days are approved. We use subversion, but we've integrated it with our issue management system to track subversion commits in their related issues. The true gourmet uses dogfood extensibility and integration for extra flavor!


Snoopy the Dog not designed with the Agile Platform

Keeping a rich diet may also be important because you're not alone — people around the world are having ideas and then sharing and putting them to practice. You should check what new flavors have been appearing and how you can improve your own dogfood with your neighbor's recipe.


Always a fresh flavor

Opening the can is left as an exercise for the reader
If you eat your own dogfood and don't like it, you should improve it until it's good. But there's a real risk that you grow accustomed to its flavor and stop noticing how bad it is. After a while, an experienced user will condition himself or herself to whatever quirks a program may have until they become second nature. Your dogfood didn't just improve magically: Your program is still bad! Everyone just got used to it, and getting used to it is very dangerous because it makes it harder to recognize the problems.



At OutSystems we try keeping our own dogfood flavor always in check. That's why when someone new joins the company, the first weeks are spent using the product to build something real and useful. It is a win-win situation: The newcomers learns a lot about the product and everyone else gets fresh insight from their feedback, many times bringing to our attention small (and not so small) improvements no one had thought of yet.


Home cooking does not make you a great chef

Keep in mind that your tastes, like your needs, may be different from the rest of the world's. If you grow your product based only on what you get from the process of dogfooding, you may end up deviating from your customers' needs.

Eating your own dogfood is a very important test, but it doesn't assure that your product is good. Just because YOU can use it, it doesn't mean it's usable, let alone useful. You must always complement dogfooding with usability tests and listening to your users.


Only when others also approve your dogfood, can you truly believe it is delicious and ready to market!

I prefer the "drink your own champaign" metaphor :)
Craig Terblanche wrote:
I prefer the "drink your own champaign" metaphor :)
But then we couldn't have used that beautiful photo of a colleague's puppy. ;)

BTW, welcome to the community Craig!

Thanks for the article.  Its very insightful to see what is going on behind the scenes at Outsystems.  One of the many challenges to creating the "best flavor" is knowing what ingredients are actually available.  With technology, this is a constantly moving target.  At a recent conference I attended, a technology consulting company shared their "technology radar" wtih us (  This provides development teams a simple way to know what is available to them and what is worth pursuing.