One of my first tasks at Whole Tomato was to do some code cleanup in the name of learning the Visual Assist codebase. After just a few Find References, Renames, and Goto Definitions, I realized the recursive nature of this product: I was using VA to learn VA. I was using VA to refactor VA’s refactoring code. I was even using the codebase as a test suite for itself.
Most products aren’t like this. Clearly other development tools, IDEs and compilers fall into this category. And perhaps source control and bug tracking tools qualify, although more indirectly. But outside of software, I have trouble thinking of similar examples. Manufacturing? Chemical reactions? Books about making books?
What other companies use their own product in the direct production of that very product?
I can only think of internal company type systems where they use their own internal machine process to build new machines. I once worked with a company that made four axis router systems to build custom parts for machine shops. They used their own routers to build parts for new routers (machines building machines).
The other that comes to mind is nano assemblers. But I don’t think that is very practical at this point.
We use our own database engine in our own production systems, and yes sometimes it is painful to dogfood your own product. Keep up the good work.