Tensions between Engineering, Commercial, and Product?

Tensions between Engineering, Commercial, and Product?
Three hands holding onto one another. Engineering, Commercial, and Product are in a constructive tension.

How do you feel about the relationships between your Engineering, Commercial, and Product teams?

Even in a healthy company, there will always be structural tensions between these teams, because their goals and needs are in tension. But just as in a suspension bridge, that tension is the key to holding everything together, and building a successful company.

Let's start with a caricature.

  • The Commercial team will tell their customers anything to get a sale, promising unplanned features on an impossible timeline.
  • Engineering are now on the hook to deliver, and justly resentful. They’re always in a rush, always fire-fighting, they constantly miss their deadlines, and ship broken products.
  • This in turn puts the Commercial team in an impossible situation, scrambling to paper over the problems in demos, and maintain relationships with existing customers.
  • And the Product team are caught in the middle, trying to plan a roadmap, without being able to rely on the Engineering team to deliver, or the Commercial team to provide useful signals.

For simplicity, we’ll focus on Engineering and Commercial first, because they're the most opposing ends of this spectrum. It helps a little just to sit down with both Leads, and recognise that this structural tension exists - Commercial have to make the sales, and Engineering have to deliver. Said out loud, it’s obvious to see that both teams need one another. And indeed, that both teams can throw the other under the bus. Unless both teams are doing their job, the company will fail.

Well, what's to be done? The step is to work on building the relationships between the teams, and especially between the team Leads. How can the Head of Commercial and the Head of Engineering build trust - to be able to say “I like this person, we've we've broken bread together, we’ve shared a laugh, they’ve taken responsibility and apologised for mistakes, I feel they’re listening to me, and I know we both want this company to succeed”. That personal relationship is essential for being able to have difficult conversations from a place of trust, rather than from a place of suspicion. See Patrick Lencioni’s Five Dysfunctions of a Team on building trust between individuals within the senior team.

As a next step, build relationships between the teams. Start with small steps - have lunch together regularly, or find other ways to get to know one another as people. Ultimately the goal is to build understanding and empathy between teams.

Speaking as an Engineer, I have come to see how difficult the salesperson's job is, mostly by sitting on calls with them. It has helped me see how they work to build a relationship with customers, build credibility, work around product limitations, wrestle with objections, and somehow balance the short-term pressure they're under to make a sale with the long-term pressure to do what's right for the company. It’s especially valuable for an Engineer to sit on difficult calls, sharing bad news about missed deadlines or outages or why a feature request is being denied. That helps the Engineers to feel the impact of failed deliveries or of dispassionate engineering trade-offs, and potentially add information that will help Commercial to make future decisions well.

Likewise, we can think about Commercial’s understanding and empathy for Engineering.

Often this breaks down because engineers don't communicate well enough to non-technical audiences - during the All Hands, everyone’s eyes glaze over during an impenetrable, jargon-filled engineering update. It only takes a little practice, guidance, and feedback to make every engineer a more effective communicator, to help them be concise, concrete, explain why the project matters to the business, explain the trade-offs they're wrestling with, and what they've learned when things go wrong. When the Commercial team understands what’s easy and what’s hard, they will suggest solutions that meet customer needs, while making the Engineers’ jobs easier. When Commercial understands the trade-offs in a decision, or the causes of a problem and what’s being done in response, they can provide better air-cover with customers. And it’s just so much easier for people to accept disappointment when they understand the reasons for it. All of these steps build empathy, build understanding, and build trust. Now we’re on our way to a virtuous circle.

There are a few other meaty topics that contribute to the dynamics between Engineering, Commercial, and Product.

Predictability: The Commercial team would love to be able to sell forwards, i.e. to close the sale by talking about features that the product will soon have. The Product team would love to be able to plan ahead, with a nice roadmap stretching out over months and years. What would happen if you didn't commit to a roadmap more than a month (or even a week) ahead? Those roadmaps always change anyway! You don’t have to spend so long incorrectly estimating how long things will take. You can just focus on doing them as quickly as possible, and in the right order. This is the first step towards a larger cultural shift, towards less work in progress, i.e. deliberately juggling fewer balls at a time. Reducing work in progress is the single biggest improvement you can make to the productivity, morale, and relationships around your Engineering and Product teams. It will help you finish what you start sooner, allow you to update priorities more readily. But it starts with sacrificing predictability, selling forward, and long-term roadmaps. In most industries and for most startups, this is the right trade-off.

Delivery: Secondly, the Engineering team needs to do what they say they’re going to do. Now that the company has stopped trying to predict how long everything will take, that takes a lot of the pressure and uncertainty away. But the Engineering team must deliver product improvements - if they’re buggy, that's going to create firefighting. Fire-fighting is dealing with urgent, stressful, unexpected problems. Instead, we want to spend most of our time on planned work that adds value. The biggest step towards reducing fire-fighting is to run a blameless, five-whys Postmortem every time something goes wrong, and to prioritise fixing the one or two most important causes you identify. For extra points, communicate well with other teams about what happened, and what you’re doing to avoid it in future. After a few Postmortems, your systems will become a little more bulletproof, you’ll be doing less fire-fighting, and you’ll create space for the next round of improvements to delivery. (For more on work in progress and fire-fighting, read The Phoenix Project.)

So there is no silver bullet to improving relationships between Engineering, Commercial, and Product teams. The first step is to improve relationships between the Leads, and between members of the teams, building trust, empathy, and understanding. Educate one another, and walk a mile in each other’s shoes. Consider sacrificing predictability and long-term roadmaps, and aim to do fewer things at once, so that you can finish each one sooner and more reliably. And take steps to improve Engineering delivery by running Postmortems.

There is an inherent structural tension to the roles that each team occupies within the company. But when things are working well, each team is looking out for the other. The Engineers don't want to disappoint the Commercial team or their customers. The Commercial team want to find solutions that meet the needs of customers without destabilising Engineering and future delivery. There is still a structural tension, but it’s healthy.