The best way to test a product is to use it yourself. What does it mean to dog food or fish food a product?
Dogfooding (verb) means using your own product before it's launched. Dog fooding can help with quality assurance, user experience, and potentially new ideas.
I'm not sure the first person to use the term, but it most likely comes from "eating your own dog food" – i.e., making dog food that you yourself would eat. Dogfooding usually (nowadays) refers to using a product much closer to release.
Fishfooding is a more nuanced version of dogfood for a much smaller selection of testers for a much earlier product.
To fishfood a product or use a product in fish food is common at Google, the only place I've heard the term regularly used.
Thus, I came to the conclusion that the designer of a new system must not only be the implementor and the first large-scale user; the designer should also write the first user manual. The separation of any of these four components would have hurt TeX significantly. If I had not participated fully in all these activities, literally hundreds of improvements would never have been made, because I would never have thought of them or perceived why they were important.
— Donald E. Knuth, the errors of tex
Of course, there's some things to watch out for when dogfooding. You might get used to workarounds or have a different installation or upgrade path than end users. As a developer, you might have a faster computer or be more technically saavy than your end user.