Companies don’t really want frontend engineers or backend engineers or infrastructure engineers. If you work at an engineering as product organization, they want good product engineers solving user problems. As an industry, this is poorly understood and little is written to help people understand the principles of good product engineering.
This is my attempt at explaining some of the core tenets of the best product engineers I’ve worked with and what I strive for.
Engineer: “Does it work”, product engineer “Does it make sense.”
You are not the user
This is the main challenge of product engineering. Unless you are writing software that is specifically targeting a problem you have directly that you would buy for yourself, you are not the user. It is significantly harder to build products for other people because the further from the self, the less real it feels.
To overcome this simple fact, you must make contact with reality. You can ride along sales calls to hear how your product is pitched and hear first-hand how prospective customers are describing their problems. You can answer support tickets to see how users struggle with the product.
If you never make contact with reality, it’s easy to fool yourself.
Develop domain knowledge and expertise about the user
I’ve never met a good product engineer who doesn’t talk to users and doesn’t know the ins and outs of the domain their users are in.
If you are working in a highly technical field (legal, tax, banking, etc.), it doesn’t mean you need to be a CPA or lawyer, but you’ll need to get to a foundational understanding. Without this, you won’t be able to understand the context in which your customers experience their problems and you could miss key insights.
Ever read a mainstream news outlet story about engineering and think—gosh that’s not even close? Every domain has infinite detail and it’s obvious who ‘gets it’ and who doesn’t. People are smart and your product will look like marketing bullshit if you don’t have domain expertise.
Conjecture is more important than data
Data-driven decisions sound intuitively correct but trends are not explanations. Great product development requires conjecture. While luck is important to success, making good choices about a product does not. Reasoning about problems clearly starts with deeply understanding the situation and drawing conclusions. This is why building up domain expertise and talking to users is so important.
Beware the downside of first-principles thinking, talk to users as a shortcut, and, crucially, make contact with reality often (try out your ideas iteratively).
Cultivating product sense is having good taste
Product sense is making good decisions about the user often. To do that needs a refined sense of taste. Good taste is an intuition about power.
Cultivating taste is hard. If you are building products and are driven to build great products, chances are your taste is already pretty good (you can spot the taste gap) but refining it is difficult.
I like the definition of taste from Creative Selection: taste is the refined sense of judgment and finding balance that produces a pleasing and integrated whole.
I don’t know of a way to cultivate really good taste other than to make it less ethereal—you are after distinct knowledge about the user, their problem, and the solution. Objective knowledge begins as conjecture and is then corrected with criticism. Work in an environment that embraces good explanations and is error correcting.
Links to this note
The right to build something new needs to be earned from existing customers. If they’re not happy with your core offering (most businesses start with a single product) they will worry that existing issues will make their way into the new product category. If people love your product they will naturally pull the company into other categories to solve more of their problems.
One of the keys to building great products is to regularly make contact with reality. Ideas rarely survive first contact with users—what we think is good might be completely useless to an actual potential customer. Regular contact with reality insulates you from the illusion of explanatory depth.