Nishil Patel
Jan 28, 2025
7 min read
The term dogfooding or eat your own dog food is a popular jargon that’s often used in tech in the context of software testing. The term refers to the practice of using and testing a software product by the very own team that developed it. Think of it as internal beta testing before public rollout. Learn more about dogfooding in this article.
1.
What is Dogfooding?
2.
Origin of the Term
3.
What Are the Examples of Dogfooding?
4.
How Do Software Companies Do Dogfooding?
5.
Common Misconceptions about Dogfooding: w/ Explanations
6.
Best Practices While Dogfooding
7.
Pitfalls to Avoid While Dogfooding
8.
FAQs
As a techie, you might come across the term dogfooding while working with testing software. In this article, we’ve covered dogfooding. It explains how it fits within the quality assurance (QA) procedures, its best practices, and common misconceptions surrounding it.
Dogfooding refers to the practice of using one’s own products or services internally before releasing them to the public. It’s also known as “internal beta testing”. While dogfooding, businesses get employees to use the new products they’re making and learn more about their strengths and weaknesses before public rollout.
Companies like Apple, Google, and Microsoft have been dogfooding since the early days of tech. They aim to establish a product culture where employees from all over the business have exclusive access to new products. This is typically done through Early Access Programs (EAPs). The ultimate goal is to push employees to adopt the technology they’re innovating and collaborate on ideas on what works, what doesn’t, and what needs to be improved.
Also Read: What is Beta Testing?
Interestingly, the true origin of the term "dogfooding" isn’t confirmed. However, there are a few popular origin stories about its first usage.
Here are a few examples where software companies used dogfooding:
Here are a couple of examples of how companies dogfood:
BetterBugs.io is a visual bug-reporting tool with AI debugging capabilities. Here’s how we use dogfooding for further improvement of the product:
BetterBugs employees utilize the tool to create comprehensive bug reports with annotated screenshots and video recordings. This ongoing process ensures prompt reporting of bugs, leading to polished feature or version releases before they reach external users.
BetterBugs auto-captures technical details of issues, such as console statements, network logs, and system information, attaching them to bug reports. Additionally, it includes backend event logs from Sentry and fullStory infrastructures, enabling our QA and development teams to resolve issues swiftly.
Our AI debugger assists our development teams in debugging issues with AI-generated reproduction steps, impact analysis, and diagnosis, thereby using our own product as dogfood.
BetterBugs integrates seamlessly with popular project tools and issue trackers like GitHub, Jira, and Asana. Our team leverages this integration feature to report bugs directly to their respective workspaces.
The ease of use allows members from all departments—QA, developers, support teams, project managers, and marketing—to use BetterBugs.io as their primary bug-reporting tool. This ensures that everyone can contribute to the continuous improvement of the product-building process.
Here are some examples of how JetBrains makes dogfooding integral to their product development culture.
JetBrains uses its own platform, JetBrains Space, to manage its huge code repository using Git. Space is a software development platform similar to GitHub, boasting features like Git Hosting, Code Reviews, CI/CD pipelines, and others.
JetBrains uses its master branch for ongoing development, unlike several other companies that typically prefer developers to contribute through separate feature branches. This enables them to make nightly builds of their in-house product IntelliJ IDEA available to employees right off the bat. Stable versions of the tools are created six weeks before the public rollout, allowing them to iron out issues beforehand. There are also weekly release branches for Early Access Programs (EAP) and bugfix updates.
For employees who need to install everything on a fresh computer, JetBrains has an in-house ToolBox App. This app can be used as a launchpad for internal employees to access all work-related software from one place. They can also clone or open projects within the app. Specifically, it’s called the IDE Provisioner for managing IntelliJ-based IDEs. It’s an enterprise product that makes all developer tools accessible for internal usage by JetBrains and as well as other companies.
As per the company, the entire IntelliJ project, containing over 2600 modules, is built using JPS (JetBrains Project System), which is IntelliJ’s internal build tool. While most Java projects use typically Maven or Gradle in some form, IntelliJ uses its own system for Java-based builds allowing them to work with their own framework and fix issues independently without relying solely on external tools.
JetBrains has a plugin for shared indexing (which allows finding inheritors and build calls in a project) of JDKs and libraries. For this, JetBrains has a product called TeamCity (it’s a CI/CD platform) for indexing monorepo source code that enables them to complete project indexing in under a minute. JetBrains uses the same product for indexing its own projects.
JetBrains has an experimental feature as an in-house plugin called JPS Caches that allows the internal team to create incremental builds of their tools using the CI servers. While this feature isn’t fully ready for external users yet, internal employees are using it.
Here are some common misconceptions about dogfooding with explanations to clarify things:
Some might think of dogfooding as mostly a pre-launch thing, but as described, it’s actually an ongoing practice. Using the product continuously helps teams spot issues and improve user experience, ensuring the product evolves based on real feedback.
The core idea is to experience discomfort firsthand and identify friction points allowing you to focus on several aspects from an end-user perspective, including product onboarding, setup, and usage.
Apart from developers, it’s crucial to involve people from QA, management, marketing, sales, and customer support allowing you to get diverse perspectives.
While it certainly does improve product quality, external feedback is crucial, as relying solely on internal use can lead to complacency and blind spots.
While it helps identify many issues, it can’t catch every problem or predict all user reactions. Besides this, thorough market research and traditional QA methods are still necessary beyond internal use.
Here’s a list of best practices you can borrow to get the most out of dogfooding.
Start things off by designating a team that can coordinate and manage the dogfooding process. This team should:
Ensure that the internal usage of the product replicates real-world scenarios that end-users might come across in everyday product usage. Some issues that it helps identify include:
Ensure a company culture where employees can feel comfortable providing honest and constructive feedback. Besides this, what works best is establishing clear feedback loops with:
Maintaining detailed logs of all reported issues and feedback works best. Moreover, make sure that bug-reporting tools, logger tools, and issue trackers are in place.
Iterate on the product based on the feedback received during dogfooding. Using the feedback,
Share the insights and improvements from dogfooding procedures with the relevant team members to ensure that everyone's on the same page on the product's progress.
While dogfooding numerous benefits, there are some potential pitfalls to be aware of, such as:
Nishil is a successful serial entrepreneur. He has more than a decade of experience in the software industry. He advocates for a culture of excellence in every software product.
Meet the Author: Nishil Patel, CEO, and Co-founder of BetterBugs. With a passion for innovation and a mission to improve software quality.
We never spam.
Share your experience with the founderhere!