Eat Your Own Dogfood

The only way humans really learn is by their own mistakes. Make a programming mistake, live with it, maintain it, fix it, then move on. That is the only way to grow as a developer. That implies that if you’re not also the maintainer of your own code, you can not grow as a developer: there is no other way to learn from one’s mistakes than by becoming a maintainer of your own code.

Evolution of a developer

All developers follow the ladder below:

  1. Junior - wow my program starts! How cute!
  2. Advanced - I can somehow create an intraweb portal! I have so much power at my fingertips!
  3. Master - I have combined all design patterns into my code. I’m using all cool frameworks and my app needs 45 kubernetes pods to run and a dark incantations of 100-strong team of developers, managers, and managers of managers. I’m the king and the real developer, everybody else is just cute.
  4. Guru - I have removed all frameworks and approaches except those I really need. I know how stupid I was before.

The only way to climb this ladder is to maintain shit you produced earlier, AKA dogfooding.

The complexity increases and achieves peak at step 3, then disappears once you start pursuing simplicity.

Examples of people eating their own dogfood

Written on January 6, 2021