October 30th, 2014 by Gareth Wilson
Like many of you, we’re keen Dogfooders here at Fog Creek. Since the phrase took hold at Microsoft in the late eighties, the practice of using your own products to help test them before wider release has become widespread throughout the tech sector and beyond.
And with good reason. Forcing yourself to use your own products means you end up fixing bugs before creating new features. It means you spot and resolve pain points before your product is out of the door. It also means spreading product knowledge throughout your organization.
Hear some more about Dogfooding here at Fog Creek in the following video:
But are you just Dogfooding yourself in to a false sense of security?
Consider the following questions:
Just how typical a user of your product are you?
Few are lucky enough to develop products for people exactly like themselves. Here are Fog Creek for example, treating our developers well is a top priority. So typically that means we’re trying our software on a new Mac with a couple of high-res 30″ screens, probably using Chrome. That’s not to brag, but some of our customers might not be so lucky. For them the norm might be an aging PC, with a small screen and of course, forced use of Internet Explorer. If we just relied on Dogfooding, we’d be missing a bunch of browser, layout and design issues.
Also, when was the last time you:
- Created a new account in your software?
- Started from scratch rather than upgrading from a previous version?
- Tried migrating from a third-party solution?
These are all common scenarios for customers, especially new ones. Yet these are all missed in typical Dogfooding.
Just how many customers only use your own products?
I’d wager most use some hybrid mixture of yours along with some from other vendors. After all, it wouldn’t be unwise for an experienced IT administrator to preach use of a range of products so as to avoid vendor lock-in.
What’s more, if you’re only using your own tools then it can lead to a form of myopia. You become so tied to your own solutions that you fail to see better alternatives. Take Uber for example. They’re disrupting the Taxi industry not because of their decades of experience in the sector, but almost because of a lack of it. They approached the space with a fresh perspective, which meant they could see another way of doing things.
- Is anyone not reporting issues, assuming someone else will? And what about that workaround you’ve become used to, knowing the devs are almost definitely going to resolve it any day now?
It’s worth questioning yourself as it’s easy to become over-reliant on Dogfooding. It’s no panacea, and no excuse for poor test coverage. Nor a reason to not have a thorough QA process. With it, beta testers are still going to throw up those big issues that leave you wondering just how you managed to use it and miss it!
So, yes, you should use your own products. But what you really want to do is use your own products like a customer. Better yet, use them like a new customer would.