August 27, 2023•686 words
The term dogfooding, also known as to eat your own dogfood is basically to consume your own product. Use your own product as if you're one of the users, or in short: be your own user. The majority of people, not just in Indonesia, but mostly around the world don't want to use their own products, with various reasons. One reason that I've encountered the most is "I've seen enough of this at work, why would I want to see that thing (referring to the product) again outside work?".
I think, as a developer, instead of having feedbacks only from customers and internal team (like the business or marketing people), it's a good idea for us to also use it, as a customer. We might be one of the power users, because we understand how things work under the hood. We might also experience how it is to use our own product, is it enjoyable? Do we really having a hard time using it, like one of the customer's complaints? In the end, we'd know which part needs adjustment from the technical side, and which "bugs" can be turned into feature because it's actually helpful for our customers. It really forces developers to be on the customer's shoe, and it's a good thing.
Apart from having the thoughts of "I don't like having our company taking our salary to pay for their stuff!", and the company that we're working for is actually solving the problem we've encountered on our day to day basis, dogfooding can make us be a better developer, by creating better decisions. We can be much more vocal when having a discussion with product, business, or marketing people.
Enough with theories and rhetorical "good case scenario". Let's talk experience.
At the time of this writing, I worked at a stockbroker company. Having to eat my own dogfood meaning I have to buy a company stock from the Indonesian stock market. Perhaps if I were to test something out, I'd need to create a new trading account, put some money into the investment account, and go buy some stocks or participate on one of the IPO series. It requires somewhat a not-so-small amount of money, yet that's not necessarily the one you have to do when you're doing dogfooding on a stockbroker company. I can also do some things that doesn't require paying extra sum of money, like looking at the stock charts, watching the research team providing helpful information regarding the state of the market on every morning.. and so much more!
There is one more experience on Sentry self-hosted repo, that would probably make this post long and boring. That should be covered on another story with another topic.
Alas, how everything turns out forces me to be a better developer (I think), by refactoring and improving the code I deemed slow, buggy, problematic, or missing something here and there. Refactoring itself is not really a scary thing to handle. Besides, every software is always a work in progress.