Dogfooding: Find a way to be your own customer

dogfood1

Is your company eating its own dog food?

In early ‘90s, while working on Windows NT, Microsoft popularized an idea to make everyone on the team use early builds of their own software.

Back then, it was quite a painful request — imagine developing an operating system on a box prone to crashes, where your basic tools don’t quite work right. This setup undoubtedly causes loss of productivity and frustration.

And yet, what it gains is something more valuable: an immediate feedback loop, where bugs are found quickly, where there is healthy peer pressure to urgently fix issues that are preventing your colleagues from doing their work. Since the cost of a bug goes up the longer it lives in the codebase, this feedback loop — dubbed “dogfooding” — is a significant net gain.

Today, it’s even easier for most technology companies to dogfood, because most of us aren’t developing operating systems. If your internal build doesn’t work quite right, you can still do basic things – so the downside of dogfooding is minimal. Let’s explore some simple, natural examples:

—Facebook rolls out most features to employees first, and only then to a subset of external customers. Employees, of course, already use Facebook every day and can provide instant feedback.

—Everyone loves LOLCats. Employees of the Cheezburger Network are natural customers, as they consume their own content every day.

dogfood1At my company, Wetpaint, we build tools for publishers to develop relationships with their readers through social media. We take dogfooding so far that we’ve built an entire media business — a very successful one — to be our own customers, and to test-drive our platform before our clients use it. This has allowed us to evolve our tools at record speeds.

But what if you’re working on a product that isn’t so easy to dogfood? You have to be creative and find a way to incentivize your employees to be users in order to get the information you need. One way to set this up is recurring competitions; here’s what I would do with these businesses, for example:

—Redfin, Zillow, Trulia (real estate): Employees must find the best real estate deal in their area. Give them virtual currency. Have them use your products — and competing products — to make their virtual investment decisions.

—SEOMoz (search engine optimization): Each team member sets up a blog and must use the company’s tools to make it rank the highest a couple weeks later.

—Tableau (data visualization): A leader selects a dataset, and everyone is encouraged to find gems in that dataset; the fastest, most interesting insight wins.

Wetpaint's Alex Weinstein

Alex Weinstein

Give real prizes to the winners. Set up a weekly beer gathering, get the winners to share their strategy. I bet some product ideas will come out of that. Make sure these events are regular, not one-off, to encourage employees to keep thinking competitively and creatively.

Dogfooding programs complement agile and lean development practices very well, because iterating with the rest of your team for a few days before releasing an experiment increases your chance of success. You’ll also get the obvious feedback out of the way early.

Think of it as a modern version of Joel Spolsky’s hallway usability tests: instead of having to interrupt a colleague to review your UI, you’ll overhear “Oooh” and “Ahhh” when your code goes up on dogfood. That’s the perfect time to ask – “Hey, what do you think about this new thing?”

Does your company have a dogfooding program? How does it work for you? Please share your stories in the comments.

Alex Weinstein (@alexweinstein) is the head of product development at Wetpaint and the author of the Technology + Entrepreneurship blog where he explores data-driven decision making in the face of uncertainty. Prior to Wetpaint, Weinstein led technology initiatives in Microsoft Live Labs.

Previously on GeekWire: Hackathons at startups: Creative ‘fresh air’

  • http://twitter.com/Vroo Vroo (Bruce Leban)

    While your idea of a competition to encourage employees to use their own software may produce results, it’s not dogfooding. And unless Wetpaint Entertainment is created and maintained by the same engineers that build the platform, that’s not dogfooding either. Don’t get me wrong — it’s great that the company uses its own software. It’s just not dogfooding when it’s not the same people writing the code and using it.

    The dogfooding experience is about using software in normal work, just like a customer would. Having employees use the product in fake situations doesn’t simulate actual customer use and in fact can lead to incorrect optimization.

    While dogfooding is great, not all software fits the mold. If I’m writing avionics software, how am I going to dogfood? I don’t think running it against flight simulator is going to really help.