Teams need leadership, not three leaders. Dev managers should be able to understand the architecture, and the product, and the team. Product advises on the direction. Tech leads argue for the implementation. But the dev manager needs to bring these things together and provide direction. Otherwise all three people will just point fingers when the results suck—diffusion of responsibility. Teams need leaders and leaders need to be accountable for results.
It works really well were I work. It's led to an extremely bottom up culture were engineers want to stay forever, because they feel like management isn't getting in their way or compromising technical decisions.
> Teams need leadership, not three leaders.
I'm not advocating for shared responsibility. What I'm advocating for is separating responsibility such that each person knows exactly what they are expected to deliver. The manager is expected to help his team perform and be happy. The TPM is responsible for delivering the product the users want. The tech team is responsibility for delivering a product as quickly as possible that is maintainable and bug free and meets the requirements set by the TPM.
In your model, managers argue with the tech team, which causes people on the tech team to quit or become frustrated because the managers can't understand all of the details and still fulfill all their managerial duties.
> It’s how product believes one thing and engineers believe another
The role of the TPM is to make sure the tech team is building what the user wants. the TPM should be synchronizing with the user and the tech team, making sure this doesn't happen. It's their responsibility.
> Teams need leaders and leaders need to be accountable for results.
Agreed, teams need leaders who are focused on doing one thing, and one thing well. They should not be backseat architecting or leading the technical direction, unless they are the tech lead.
The architecture and implementation is a hidden detail for a manager. Either the team lead, architect, or team as a whole should design and move on the code.