Eating your dog food is one of the most important principle (or philosophy if you will) to effectively build software.
Following is a quick list of advantages:
- Feedback is a core value of eXtreme Programming and Agile in general. What better way to get feedback other than using your own product?
- Number of bugs, eps. show stoppers can be drastically reduced, without huge investment on testing (army of Testers)
- You can relate to the product much more, which in turn helps in
- Prioritization (features, tech-debt, other activities)
- Ability to ask meaningful questions
- Find creative ways to thin-slice the system (release frequently),
- Great risk reduction strategy
- n-fold better UX
- From the User’s point of view, chances are the time it takes for them to complete some task would be drastically reduced (including set up time)
- High chances of innovation
- High chances of finding new feature ideas (while using the product)
- Ability to maintain a clear focus
- Development process becomes really lean, no threshold to take crap as far as process and tools goes
- Motivation and Drive never dries up (unless you are building something that you don’t believe in)
- Last but not the least, such projects never fail, coz they at least have one active user
Eat your own dog food principle can be applied at various levels:
- Product/Tool level: Using a product to help during its development. On the FitNesse project, we use FitNesse to run acceptance tests for FitNesse with every build. On ProTest project, we use protest to prioritize and execute our tests
- User level: Building a product to scratch your personal itch. Most open source projects are a great examples of this.
- Organization level: Using products built by the company internally, before releasing it to outside world. At Directi, we use most of the products we build. At Industrial Logic, we use our eLearning platform during our in-person training and coaching.
- Community level: Using one’s own philosophy in their work. For example the open source community using open source projects. The Agile community (esp. the coaches) follow their own advice.