Eating your own dog food - Using your own product

Eating your own dog food - Using your own product

Daily short news for you
  • After waking up, I saw the news feed flooded with articles about Microsoft rewriting the TypeScript compiler - tsc in Go, achieving performance that is 10 times faster than the current one. Wow!

    But when I saw this news, the question immediately popped into my head: "Why not Rust?" You know, the trend of rewriting everything in Rust is hotter than ever, and it’s not an exaggeration to say that it's sweeping through the rankings of previous legacy tools.

    What’s even more interesting is the choice of Go - which supposedly provides the best performance to date - as they say. Many people expressed disappointment about why it wasn’t C# instead 😆. When something is too famous, everything is scrutinized down to the smallest detail, and not everyone listens to what is said 🥶

    Why Go? #411

    » Read more
  • I read this article Migrating Off Oh-My-Zsh and other recent Yak Shavings - the author essentially states that he has been using Oh-My-Zsh (OMZ) for a long time, but now the game has changed, and there are many more powerful tools that have come out, so he realizes, oh, he doesn't need OMZ as much anymore.

    I also tried to follow along because I find this situation quite similar to the current state. It was surprising to discover something new. I hope to soon write a post about this next migration for my readers 😁

    » Read more
  • Maybe I need to plan to rewrite some of the blog's signature posts. There are articles that are very detailed but no one reads. On the other hand, there are posts from a few years ago, back when I was just starting to write, that many people read 🥲

    » Read more

The Issue

Many years ago when I first started my internship, I worked at a company specializing in making products and then doing business based on those products. Nowadays, people often call it a Products company. The main product at that time was for business customers. Later, I learned it was the B2B model - that is, selling to business customers. Although I was directly involved in the product development phase, to be honest, many features that I created, I did not understand why they should be made.

B2B was too complicated for a fresh graduate lacking experience. I could add features as requested, but I couldn't explain why they should be done. "Oh well! Maybe I don't need to care too much," I told myself. As long as I can code, it's fine. For now, the focus should be on improving coding skills better day by day. The leaders are free to discuss and then hand down features, and soon they will be "done" in a flash.

At the same time, I was extremely puzzled as to why a senior in the team was willing to "argue" with the boss just because a button shouldn't be placed here, but must be over there? Why? Isn't the boss always right? Or at least if it's a request from the boss, we should listen! Right? Wow!!!

After many company transfers, I always worked in companies that made and sold their own products. It's like a hobby. This time the product still served mainly small and medium business customers, entrepreneurs... Once again as a developer, but what I cared more about was the technology, how to design the system to work, serve as many users as possible was important.

But this time there was a significant change in my long-standing thinking. A major turning point for me because here I learned a lot more about how to make products. How to create useful products, with users, and how to sell them. Terms like MVP (Minimum Viable Product), KISS (Keep It Simple, Stupid), YAGNI (You Aren't Gonna Need It), Win-Win... appeared and jumped into my mind one by one. Gradually changed the thinking that the role of technology was no longer the top priority, instead, try putting yourself in the user's position to see how good your product is, see if you want to use it or not.

After some time, I returned to a promising product at another company. Apply what I learned. Temporarily put aside "expensive" technical debts, what I cared more about was the user experience, how they use the product, and from there propose more optimal solutions. Also during this time, I rebuilt my personal blog.

As I've shared with readers in many articles about the journey of making a blog. Initially, I just thought simply of creating a place to write, focusing on words, and believing that users would like that. Because it helps them focus more on reading instead of looking at other potentially distracting things. So the blog at that time had nothing but words. After seriously putting myself in the reader's position, I gradually visualized what they saw and what they needed. From there, continuously improve the website day by day. Honestly, the version you are seeing now is already the 4th or 5th version of 2coffee.dev!

The above can be summarized that I have learned many things about making products through using my own products. Today, my boss suddenly mentioned the phrase "Eating your own dog food" and challenged everyone in the company to know what it implies. Oh, turns out there's a phrase that expresses the long-standing thought that I've been applying.

"Eating your own dog food"

"Eating your own dog food" is a figurative expression, implying the use of one's own created product or service. The purpose is to better understand the quality, effectiveness, and experience that the product brings to users.

Simply put, you can imagine it like this, if you eat the dish you cook, you will know if it is delicious, salty or bland, or what needs improvement. In software development, when developers use their own products, they will discover bugs, see what is not good, and find ways to improve the user experience.

In reality, not everyone has the condition to use their own made products. For example, it may be a specialized product, intended for a specific group of users that lies outside our normal usage needs. Or you work in an Outsourcing environment, processing a part or a feature in a large product. Therefore, "Eating your own dog food" is not necessarily applicable in all cases but depends on each person, each environment. However, if you have the condition, try applying it because it helps you a lot in the product-making process.

Why should you "Eating your own dog food"?

Using your own product to understand it better. What's better than changing the working environment and starting by using the product to understand more about what is available. Or if you've been working for a while, using the product also helps in developing later features, anticipating the impact of new features... I always show caution before any changes, even the smallest ones in the product, don't dare or need to carefully consider when removing or modifying a previous feature. Because I'm not sure if it affects other features? Even some managers don't grasp the relevance because the product has gone through many people. At times like that, the best way is still to use the product to know the level of impact of the features with each other.

When focusing on the user role, we will have similar behaviors to users, will see reasonable or unsuitable things in daily operations, from there propose to improve product quality. Occasionally, I still read back the articles on the blog as a user, perform actions such as searching, commenting, evaluating articles... to find things that can be improved to bring the best experience for users.

Additionally, daily use also helps us spot issues early, before the end user. In many applications, a feature is integrated to report errors to the developer, allowing users to report bugs during use. In reality, when applying "dog food", I have been reporting many errors to the product development team with me. Sometimes even boldly propose a "Bug Hunters" title, or a reward like "Bug Bounty" worthy of what I have done. At times like that, everyone laughs out loud in the office.

Using your own product also indirectly enhances the reliability and credibility of the product. It will be very difficult to persuade others to use a product that even you don't use yourself. In case you still have the potential for normal use. And if you want to share a good application with others, you must be a regular user to see the need and also advise them on suitable features.

Conclusion

"Eating your own dog food" is placing yourself in the user's role to experience your own product, thereby improving many things from daily operations to enhancing the reliability and credibility of the product. What about you? What product are you making and do you use it as well as be ready to share it with others? Please leave your opinion in the comments section below! Thank you."

Premium
Hello

5 profound lessons

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (1)

Leave a comment...
Avatar
Ẩn danh4 months ago
rất hay bạn
Reply
Avatar
Xuân Hoài Tống4 months ago
Cảm ơn bạn nha 🙏