Developers
October 2, 2020

’Eating Your Own Dog Food’: What It Means and Why It Matters

’Eating your own dog food’ is a popular phrase in the software development industry that can have a profound impact on a project's success.

In 2008, ZDNet’s John Carroll famously called on Microsoft to ‘eat their own dog food.’ While the term, also known as ‘dogfooding,’ has been used in the software development industry for decades, it may not be an expression many outside the developer community are familiar with.

Despite that, dogfooding can be a critical component to a company’s success, and to the success of their products. What is dogfooding? Why is it important?

Dogfooding: The Origin of the Term and What It Means

‘Eating your own dog food’ is widely thought to have been first used in 1988 when Paul Maritz, a manager at Microsoft, challenged employees to use the company’s products. As time went on, the phrase became common both inside and outside of Microsoft.

In modern IT terminology, dogfooding involves a company’s employees, especially its developers, using the products it develops.

Why Dogfooding Is Important

When companies develop new products or services, one of the biggest challenges is making sure they work as planned for the widest group of users. To accomplish that, products will often go through extensive testing, including automated tests, alpha testing, beta testing and release candidates.

No matter how thorough the testing process is, however, there are still limitations. There’s virtually no way of duplicating every possible use case, nor can every scenario be accounted for, especially with automated testing. Involving potential users in alpha and beta testing is a step in the right direction, but can still pose limitations. The fact is, it can be nearly impossible to prepare for all eventualities.

To make matters worse, developers often have a unique outlook on how software should look and function. Unfortunately, that doesn’t mean everyone else sees things the same way. What makes sense to a developer, may be completely foreign to the end user.

Dogfooding can be an important part of the development and testing process. When companies and developers are forced to use their own product day in and day out, they can gain a deeper understanding of how the average user will eventually interact with it. This can help them find bugs, streamline features and improve the experience in ways that might not otherwise happen.

Similarly, when support teams use the company’s products, it gives them insight into how best to support their customers in ways that can’t be achieved any other way.

There’s another major benefit, beyond improving the development process. Dogfooding can boost confidence in a company’s commitment to their own products. The software industry is filled with examples of good ideas that started off strong before losing momentum and being abandoned. When a company is willing to stand beyond their product, use it themselves and base their business on it, it says a lot about the product’s long-term viability.

In calling out Microsoft, John Carroll highlighted the difference in outcomes when the company ate its own dog food versus the times it didn’t:

"I think it's pretty clear that where Microsoft has truly eaten its own dog food, it has made products that manage to control a large percentage of the market. Consider something simple and fundamental which historically has been as closely associated with the Microsoft platform as WIN32: COM. COM was Microsoft's standard technology for binary interoperability. Built around a simple C-style binary layout that maps directly to the way C++ implements virtual methods (the VTABLE, which is basically a stack of function pointers), it became the de facto interoperability standard atop the Windows platform.”

This is in contrast to technologies such as Windows Presentation Framework (WPF):

”WPF was designed as a modern replacement to the legacy WIN32 user interface technologies. Unfortunately, as Peter Bright in a long response to a previous article noted, there is a dearth of WPF-oriented applications made by Microsoft. This leads to justifiable questions as to whether Microsoft truly considers WPF the future of user interface development atop the Windows platform.”

Conclusion

Carroll’s words should serve as a warning to all companies: Those that don’t eat their own dog food run the risk of their products never gaining the necessary traction to make a difference. In contrast, those that do often end up with better, more stable and more bug-free applications.

Just as important, companies that eat their own dog food build confidence in their products. Other companies see them using their own products and have faith they’re not going to be quickly abandoned. Similarly, the more a company uses its own products, and uses them as the basis for other products and services, the more it creates a cohesive ecosystem that helps drive further success.

In short, any company that wants to succeed in software development should make dogfooding an important part of its development process.

TagsSoftware DevelopmentMicrosoftC++
Matt Milano
Technical Writer
Matt is a tech journalist and writer with a background in web and software development.

Related Articles

