Throughout my time in the tech industry, I’ve observed many development teams interact with product managers and owners. Often, these interactions are misaligned with the roles these groups should play, leading to inefficiencies and long-term challenges.
Product teams are fundamentally responsible for defining the what and the why of product features, they determine what needs to be built and why it is valuable for the business. Their role involves understanding market needs, setting the product vision, and prioritising features that align with business goals.
On the other hand, development teams should take ownership of the how, how these features are implemented technically. This distinction is crucial yet frequently overlooked. When developers take directives from product teams on implementing solutions without applying their expertise and critical thinking, it sets the stage for an “anti-pattern” in software development.
Here’s why this is problematic:
- Undermining Technical Expertise: Developers have specialised knowledge in system architecture, coding standards, and technical debt management. By not leveraging this expertise, teams miss out on crafting sustainable and efficient solutions in the long run.
- Increased Technical Debt: Implementing solutions precisely as outlined by someone without a technical background often results in shortcuts and compromises. These might work in the short term but can lead to significant technical debt, making future changes more difficult and error-prone.
- Stifling Innovation: When developers are not encouraged to think independently about how to best achieve the goals set by product teams, it stifles Innovation and the technical growth of the team. Developers should feel empowered to propose better solutions based on their understanding of technology.
- Erosion of Partnership: Product managers and developers should function as partners, with neither being subordinate to the other. A healthy relationship involves dialogue, where technical teams are free to question and suggest alternatives to product-driven requirements based on technical feasibility and impact.
To foster a healthier interaction between product and development:
- Product managers should focus on outcome: Define what needs to be achieved and why it’s important, rather than prescribing how it should be done.
- Developers should assert their expertise: Politely challenge and provide alternatives to product suggestions when there are more efficient or effective ways to achieve the desired outcomes.
- Cultivate technical leadership: Encourage the involvement of technical architects and senior developers in strategic discussions to ensure that technical considerations are factored into the product planning process.
- Education and respect: Both sides must invest time in understanding the other’s domain. Product teams should have a basic understanding of technical constraints, and developers should appreciate the market and business context.
By respecting each team’s distinct roles, companies can create products aligned with business objectives and built on robust, sustainable architectures. This balance is the key to long-term success and Innovation in the tech industry.
A Note to Product Managers and Product Owners: Embrace Partnership
Product Managers and Owners, it’s vital to see yourselves as partners to your development teams, not just taskmasters. Misunderstandings and conflicts arise when this partnership is overlooked.
Humility and patience are key. What might seem like a simple fix to you could be a complex issue for developers. Remember, you might lack the deep technical background they have.
Even a junior developer’s time estimates can vastly differ from those of a senior—this doesn’t mean complexity is being added unnecessarily; it reflects a deeper understanding of the task at hand. Always strive to be a supportive, collaborative partner in bringing your vision to life.
Concluding Thoughts for Developers: When to Move On
For developers, the environment in which you work can significantly influence your professional growth, job satisfaction, and the quality of the products you help create. If you find yourself in an organisation where leadership consistently promotes the anti-pattern of non-technical stakeholders dictating technical implementations, it’s a serious red flag.
Such practices undermine your expertise, stifle Innovation, and suggest a deeper cultural problem within the company — a lack of respect for the distinct and equally critical roles of product management and software development. In these environments, long-term success and career fulfilment can be hard due to the ensuing technical debt and poor operational practices.
If efforts to educate about and rectify this imbalance prove futile, consider looking for opportunities elsewhere. A workplace that respects and leverages the unique skills of all its teams will lead to better products and provide a more supportive and dynamic environment for your professional development.
Ultimately, aligning yourself with an organisation that values its developers’ contributions and encourages a true partnership between product and technical teams is crucial for your career trajectory and for creating impactful, sustainable software.