Product management is a cool job, arguably one of the most sought-after roles in business today. But, if you’ve been at it long enough, you inevitably end up hearing some version of this phrase at one time or another:
God only knows when my product is going to be shipped!Frustrated Business Person (or PM)
Or some version of the converse…
Product managers… they’re always giving us more sh** to do.Frustrated Engineer
I’ve heard some variant of these phrases more than once. In my darkest hours, I might have even muttered a mild version of one of these under my breath.
Of course, these feelings are normal, even healthy, in moderation. Product management and engineering needs to have a constant push-pull for progress to be made. Too much of it at once, and the string breaks because of the tension. Too little, and the string goes slack, and nothing gets done. So how do you make sure the string always has the right amount of tension, doesn’t go slack, and never breaks?
While I don’t consider myself an expert (and never will… I think it’s important to cultivate a learner’s mindset), I believe I have learned the – in some cases, hard-earned – lessons on how to effectively work with, communicate with and motivate engineers that could be useful to other product management leaders as they look to improve velocity and time-to-market of their (hopefully agile) teams.
Here are some of the things to keep in mind when working with engineers that I’ve gleaned from my experience. When in doubt, these should serve as your North Star.
1. Start With Why
Product managers own the “what” and “why”; engineers own the “how”.
If you hire smart engineers and simply tell them what to build without explaining the business case or potential impact your product or feature is going to have (in other words, if you don’t start with the why), you:
- Risk demotivation (leading to delays, or worse) if the engineers don’t understand the value of the product or feature you want them to work on
- Lose time by over-building (or worse, building the wrong solution) because, had the engineers understood the problem being solved, they might have had a better (or quicker) way to solve it
- Risk being misunderstood on one or more details (or even a bigger portion) of the product, which could have been avoided if the why had been made clear up-front.
Starting with why is the single biggest thing you can do to motivate your engineering team (in fact, your entire team) in charging forward toward a common goal.
2. Be Open to the “How” (and be Open to Feedback and Changes):
This especially holds true for PMs who come from an engineering background or have been accustomed to being entrenched in the weeds / implementation.
In general, once a problem has been identified, it can be solved a number of ways. Don’t dictate the how. Have a discussion with the people in the engineering team who will work on it, and ask them to make recommendations on the how, so that you can pick from the options (by evaluating the trade-offs on implementation cost and business impact). This will help find the best solution for your customers AND save on your team’s time.
3. When You Succeed, Thank Them. When You Fail, Look to Yourself First
This has two parts to it: deflect praise, and absorb blame.
As a PM, expect your successes to be recognized. Understand that executives will often praise you for the team’s successes – it always pays off to be humble and deflect praise across the entire team. Not only will doing this make executives respect you more, it will also have the effect of building your team’s trust in you, which is critical to your team’s future successes. Besides, doing the opposite will only backfire and make you appear a power-hungry attention hog.
The flip side to this coin is the occasional outage or failure. When something fails, be the first to step up publicly and take the blame. If it is obvious that it wasn’t your fault and someone on your team messed up, call it out as a failure on “our” part, and as the leader of the team, take immediate ownership of fixing the problem. Never redirect the accusations that are aimed at you.
Whatever you do, make sure you send shout-outs and give credit to the engineering team when things go well.
4. Sweat the Small Stuff – be Detailed and Specific
No detail is too small. Many PMs leave the technical details (or worse, details of the product) to the engineers, using “it’s not my job” as an excuse. But understanding the technical details will help you understand what’s hard, what’s easy, and make better trade-offs. It also has the effect of making the product better and earning the respect of the engineering team, which isn’t easy to come by. Both are value-adds that make you indispensable to the team and organization. Remember that as a product manager and leader of the team, the onus is on you to keep a record of every detail in writing. Just don’t make your specifications so wordy that nobody bothers to read them.
5. Always be Transparent and Involve Engineers Early (so Ownership is Shared)
Engineers are highly analytical, but many also understand sound business and product strategy. On top of that they’re also highly sceptical – the best ones question everything (in a collaborative, constructive fashion). Involve engineering early and often, so everyone has a chance to contribute to the product vision and buy into where the product is headed.
Transparency builds trust and trust leads to great effort. The worst thing you can do is maintain an air of mystery when decisions are made. Remember, building great product is a collaborative process.
6. Never Commit Without Them
You should never – I mean never – commit to dates, make estimations of effort or communicate project schedules without consulting your engineering team. Again, product managers who come from an engineering background are especially susceptible to this, but it’s easily fixable by ensuring your engineering lead is looped in before any major commitment is made to any of your stakeholders.
That said, it’s okay for you to challenge estimations (internally with your engineering team, and with sound reasoning), before communicating project schedules to stakeholders. Just make sure that you are aligned with your team before you reach that point.
7. Unblocking Your Engineering Team is Always Your Highest Priority
As product owners, we’re frequently swamped with things to do and requests from our stakeholder teams, including business development, account management, marketing, and so on. However, it should always be your top priority to answer a question for, or help test a feature that would help unblock, your engineering team (especially if they are working on a task for you in a Sprint that has already been set in motion). Responding to stakeholders and customer requests should always come second.
In the end, it comes down to respect. What’s more important, your time or the collective time of everyone on your engineering team?
8. Respect Their Time
How would you feel if you were in the middle of a long but important math calculation, and you were asked to drop everything to look at an email someone just sent you? That’s basically the life of an engineer, times 100.
Don’t be that person.
Whatever an engineer is working on is probably more important than what you need right now. Ask yourself, how critical is this, and do I need it now? Is it worth the productivity loss this request is inevitably going to cost the team? Can I get someone outside the team to help, or better yet, can I do it myself?
9. Know (and be the Voice of) your Customer
Always remember that the company is in business to make sure customers are happy. That should always be your North Star.
So, it’s your duty to be prepared with information (whether that be qualitative or quantitative) on how the client or customer thinks about things, what their needs are, and ideas to make their lives better. This is a great way to motivate your engineering team and earn their respect.
In the same vein…
10. Align Perspective With the User
Often, the winner is the HiPPO (highest paid person’s opinion), but that’s not necessarily the best way forward when it comes to building great products. If you make the customer or client the most important person in the decision-making process, agreement and alignment across the entire organization (not just with your engineering team) becomes much more attainable.
11. Set Expectations Through Experimentation
When it comes to making decisions, experimental data makes for a much better conversation starting point than opinions.
12. Validate Demand to Build Consensus
Nothing motivates an engineer more than a quick (or sure) win. To that end, you could use experiments to clarify and validate the demand for a product or feature before a single line of code gets written. And when you do, look at what the data tells you, and use it to your advantage when making your case.
13. Use Designs Only as a Tool for Mutual Understanding
This ties back to my earlier point about involving engineers early. As long as it’s not taking them away from productive screen-time, engineers appreciate it (and are more easily bought in to an idea) when they are included in emails / discussions / early mockups of concepts. In the same vein, designs, when first shown to the engineering team, should not be set in stone.
Ideally, designs should be used as a tool to explain a possible solution to a customer problem that you can all talk through. If designs are always “locked and loaded” and rarely tweaked after you show them to engineering, you’re probably not involving them in the process early enough, and therefore, doing it wrong.
14. Always be Testing (ABT)
ABT typically refers to a culture of experimentation and continuous discovery about your customer, but I like the acronym enough to use it here as well.
The best product managers consider testing (or “Product Sign off” or “Product Acceptance”, whatever you may call it in your workflow) to be an important part of their job. A separate QA function is important, but it’s also important that the work of testing not be something you just leave for others. And while testing the product, be sure to think about whether the solution that your team has built will work for your customers – and if it doesn’t, what needs to be changed to make it so.
15. Cut Process Down to a Minimum
Nobody likes process, certainly not engineers. Especially when it leads to wasted time and unnecessary roadblocks. Keep tracking software or spreadsheets, status reports, and cross-functional executive update emails down to a minimum. Better yet, eliminate them. Here’s what I have found typically works well for most agile teams:
- Backlog grooming sessions
Sizing / estimation sessions
Sprint planning sessions (factoring in velocity, and including a “Fist of 5” confidence vote)
- Evaluation of sprint progress
- Above all else, find ways to collaborate and work more closely together on a daily basis.
16. Focus on Building Strong Relationships
This extends beyond building relationships with just your engineering team. While it’s important to maintain boundaries, it also helps if you don’t separate your personal and professional lives too rigidly. Besides acknowledging and appreciating others’ work, ask people how their weekends were. Schedule the time to listen and understand. Give people the benefit of the doubt. If you’re managing a team, make sure everyone takes the time off they need to be healthy and happy (which indirectly translates to productivity and team success). Or, as Ken Norton likes to say, “Bring the Donuts”.
17. Be Realistic With Expectations, but Push Them
Engineers are grounded in practicality. While it’s important as a leader of the team to demonstrate that your plans are realistic and can be executed upon, they also need to be challenging. We wouldn’t have the successful SpaceX rocket launches had Elon Musk not pushed his engineers to exceed beyond what they thought were their limitations.
Above all else: appreciate your engineering team, respect them, communicate with them frequently, and you’ll be golden.