Dogfooding is when a software company uses the products that it makes. In 1988 Microsoft manager Paul Maritz sent his test manager an email with the subject line reading "Eating our own dog food," challenging him to increase internal usage of a product the company was developing. From there, usage of the term spread through the company and then, during the dot-com boom,to many consumer-focused companies. Dogfooding is a way for a company to demonstrate confidence in its own products. It’s a way of saying “We use the products we create. You should give it a try too.”
The internal use of a company’s product is good, but why should chief information officers (CIOs) or senior managers be involved in testing mobile apps? Aren’t there software testers precisely for that purpose?
Here are a number of reasons CIOs or senior managers should test mobile apps before they are released:
- It can ensure alignment with business goals: CIOs and senior managers may be in perfect alignment with the business goals of a mobile app, whether it is a purely consumer-facing app or an enterprise one. But requirements gathering, analysis and design may all have involved various other people and what you end up with may be an app that is quite different from what the business intended. Jonathan Erwin, CEO of Red e App, a Louisville, Ky.-based business to consumer company puts it succinctly, “We have found at Red e App that ‘intention’ and ‘realization’ vary dramatically within our mobile development team environments including on-shore, offshore and near shore. The complexities of mapping a thousand mobile flavors back to a cloud-based, data-driven back-end almost require us to quadruple our testing efforts. In our organization the senior managers and executive team are ultimately accountable. We are responsible for user experience, functionality and making sure that the product intention and realization match. Even with excessive emails and planning meetings, translation can too easily be lost in the process. The best way to make sure that the intention and realization match is for us to test the app personally.
- It previews end user experience: Developers and testers may test multiple versions of mobile apps. The end user may be downloading only the final released version and trying it out for the first time. The only user experience that matters is that of the end user. CIOs and senior managers may not be involved in the regular testing process, so perfect surrogates for the first time user. They can experience what the end user goes through for the first time, including registration and setting up the app. They can catch a lot of the minor but potentially irritating usability issues in the app before it is released.
- The nature of mobile apps is unforgiving: Erwin says, "You only get one shot to attract and keep people’s attention in this app-hungry world. You can’t afford to make that one shot misfire because you put software of poor quality out there. Testing is a crucial part of any quality software development program, and senior management has the final call on whether it is ready for use. That can only be ensured with us testing the app personally before release.” With more than 500,000 apps in the Apple App Store and 300,000 apps in the Android marketplace, there are a lot of apps competing for end users' attention and space on their mobile devices. And users can be ruthless: They'll ignore or even delete an app that crashes even a few times or does not have an easy-to-use user interface.
- It helps overcome developer blindness: Developers and even testers may be so familiar with multiple generations of an app, that they may get into a habit of testing it with inputs that they know work and do not break the app. An end user may type in unexpected inputs, breaking the app. It pays for senior management to test mobile apps before the final release. They may play the role of the first time user, replicate improper inputs, catch crashes and bugs before the app is released for use.
- It can unearth missing critical features: CIOs or senior managers may be the ones closest to the business goals. Testing the apps end-to-end before release is the best way to make sure that all needed features are in the app and meet the business goals fully. If not, they can make sure they are present before the app is released.
- It can unearth unintended utility: If they test mobile apps, CIOs and senior managers may be able to unearth unintended uses during their testing. Doing this will help them identify these uses as features formally before release. Users can then be aware of all of the potential uses of the app instead of only the intended ones.
- It gives the chance to test under-realistic conditions: CIOs and senior managers are more likely to travel and test mobile apps from various locations, near and far, something that may not always be planned or possible with the test team. This may happen if team members are all centrally located or in an urban setting where mobile data connectivity is good. How does the app behave when that’s not the case?
Mobile apps can reach hundreds of thousands or even millions in downloads. But, users can abandon and even delete an app without a second thought if it crashes more than a few times or the user interface is not easy enough to use. It pays when CIOs or senior managers -- in addition to developers and testers -- test drive apps before they are released. They can unearth usability issues, make sure the app addresses the business goals they have set out for it, and even discover new, unforeseen uses.