This may not always be true. It really depends on the type of company that I will go through in this post. This also sometimes sounds strange from a Software Engineering perspective, but as we get used to, it really did help FMG (my old company) grow to the leading player that niche market
Software engineers love technology, for sure. We love building things, love applying the latest technology into our product. However, we usually forget one important thing: The technology that doesn’t fit in the product, cannot make a profitable business, is a useless one. That sounds obvious, right? Surprisingly, a lot of Software Engineers that I’ve met made this mistake, especially the talented ones.
Let me walk you through the 2 approaches, compare the differences between them and analyze some real examples. In latter posts, you can also find some techniques that I’ve applied in order to help build a better Product Engineer mindset.
This is converted from a presentation that I made at work
What is Building Product?
In short, Building Product could be described as
Delivering USER VALUES
Building Product usually includes these 3 main steps
- Identify the user problems
- Provide the solutions, using technology, and optionally, do it better than your opponents
- Constantly update and adapt to the changes of the business. If you don’t keep up with the market, you are losing already. A good product you build today could be a crap tomorrow.
In Building Product, you should NOT prioritize the technology. Yes, tech still plays an important role but it is not the most important factor. You should always be focusing on the User Values. Building Product is also not about Building a Perfect solution. Nothing is perfect. The business changes every day. Spending time making one thing perfect means getting nothing done. A perfect feature that you write today could be a shitty one tomorrow.
Perfect is the enemy of good
Why Building Product instead of Software?
Let’s ask these questions
- Do the users care if you are using latest technology or not?
- Do they care if you have spent a lot of effort to develop a feature on your own or do they care if you use a third party solution?
- Do they care if you have some tech debt to resolve?
- Do they care if you use PHP to develop? 🤣
Sadly, the answer to all those questions is NO. They don’t (fucking) care. All they care are their problems. Building Product is to deliver User Values, and that’s what matters to your customers.
Also, a good technology doesn’t always mean a good product if it doesn’t solve user problems. Even a shitty technology sometimes is a suitable choice because it does the job. And then, it simply becomes a high quality one.
A better product, of course, helps generating better revenue. By providing what the customers need, you can attract new clients, retain the existing ones longer and reduce the churn rate. Once you got the money, you can even throw away some crappy modules that you made and buy another solution. That is really important to keep in mind and is cruelly how the business works.
“Start with the customer experience and work backwards to the technology. You can’t start with the technology and try to figure out where you’re gonna try to sell it” - Steve Jobs
When to apply?
However, you don’t always need to apply that mindset. If you are working in an outsourcing company or in a large organization, where all the requirements are clearly defined, sometimes it’s better to just build the software.
Building Product mindset is more suitable for startup or small/medium product company, where you have to move fast, where nothing is clear and the requirements change everyday.
To be continued
In the next post, I’ll show some real examples and examine the problems as well as come up with the solution that we can use.
Read it here Let’s build Product, not Software - Part 2