If you're a developer or have ever worked for a software company, you may have heard the term "Dogfooding" or the phrase "eating your own dog food" before. Depending on who you are, it may elicit excitement or dread. If you have no clue what I'm talking about, basically, it's the practice of using your own products or services, usually while they're still being developed. In this post, we're going to discuss why you should be using your own products, even before they're ready.
Here are a few reasons why dogfooding is important:
First, it helps you build and mature your product faster. In the process of developing your product, you're actually testing it in real-world scenarios. Not only will you locate bugs quicker, but you may also discover new uses you might not have considered before.
Second, it looks better from a business and marketing standpoint to use your own product instead of a competitor's.
Last, it displays faith in your developers (and lights a fire under them). If you commit to using your product in production, you're telling your staff that you believe in the product they're building, but it also lends a seriousness to what they're doing. There's nothing like the pressure of making sure your product is stable enough to run your company on.
Dogfooding isn't without its perils though. You're usually using pre-alpha, alpha or beta software that can be fraught with bugs. You're constantly upgrading to the latest build, which you're hoping is better than the last one. Even with all these, I still believe it's important for your product and your business. Lets look at a brief example.
There's an excellent book by G. Pascal Zachary titled Showstopper that chronicles the development of Microsoft's Windows NT operating system. It discusses the hurdles Dave Cutler and his team had to jump over to bring the world's first truly portable operating system to light and shows the benefits that come from using your own product early. I've read this book twice so far and almost certainly will read it again. If you're a computer history nerd or simply like an engaging story, I definitely recommend reading it.
One of the early goals was to get the operating system stable enough so they could use it to build Windows NT. Dave Cutler wanted the developers coding on it, he wanted the testers testing on it, and he wanted the computers that were compiling the OS to be running it. He wanted the Windows NT team "eating their own dog food".
There were challenges, even after it was deemed stable enough to use. There were bugs they had to contend with on a daily basis, some more serious than others. Plus there was the headache of needing to install the latest version before you could start your day.
All these things helped them to build a better product. The core of that product is at the heart of Windows today, thirty-ish years later.
We have several products and technologies (which I won't talk about in this post - but stay tuned) in the pipeline that we are excited to get into customers' hands. However, just because they're not quite ready for the limelight, it doesn't mean we aren't actively using them to power our business. Sure, at times it can be a scary prospect, but we believe in the technology we're building. We also believe in our developers that are building them.
As the Chief Architect at DEVMAN, I'm a huge proponent of dogfooding. I believe it makes our team focus more tightly on what they're doing, and I believe it makes our company and our products better. And better products mean happier customers.