Some product managers may see devs as a roadblock to getting good product. Some devs may view product as arbitrary and authoritarian. Without communication, early and often, it's easy to see why these perceptions persist. Perhaps we can have better conversations instead.
The "No" People
Some product people may see developers as "no" people. A product manager comes to a developer and says, "Here's what we have, here's what we've learned, and here's what we want to build." Immediately, that poor product manager might be given a litany of reasons why this is hard, improbable, or will take a long time. It's easy to see why a product manager might feel like his work is being attacked. It's easy to see how developers can be seen as kill joys. Engineers do have a way of picking things apart. How can we use this eye for detail to our advantage?
Arbitrary and Opaque
Some developers may see product people as fantastical dreamers with no grounding in reality. A product manager comes to a developer at says, "Here's what we have, here's what we've learned, and here's what we want to build." Immediately, those poor developers might feel like they've been given a list of honey-dos for the next 3 months. And why? Who knows, it's probably just what that product manager wants. It's easy to see why a developer might feel put upon and unclear about his willingness to do this work. It's easy to see how a product manager can be seen as opaque in his process, handing out essentially arbitrary requirements based on his own desires. Product managers are good at getting a vision of the future and the impact of product features. How can we get the whole team to share this vision?
These views of developers and product managers both contain truth. Yes, engineers are good at seeing concrete steps needed for creation. Yes, product managers are good at seeing product impact. But used in the wrong way, these virtues can reinforce an essentially negative stereotype -- e.g., they just say "no", or they give arbitrary directives. We can help one another be better. First, we need to trust each other enough to collaborate. We need to speak openly with one another and share what we know and how we know it. We need to share when we don't know or are unsure. We are vulnerable with each other in order to speak with clarity and honesty.
Developers need time to work through things, just like everyone. If abruptly given an idea or a directive, how can it not feel arbitrary? There is no context for the origin or development of this idea. Share the discovery process together. Have conversations earlier and more often. Then things don't come as a surprise. More, smaller conversations over time will mean less painful course adjustments.
Product managers need the team to dream with them. They need devs to be able to listen to ideas, even bad ones. They need to feel safe sharing what they know and how they know it. Sometimes intuition is an ok answer, but it will require pre-existing team trust. Product managers need to know that the entire team is committed to the purpose of the product and to working to achieve it. They need context and reason behind why developers sometimes say "no".
When we really come together, we become cross-functional in more than just name. To come together, we need to collaborate in each others' spaces. We need to communicate better.
What are some ways that your product development team has learned to better communicate?