# Seven Lessons From Four Years of Eating Our Own Dogfood source: https://developer.mastercard.com/blog/lessons-from-dogfooding/index.md Authors: Tim Bavister. Overview The term "dogfooding" comes from the expression "eating your own dogfood," and in the realm of software and technology, it means using and testing your own products before releasing them to actual customers. This practice holds significant value as it helps identify any issues in the customer experience before the product is launched to paying customers. For over four years, Mastercard has been actively applying this dogfooding approach to our own range of products and services by collaborating with external entities to conduct what we call "Customer Zero" testing. This testing phase involves subjecting the entire customer journey to rigorous evaluation which encompasses various aspects such as the onboarding process, the quality of our sandbox environments, interoperability, customer support effectiveness and the clarity of documentation. Any problems or pain points discovered during these Customer Zero tests are then utilized to enhance the overall customer experience. Here are seven key lessons that we've learned from our four-year journey of Customer Zero testing and eating our own dogfood. 1. Onboarding Onboarding occurs towards the beginning of a customer's user journey with your product and can set the tone for the rest of the relationship. Have you considered how efficient and smooth your customer onboarding experience truly is? While you might perceive the process as straightforward---like adding a customer to a database---take a closer look at the steps your customers need to go through to get onboarded onto your product. For instance, what seems like a simple database update might actually involve customers spending a month completing repetitive forms with similar questions. Onboarding requires a lot of information from your customers. Are you confident that your customers will have all the necessary information ready when you need it? If not, it's essential to explore ways to assist your customers and manage their expectations regarding the onboarding process. Unfortunately, there can be instances where you can't onboard certain non-traditional customers due to a variety of reasons. For example, a certain industry may not be supported by your business. In the case of unsupported customers, our team suggests having a system in place to identify this situation early, so you don't waste your time, or your customers' time. In an organization that has multiple products such as Mastercard, it's important to let your customer know that even though you can't offer your products to them, there are others in your organization they can explore. 2. Quality of Your Test Environment After a customer discovers your product and signs up, they'll likely want to try it out. Two effective methods for achieving this are through Postman Collections and a well-developed sandbox environment. We focus our efforts in building an environment that can thoroughly test all API features in a comprehensive way. If certain features aren't accessible in the sandbox, your customers will have to develop them directly in the production environment, resulting in additional support for the customer while they navigate the challenges of building in the production environment. while they navigate the challenges of building in the production environment. Another key aspect of a robust sandbox environment is the capability to populate data. This functionality allows customers to test their specific use cases using their own data, providing a more tailored testing experience. 3. Interoperability With Other Products If your company is anything like Mastercard, you'll most likely offer multiple products. Making it easy for your customers to buy and use multiple products is a great strategy. How are you ensuring your customers are having a great experience across different products in your company? Customers find it frustrating having to repeat themselves when filling out forms or giving information for onboarding. One of the best ways to avoid this across multiple products is by re-using an existing onboarding process, and by using existing data on a customer that is using another product offered by your company. Additionally, do you have the ability to share test data across different products? This would enable your customers to build out their end-to-end flows of two products. 4. Gaps in Product/Customer support In today's interconnected world, business operations have expanded beyond local boundaries, your customers might be outside of your geographic region varying time zones, languages and more.. Consequently, any interactions related to customer support could experience delays, potentially slowing down to a daily rhythm if your customers' working hours differ significantly. This scenario is just one of the challenges your customers might encounter when seeking support. Considering these complexities, it's essential to maintain a high level of awareness regarding your customer support process and the potential issues that can arise i.e. by keeping a close eye on the efficiency and responsiveness of your customer support procedures and striving to provide information to customers in a way that accommodates their varying schedules such as status dashboards to keep customers informed of service dashboards and FAQ pages. By adopting such practices, you can enhance the overall customer experience and mitigate potential support-related difficulties. 5. Consistent Documentation Documentation ranks alongside customer support as a critical factor influencing a customer's experience with your product. It's vital to ensure that the language and messaging used throughout your documentation maintains consistency both internally and externally. Always bear in mind that customers aren't necessarily experts in your product or internal systems. This underscores the importance of passing the "Explain It Like I'm Five" (EILF) test which gauges if those unfamiliar to the concept will be able to understand. If the documentation fails this test, it's a sign that it needs revision. A common pitfall in failing the EILF test is the use of jargon and assumptions about the customer's level of knowledge. Documentation is akin to code---it's prone to errors, and you need to plan for addressing these. Your API reference documentation should be automatically generated from your code to ensure constant synchronization. An effective solution for this is adopting an OpenAPI specification. Furthermore, it's easy to overlook the consistency of supporting assets, such as sales and marketing materials. Creating a checklist of items to review after a code change is highly recommended. This list might encompass sales materials, onboarding procedures, training manuals, certification scripts, sample code, quick start guides, and any other relevant materials. By meticulously attending to these aspects, you can enhance the coherence and effectiveness of your product's documentation and supporting materials. 6. Be a Demanding Internal Customer Very few products stand on their own: products rely on internal systems, and your customers will view your products' reliability and performance. You need to ensure the systems your product is reliant on are up to the job, no matter which systems you are interacting with. Ensure all appropriate internal teams are aligned with your roadmap and plan to scale, and you with theirs; define internal SLAs; make sure you are monitoring and alerting; and be prepared to have difficult internal conversations when things go wrong. 7. Be holistic Constantly remind yourself that you're crafting and upkeeping your products with the customers in mind. It's essential to adopt a customer-centric perspective and think the way a customer would, immerse yourself in their journey, right from the beginning to the end. Dedicate moments to step back and reflect, pondering whether your actions align with the customer's perspective. Ask yourself if what you're working on would truly make sense to the customer. Furthermore, be cautious about any assumptions you might have made about the customers. Assumptions can be misleading and lead to misunderstandings. Always seek validation from the customer's point of view to ensure that your decisions are grounded in their needs and expectations. Conclusion Incorporating thorough dogfooding should be an integral aspect of your product development process. This practice enables you to identify significant and potentially vexing issues that your customers might encounter at an early stage, allowing you to address them promptly. Engaging in dogfooding can also alleviate the burden on your support team and provide valuable insights into the user experience your customers undergo while using your product. Even though your customers might remain unaware of the effort you've invested in dogfooding your own product, they will certainly value the results. The dedication you show to refining your product through this process can ultimately enhance their overall experience and satisfaction and ensure your product is successful, robust, and a class above the competition. Related materials Put Yourself in Your Customers Shoes When Developing APIs Mastercard Developers Postman Workspace