Product engineer is a specialisation within the career of software engineering where the engineer has put focus and effort into building out their capability of delivering products. I often get asked how this differs from a “normal” software engineer, why it’s important and “how do I become a (better) product engineer?”.
This post covers the why, what and how of the product specialisation for engineers.
Why product engineers matter
If you’re developing products, then as a rule software engineering or some type of engineering is needed at some point in your production path to create your products for sale to your customers. If you’re building tech products then there is a good chance engineering is a significant part of the time, cost and effort involved in shipping product.
This means that it makes sense to have people that are both knowledgeable and passionate about working in this type of environment and towards the outcome you’re looking for (successful products).
They can bring their knowledge to the translation between the technical and engineering world through to the product world, which ultimately translates into your customers world and the financial success of your organisation.
In this way, it’s often good to have a team with 1-2 engineers with a product specialisation paired with engineers that may be more technically specialised.
You can have business, sales, product management and marketing people with all the product capability in the world but if the engineers are too technically focused you’ll find challenges having the software you develop embody your ideas within your commercial constraints.
Sometimes what seem like small technical nuances can turn into serious product issues. A product minded engineer will be able to balance the technical with the product considerations.
So, why isn’t every engineer a product engineer then? Shouldn’t we make every engineer product minded? Ideally yes but in reality people have different strengths and interests. In an organisation of any reasonable size you’re better off playing to people’s strengths (it’s kind of what our entire economy is built on – specialisation). Time spent researching product related practices for engineering is time not spent researching the latest in self-training machine learning algorithms. It’s too hard for someone to cover everything and you usually need a high performing team not a set of rockstars.
Side note: Look at most sporting teams that win consistently, they usually have stars but everyone acts as equals.
If you’re an engineer, why specialise as a product engineer?
To the engineers reading this, treat product as a specialisation just like any other. Product, team lead, AI and ReactJS front end are all specialisations that you can pursue.
At the very least, getting a base level understanding of product will set you up to function better as a product development team member. You will come to understand why decisions are being made, whether the team is following appropriate practices and probably gain some empathy with your customer and other stakeholders.
At the very best, you’ll be an indispensable member of a product development organisation. You’ll be able to see shortcuts that make people say “wow, they delivered what the customer needed without the customer knowing they needed it”. You’ll become relied upon by your non-technical colleagues to find solutions that span technology, product, customer and timeline. You’ll likely understand the customer more and gain a different appreciation for your job. You’ll probably become a welcome mediator between your more technical colleagues and your less-technical colleagues. You might even be in a good spot to transition into a more product focused role (like product ops, product management or product analytics).
What is a product engineer?
Just like someone might specialise as a back end .NET Engineer or mobile Android engineer they may also specialise as an engineer that excels at building products, a product engineer.
The product engineer specialisation is no different to the more technical specialisations. As a product engineer you also focus on learning particular patterns, techniques and technologies, just in this case where they are relevant to product development specifically.
I have seen product engineers pitted as an either/or to being a software engineer but a product engineer is just a sub-specialisation. You can specialise in both being a .NET engineer and a product engineer.
The capabilities and knowledge areas you want to focus for a (or as a) product engineer are guided by the Principles of a Product-led Approach:
- Work from the outside-in
- Understand how to understand the customer (Ultra quick start: Jobs-to-be-Done)
- Understand and apply product analytics
- Understand personas
- Understand markets (e.g. total addressable market)
- Rapid, early validation
- Get involved in developing hypotheses
- Build prototypes, MVPs, work in ‘slices’ (engineers find it easy to do technical prototypes but often find customer/feature focused ones ‘not meaningful’ enough).
- Know when to use throw away code and build for scale
- Maturing through iteration
- Pragmatically apply agile
- Be confident and comfortable with an evolving approach to technical challenges (e.g. performance/scaling)
- Be able to design software in product iterations (sometimes what you first create will need to evolve towards the ideal architecture. Also, refactor later as it may not be tech debt.)
- Disciplined prioritisation
- Apply frameworks to how you prioritise
- Invest time in (re)evaluating your priorities
How to develop or become a product engineer
The best way to increase your product engineering capabilities within yourself or your team is a two pronged approach: learn and apply, then mature through iteration.
To kick-off your learning get started with some of the links above as well as research into the topics called out. You might want to read online, get books or listen to podcasts.
Start bringing each concept into your daily work as you learn it.