Dogfooding (or "eating your own dog food") refers to the practice of using one's own products or services in real-world scenarios. This technique serves various purposes, including testing, quality control, and promotion of the products or services in question.
For developers, dogfooding is particularly beneficial. When developers use the software they've created as if they were regular users, they can identify and fix bugs, enhance the design, and understand how the software performs in everyday life. This practice not only improves the product but also provides insights into the user experience, allowing for more user-centered design and development.
Dogfooding is also an integral part of internal quality testing in technology companies. Employees typically test the product or service, providing feedback that is then incorporated into further development before any future testing or public launch. This internal testing phase is critical for identifying issues that might not be apparent from the development perspective but are evident during actual use. The process of dogfooding aligns closely with the principles of internal beta testing, where a product is used within the organization before being released to external users. This practice offers numerous benefits, such as firsthand experience of the product's strengths and weaknesses, the ability to improve and showcase features based on real use cases, and the opportunity to gather meaningful feedback directly from users within the organization. Such feedback can be invaluable for refining the product and making it more appealing and effective for its intended audience.
In this blog post we'll take a quick look at the history, benefits, challenges, and language of dogfooding.
History of the Term "Dogfooding"
The term "dogfooding" can be traced back to the 1970s with television advertisements for Alpo dog food, where Lorne Greene mentioned that he fed Alpo to his own dogs. Another origin story comes from the president of Kal Kan Pet Food, who reportedly ate a can of his dog food at shareholders' meetings. The term gained traction in the tech industry in 1988 when Microsoft manager Paul Maritz sent an email titled "Eating our own Dogfood," challenging his team to use the company's product more.
Benefits of Dogfooding
- Reduces Bugs Discovered After Release: Employees testing early hardware and software can find bugs that quality assurance teams might miss, extending their efforts
- Saves on Development and Support Costs: Resolving issues before release saves time and money, as developers spend less time identifying the root cause of issues.
- Nurtures a Customer and Product-Centric Culture: Involving more of the company in testing and feedback fosters a culture where product quality is everyone's responsibility.
- Increases Product Knowledge and Awareness: Hands-on experience with the product promotes product knowledge across the organization.
- Expertise from Other Teams and Roles: Departments not directly involved in product development can provide valuable insights.
- Optimizes the Product Roadmap: Employee feedback can help prioritize product development directions.
- Promotes a Collaborative Work Environment: Dogfooding allows employees to share their thoughts and insights, creating a more inclusive and collaborative work environment.
- Scales Test Environments Immensely: It leverages employees' natural technical environments, greatly increasing the number of people testing the product in various use cases.
- Showcases Product Usefulness and Usability in Market: Demonstrates the team's belief in the product and aligns them with the customer experience.
- Cost Savings: The team is using something developed in-house, for free, rather than paying for another company's product.
Problems, Risks, and Challenges of Dogfooding
- Risk of Bias and Lack of Diversity: If the development team does not represent the diversity of the user base, dogfooding can lead to products that only serve a limited demographic.
- Echo Chamber Effect: Homogenous development teams may create a cycle of validation that is not effective or accurate for a diverse user base.
- Loss of Trust in the Product: Exposing employees to work-in-progress versions of a product can lead to bugs and unexpected behavior, potentially diminishing trust in the product internally.
Synonyms and Alternate Phrases
Alternative phrases to "dogfooding" have been proposed to avoid the unappealing connotations of the term. For instance:
- "Drinking our own champagne": Used by Jo Hoppe, the CIO of Pegasystems, and Bruce Lowry, head of public relations at Novell, as a more appealing alternative.
- "Icecreaming": Suggested by Tony Scott, a CIO of Microsoft, to denote developing products that customers want to consume.
- "Eating our own cooking": Another phrase used, especially in the context of IBM's mainframe operating systems.
- "Self-hosting": A common term used in software development to describe using the latest build of the software or operating system on developers' workstations.
Dogfooding is a multifaceted approach that not only serves as a tool for product improvement and quality assurance but also helps in aligning the product more closely with the needs and expectations of its end-users. By using their own products, organizations can ensure that they are not only technically sound but also user-friendly and relevant to the market they aim to serve.
While dogfooding offers numerous benefits in terms of product improvement, cost savings, and fostering a collaborative culture, it is not without its challenges. Issues like bias, lack of diversity, and potential loss of trust need to be carefully managed. The term itself has spawned various alternatives, reflecting an ongoing search for a more appealing and accurate descriptor for this practice.
I, for one, choose not to eat my own dogfood. I'll be happy to use my company's products though!
What is Splunk?
This posting does not necessarily represent Splunk's position, strategies or opinion.