Back
DevelopersOctober 2, 2020
’Eating Your Own Dog Food’: What It Means and Why It Matters
’Eating your own dog food’ is a popular phrase in the software development industry that can have a profound impact on a project's success.

In 2008, ZDNet’s John Carroll famously called on Microsoft to ‘eat their own dog food.’ While the term, also known as ‘dogfooding,’ has been used in the software development industry for decades, it may not be an expression many outside the developer community are familiar with.

Despite that, dogfooding can be a critical component to a company’s success, and to the success of their products. What is dogfooding? Why is it important?

Dogfooding: The Origin of the Term and What It Means

‘Eating your own dog food’ is widely thought to have been first used in 1988 when Paul Maritz, a manager at Microsoft, challenged employees to use the company’s products. As time went on, the phrase became common both inside and outside of Microsoft.

In modern IT terminology, dogfooding involves a company’s employees, especially its developers, using the products it develops.

Why Dogfooding Is Important

When companies develop new products or services, one of the biggest challenges is making sure they work as planned for the widest group of users. To accomplish that, products will often go through extensive testing, including automated tests, alpha testing, beta testing and release candidates.

No matter how thorough the testing process is, however, there are still limitations. There’s virtually no way of duplicating every possible use case, nor can every scenario be accounted for, especially with automated testing. Involving potential users in alpha and beta testing is a step in the right direction, but can still pose limitations. The fact is, it can be nearly impossible to prepare for all eventualities.

To make matters worse, developers often have a unique outlook on how software should look and function. Unfortunately, that doesn’t mean everyone else sees things the same way. What makes sense to a developer, may be completely foreign to the end user.

Dogfooding can be an important part of the development and testing process. When companies and developers are forced to use their own product day in and day out, they can gain a deeper understanding of how the average user will eventually interact with it. This can help them find bugs, streamline features and improve the experience in ways that might not otherwise happen.

Similarly, when support teams use the company’s products, it gives them insight into how best to support their customers in ways that can’t be achieved any other way.

There’s another major benefit, beyond improving the development process. Dogfooding can boost confidence in a company’s commitment to their own products. The software industry is filled with examples of good ideas that started off strong before losing momentum and being abandoned. When a company is willing to stand beyond their product, use it themselves and base their business on it, it says a lot about the product’s long-term viability.

In calling out Microsoft, John Carroll highlighted the difference in outcomes when the company ate its own dog food versus the times it didn’t:

"I think it's pretty clear that where Microsoft has truly eaten its own dog food, it has made products that manage to control a large percentage of the market. Consider something simple and fundamental which historically has been as closely associated with the Microsoft platform as WIN32: COM. COM was Microsoft's standard technology for binary interoperability. Built around a simple C-style binary layout that maps directly to the way C++ implements virtual methods (the VTABLE, which is basically a stack of function pointers), it became the de facto interoperability standard atop the Windows platform.”

This is in contrast to technologies such as Windows Presentation Framework (WPF):

”WPF was designed as a modern replacement to the legacy WIN32 user interface technologies. Unfortunately, as Peter Bright in a long response to a previous article noted, there is a dearth of WPF-oriented applications made by Microsoft. This leads to justifiable questions as to whether Microsoft truly considers WPF the future of user interface development atop the Windows platform.”

Conclusion

Carroll’s words should serve as a warning to all companies: Those that don’t eat their own dog food run the risk of their products never gaining the necessary traction to make a difference. In contrast, those that do often end up with better, more stable and more bug-free applications.

Just as important, companies that eat their own dog food build confidence in their products. Other companies see them using their own products and have faith they’re not going to be quickly abandoned. Similarly, the more a company uses its own products, and uses them as the basis for other products and services, the more it creates a cohesive ecosystem that helps drive further success.

In short, any company that wants to succeed in software development should make dogfooding an important part of its development process.

Software Development
Microsoft
C++
About the author
Matt Milano -Technical Writer
Matt is a tech journalist and writer with a background in web and software development.

Related Articles