5.7Dogfooding

At a Glance
In Brief
Dogfooding is an unstructured product research method where team members use their own product in real daily work, just as a customer would. You go through the actual workflows, note where things break or feel awkward, and record ideas for improvement. The output is a firsthand list of bugs, friction points, and unexpected use cases that formal testing often misses.
Common Use Case
Your team has built the first version of your product and you want a quick reality check before putting it in front of customers. You and your teammates use the product in your daily work for a week, noting every moment of friction, confusion, or delight so you can fix the biggest issues before anyone else sees it.
Helps Answer
- Does the product actually deliver on the value proposition?
- Is the product working correctly in real use?
- What is the minimum viable feature set?
- Where does the workflow break down or feel awkward?
Description
Using one’s own product is standard practice among many technology startups and entrepreneurs. In many cases, entrepreneurs are building a product to solve their own pain points, so it is common to then use the product.
There is no predefined script for dogfooding, and it is not a formal quality assurance (QA) process. The main advantage to this method is that it may reveal unorthodox use cases that were not covered in the requirements or QA tests. Dogfooding should primarily be considered generative research and not an experiment.
AI has minimal impact on dogfooding, and that is precisely the point. You cannot delegate this to an AI agent or automated testing script — the value comes from personally encountering friction, confusion, or delight while trying to accomplish a real task. If your product includes AI features, dogfooding becomes even more critical: you need firsthand experience of how the AI behaves in real scenarios, where it fails, and where it produces unexpected results. Automated QA and AI-powered testing tools are valuable for catching bugs, but they are not dogfooding.
Companies that do not use their own products and services are sometimes criticized, in some cases very publicly.
How to
Prep
- Set a clear scope. Pick the workflows and personas you intend to walk through (new-user signup, daily power-user task, admin path) so the team is exercising the same surfaces and you can compare notes afterward.
- Set up a low-friction capture channel. Make sure you have a place to take notes that is easily accessible and won’t interrupt your workflow too much — a shared issue tracker, a single Slack channel, or a running doc.
- Decide who participates. Pull in teammates outside the build team where possible; engineers and designers carry too much prior knowledge to notice every friction point alone.
Execution
- Use the product in your day-to-day work. Resist the urge to switch to a workaround when something annoys you — the workaround is the data point.
- Take notes whenever something works surprisingly well or fails to live up to expectations. Record any additional insights or ideas that occur while using the product.
- Note any time when the workflow is interrupted or another service is needed to finish the task. These hand-offs are the most common hidden friction.
- Capture context, not just bugs. Screenshot the screen, note what you were trying to do, and write down what you expected to happen.
Analysis
- Be careful to interpret the results as generative and not evaluative. The makers of a product have an intimate knowledge of the product design and likely cannot capture the uneducated user’s perspective. This is especially true in dogfooding the new-user process, where the makers of the product have a massive amount of prior information and expectations regarding the signup and onboarding.
- Watch for missing edge cases, particularly when the team is not diverse. A team may not analyze the product for use by handicapped or minority users and thus overlook substantial aspects of its user experience. This becomes more of a problem as a product scales beyond an initial niche audience.
- When multiple team members dogfood their product, collect and sort notes via card sorting, stack ranking, or other standard UX methods to surface the patterns rather than reacting to individual gripes.
-
Confirmation bias Creators of a product can subconsciously avoid situations and use cases they know are incomplete or buggy, leaving a positive impression that the product works according to the specification even if it has serious flaws in ordinary usage.
-
Expert blind spot Team members know the product too well to notice friction a first-time user would hit immediately. Recruit teammates outside the build team or pair internal testing with external usability testing.
-
Dogfooding only works when your team is as diverse as your customer base. - @TriKro
Learn more
Case Studies
Alphabet: Schmidt prefers Galaxy S7 over iPhone
Alphabet executive chairman Eric Schmidt told CNBC the Samsung Galaxy S7 has a better battery than his own iPhone 6S — a senior leader publicly using and comparing a competitor’s product.
Google: Schmidt’s BlackBerry preference
Google’s executive chairman publicly stated “I am a BlackBerry user. I like the keyboard of BlackBerry,” using a competing handset despite leading the company behind Android.
Microsoft, Lyft, Facebook: Dogfooding roundup
A practitioner roundup of dogfooding programs, including Microsoft’s 25,000+ employee Elite program, Lyft’s “four hours per quarter” driver shift requirement for executives, and Facebook’s internal block on desktop access during its Android push.
Twitter: Odeo’s internal SMS tool
The first Twitter prototype was an internal service for Odeo employees built by Jack Dorsey and Florian Weber; the team’s enthusiasm and SMS-bill spikes were the demand signal that prompted the July 2006 public launch.
PostHog: Dogfooding drove the data warehouse and surveys
PostHog’s internal use of its own product shaped major features: the data warehouse came from engineers needing PostHog to query Stripe and HubSpot, and the surveys feature began as an internal popup the product team built to streamline user-interview booking.
Bubble: Building Bubble on Bubble
Bubble built its website (everything except the editor) on its own no-code platform, turning internal developers into demanding customers and creating a “forcing function” that drove the platform to support complex multi-page apps.
PostHog: Dogfooding principles for PMs
PostHog argues every team member, not just the PM, should be dogfooding the product, and recommends regular “bug bashes” and structured dogfooding sessions to surface issues collaboratively.
Microsoft: From “Eating our own Dogfood” memo to 20,000-node network
Paul Maritz’s 1988 email to LAN Manager test manager Brian Valentine, titled “Eating our own Dogfood,” coined the term; Windows NT later involved 200+ developers running daily builds, and by 2005 InfoWorld reported Microsoft running its 20,000+ node international network on 99% Windows technology.
Lyft: Mandatory driver shifts for corporate
Lyft requires corporate employees to drive as part of the platform, forcing leadership to experience the supply-side product and surfacing driver-facing UX issues that internal dashboards miss.
CrowdStrike: Dogfooding as post-outage remediation
Following the July 2024 worldwide outage, CrowdStrike’s Adam Meyers testified to Congress that increased internal dogfooding of agent updates was part of the company’s remediation plan — a rare case of dogfooding as regulatory commitment.
Frontegg: Running on its own Entitlements Engine
Frontegg uses its own Entitlements Engine to manage subscription plans and permissions for its own products, so internal subscription changes continuously validate the same engine customers depend on.
Further reading
- Intercom: The Danger of Dogfooding
- PostHog: How We Do Dogfooding (with Examples)
- Wikipedia: Eating Your Own Dog Food — History and examples of the practice
- Eric Ries, The Lean Startup (Crown Business, 2011, ISBN 978-0307887894) — frames continuous internal use of a product as part of the build-measure-learn loop.
Got something to add? Share with the community.