Dogfooding: It’s Great When Done Right

Introduction 

When incorporated into your company correctly, dogfooding can be a fantastic tool. It's too bad that most companies kind of suck at it. Why might that be, you ask? Dogfooding tends to create a negative feedback loop. But, when it's done correctly, it can be an essential tool in your technology stack. 

What is Dogfooding in tech?  

"Dogfooding" derives from the quote, "Eating your own dog food." In essence, eating your own dog food means using and testing your products within your company. 

In tech, dogfooding is a common practice, especially with SaaS. Think about it: your company created a product to solve a problem. What better way to solve that exact problem than with your software? 

In this article, we'll go over the pros and cons of dogfooding, why you might want to use it, and how to implement it effectively within your own company's structure. 

Should you eat your own dog food? 

The answer to whether or not you should eat your own dog food is...complicated. Some are ardent supporters of using their tech within their company, while others believe it to be a terrible idea. 

Here's how Airbrake's Engineering Director, Jeff Gonzalez, phrased it: “How you choose to implement dogfooding at your particular company will determine how effective dogfooding will be on your product.”

Question is, how do you use dogfooding within a company? First, let’s go over some of the pros and cons of dogfooding. 

The pros of dogfooding

Pro #1: Your product is (hopefully) good at what it does

You created this product for a specific reason. Why pay for additional software that does what your product does? 

Pro #2: More visibility on quality problems

As a user yourself, you’ll see any quality issues within your product. As Gonzalez puts it, "Chances are if internal users use the software as much as external users, they will notice problems and report them, hopefully before external customers notice them." 

Plus, by finding these issues early, you'll also save money. According to a 2020 report by The Consortium for Information & Software Quality, poor software quality resulted in a $2.08 Trillion (yes, with a "T," Trillion) cost in the United States.

Pro #3: Increased empathy for external users

Because you're essentially in the user's seat by using your product, you'll understand what the software experience is like for your customers. If something annoys you, there's a good chance it also annoys your users. With this knowledge, you'll be able to fix these issues. In addition to this, you'll also have a better understanding of how your software provides value to users. 

Want to ensure your external users are having a great experience using your product? Use an Apdex Score to quantify their experience. 

The cons of dogfooding

Con #1: You create a negative feedback loop

When you use your product, you're likely using it in one particular way. This may not be what the user experiences. You're essentially cutting yourself off from other use cases. 

Con #2: You yourself are not an adequate tester 

Dogfooding your product does not replace the need for actual testers. Once again, you only see a product through one lens: yours. It's the equivalent of writers editing their work before publishing it. Your biases prevent you from seeing the real issues with your product. 

Con #3: You become over-reliant on your product

While your software may be great at what it does, you can become too over-reliant on it. What if there’s an error within your software that has skewed your product's data? That means you end up relying on incorrect data to make future decisions. 

As you can see, there are plenty of pros and cons when dogfooding within your company. So, how do you implement a dogfooding strategy that actually works?

The right way to dogfood 

Airbrake Error & Performance Monitoring does dogfood our product. But, we do so in a thoughtful way because our engineering team understands the blind spots you develop while dogfooding.

 Here's what we've done to combat this: 

  • We run two instances of our product (one for production and one for monitoring production). 
  • We use additional monitoring solutions, like LogicMonitor, that help us fill in the gap so that we don't rely on one source of truth. 
  • We ask our users for feedback and how they might use the product. 

And as Gonzalez states, "dogfooding has to be an authentic usage and application of the product within your own company." Attempting to use your product in a way that it's not designed to be used undermines all the benefits of dogfooding. 

These steps that we've taken give us the checks and balances necessary to dogfood responsibly.

What does this look like in action? 

Airbrake has been great for monitoring, well, Airbrake! Our product has alerted us to bugs within our system numerous times. 

Here's a perfect example:Dogfooding Example

In this image, you can see where Airbrake had an increase in errors. Immediately, the engineering team took action to fix the cause of these errors. In this example, we're using the product in the way it was intended, along with the knowledge that the data we're seeing is correct based on other monitoring software we use. 

We hope this article gave you some insight into whether or not you should dogfood. The trick is to use it as a tool and not to become over-reliant on it. Remember, what you experience while using your product may not be the same thing your users experience. 

Want another tool you can use to ensure your users are having a great experience? Airbrake Error and Performance Monitoring offers powerful user experience monitoring, without the IT bloat. With Airbrake Performance Monitoring, developers have access to tools they NEED to understand how code is performing in production and its impact on users. Try it out today and create a free Airbrake dev account!