Dogfooding Your App: Benefits and Risks

Bryan Hill
3 minutes

The practice of dogfooding has been around for ages in one form or another. Companies often distribute their products to employees as a way to beta test them before going public. In a modern-day setting, it has actually become common practice in most software companies.

However, don’t let its popularity fool you into thinking that it’s an all-encompassing solution. It isn’t a replacement for more traditional methods of testing your app. Dogfooding can bring value, but it can also have the opposite effect if not done right. In this article, we’ll explore its benefits and risks to determine when to implement it and how it can be of value.

What is dogfooding?

Dogfooding or “eating your own dog food” is a software practice where a company uses its own product. In such a scenario the employees act as testers for the product, ensuring it has viable applications in the real world. It’s used in the stages before public release and acts as quality control. Once the product has gone public, dogfooding is used to demonstrate confidence in the work that has been done in the form of an advertising testimonial.

Real-world dogfooding application

What’s so great about dogfooding? Well, it allows you to see how an app performs in real-life situations while having the luxury of observing it from up-close. It can also give you a better sense of which other ways the product can be used besides its original purpose. Yet, this is by far not its biggest benefit.

You also get to put yourself out there among the crowd, in the user’s shoes and really see things from their perspective. It’s priceless to be able to connect with people that use your app on a daily basis and understand their needs and gripes.

Degrees of dogfooding

The practice of dogfooding comes in degrees, depending on how far removed the use case is to the app’s intended purpose. If you’ve created an app your company has no use for, and you decide to distribute to your employees anyway, it’s going to be hard for you to see its real-life application. You might gain some valuable insight along the way, but you’ll still be missing out on the bigger picture.

Dogfooding simply exaplained, a comic by Geek and Pole.
Dogfooding simply explained (source: Geek and Poke)

To identify the real obstacles in both your app and its experience make sure you distribute as closely to your target audience as possible. That’s the only way to ensure you get the most actionable feedback possible, and that you’ve really put yourself in the right customer mindset.

Stages of dogfooding

Often enough, dogfooding occurs in 4 different stages. Let’s take a closer look:

  1. A stable version of the app is made available for testing.
  2. Multiple features get added and the app gets re-tested.
  3. Interviews are conducted to see how well it has performed so far.
  4. The app gets prepared for an upcoming public release.

The goal of each of these stages is to ensure quality and confirm the software’s usefulness across a period of time. This way you cover any potential inconsistency or dependency issues along the way.

Benefits of Dogfooding

The possible benefits of dogfooding go way beyond just identifying and fixing bugs.

Reduces the need for outsourcing testers

It’s often quite difficult and costly to find testers for your app. If you’re facing such a problem, dogfooding might offer the perfect solution. Be wary though, this quite depends on the product you’re using, so it isn’t a universal kind of idea.

For example: if you’re building a tech-savvy product, it might be a good idea to distribute the product to the rest of the company that already employs a lot of developers. It beats trying to find testers that have some programming knowledge. In cases such as this, dogfooding can really help you get the most value in the shortest possible time and give you something actionable to work with.

Puts an emphasis on privacy

If your company is all about privacy, dogfooding might be a great fit. You’re really not exposing anything to the public by doing it. It’s a great way to keep your app in a closed and controlled environment while rolling out beta versions and preparing for launch. Should any privacy concerns come to light it’s also much easier to address them. For example, your employees can sign an NDA preventing them from disclosing any details about the app they’re testing out.

Saves money down the line

In addition to not having to outsource, dogfooding is bound to save you money and resources spent on debugging down the line. It allows you and your team to put things in perspective and become aware of your app’s strengths and shortcomings before its release. Being familiar with an app also inspires a sense of ownership from the team and lets you take full control of its future development.

Risks of Dogfooding

Nothing comes without risk, and dogfooding is no exception. There are some inherent risks to this that might easily steer your whole product off course if you’re not careful. This doesn’t mean you should give it up altogether, but it’s a good idea to plan for, evaluate and mitigate any possible risks.

