Dogfooding and Guineapigging
You are probably aware that when developers use their own software, we say they are “eating the dog food.” This motivates them to improve usability, quality, and features. I’m going to mangle this into the verb form “dogfooding” to describe the practice of using software prior to a public release. I’m also going to introduce the concept of “guineapigging,” in which you force innocent users to consume your dog food (guinea pig food?). You might find it useful to throw around some of these terms at a meeting where you are discussing product management, test, and release.
In the old days, dogfooding was called “alpha testing.” People working on the software would periodically get disks containing pre-release software, and they would install it, or else. The practice is extremely common among modern Web developers. They use switches, as described here, to show early features to employees. It’s common to show new features for employee accounts, even at banks and insurance companies that have conservative QA practices. Dogfooding is everywhere. If you are aggressive in forcing your stakeholders to try new features, you will make rapid progress.
Guineapigging was called beta testing. You could often find users who would be willing to take “less stable” builds of software in order to see new features. During the browser wars of the 90’s, Netscape gained the lead for a time by always offering a beta version. It’s usually possible to find some set of users that will submit to beta testing if you make it part of your product strategy.
Guineapigging is often more risqué. On high-volume Web sites, it’s pretty common to turn on new features or changes for just a few servers or user accounts. Then, you measure what happens. Where switches are a key technique for dogfooding, logging and measurement are a key technique for guineapigging. Users don’t even know that they are part of a vast evolutionary conspiracy.