Targeting the wrong audience

In order to dogfood your app, you’ll need to define your target audience well. If you end up distributing your app to the wrong target audience, the results can be disastrous. There’s nothing worse for general team morale than distributing an app to customers and finding out they hate it.

That’s why it’s of vital importance that you make sure the feedback you’ve received comes from the right group of users. Otherwise, you risk getting contaminated with potentially irrelevant feedback. It might send you down the completely wrong development path.

Familiarity with the app

Standing too close to something makes it hard to see its eventual shortcomings and mistakes. Dogfooding your app puts you at the same risk, as your team is bound to be familiar with the app. This makes them bad testers, as they know every aspect of the app and its features. What you need is a fresh pair of eyes that haven’t been introduced to the product yet.

That’s why it’s a good idea to dogfood apps to new team members or teams that aren’t involved in your app’s development. This eliminates any possible biases and makes sure your app development follows its natural path.

Biased opinion

Your team is bound to be emotional towards the app you’ve been building. After all, it’s the complete sum of their hard work over a period of time. That’s why it’s important that their biased opinion of how the app works or should work doesn’t contaminate your dogfooding process. To prevent that, it’s a good idea to dogfood your apps to employees that haven’t been as involved in the development process.

Having that in mind, the only real way to completely eliminate bias is to beta test your app by making it publicly available for people that sign up. If you’re not worried about security, this might be your best bet of getting results and feedback that’s free of any kind of bias.

Over-reliance

Dogfooding may be a good approach, but it isn’t a magical solution that will solve your issues. That’s why over-relying on it can easily be a dangerous bet. Substituting traditional testing processes with dogfooding, like replacing QA testers with employees, would be a mistake.

More so, dogfooding isn’t meant to replace traditional testing methods. It acts way better as an addition to an already established testing process, giving you extra value you haven’t uncovered before. That’s why it’s important not to rush when making such decisions. Take your time and never act without a plan.

Overlooked scenarios

There are certain scenarios an average app user only goes through once. For example, the sign-up process. If it works for the first time it’s going to work always, right? Quite the opposite, it’s exactly these parts that tend to turn into gripes sooner than later.

Dogfooding apps may offer a lot of other values, but they tend to overlook the small stuff. Even so, the small stuff can play a vital role in early app adoption. That’s why it’s important to revisit these periodically through your dogfooding program or follow up with your QA team.

Dogfooding Examples

As we’ve established, dogfooding can be a tricky business. Yet, there are plenty of examples out there of companies doing it right on a massive scale. Let’s go through them below.

Microsoft

The first company that comes to mind for most people when you mention dogfooding. They have been eating their own dog food for a long time, and have perfected the process. Today, it’s an integral part of their release process. It encompasses all of their products under a single platform called Microsoft Elite.

Lyft

As far as unique dogfooding programs go, Lyft surely takes the prize. Its main goal is to improve the overall customer experience by making all employees spend at least 4 hours a month behind the wheel as Lyft drivers. This allows them to better discover hidden gripes and possible performance issues.

Google

Another big player in the dogfooding game. Google develops a lot of their products for both internal and external use, and takes every opportunity to distribute it to their employees. Like most things Google, the exact process is kept well under wraps, but it’s stipulated it works on an ad-hoc basis.

Facebook

Living up to its motto, Facebook has been dogfooding its product to its employees from day one. However, their dogfooding program really started to take shape as they started offering more products and adopted a mobile-first strategy. They even have a dedicated position called “dogfooding program specialist”.

Conclusion

Dogfooding teaches us the importance of walking a mile in your customers shoes. It can offer great benefits if you’re distributing an app to the right group of people that match your target audience. Otherwise, it’s quite easy to end on the wrong development path.

Don’t forget that dogfooding isn’t a good substitute for traditional methods of app testing. It can offer great feedback and help you discover new things, but you’ll still need a well-established testing process in order to maintain a level of quality assurance.