Engineering Pods: Breaking Down Silos in Software Development
Originally published on LinkedIn June 28, 2023
The Challenge
In the realm of software development, the problem of siloed teams can often present a significant challenge. Siloes are essentially isolated units within an organization where information and resources are not shared outside the group. These siloes often manifest as separate teams for product management, design, and engineering in software development. While experts in their own field, these teams may lack a comprehensive understanding of the broader project context, leading to misalignments and inefficiencies. The disconnected nature of these siloes can result in a lack of shared vision, conflicting priorities, and a communication breakdown. Ultimately, this disjointed approach can lead to suboptimal product outcomes and an inability to adapt quickly to changing market needs or user requirements.
The absence of a framework like engineering pods, where a product manager, a designer, and a tech lead work together as a cohesive unit, exacerbates these issues. Without this collaborative structure, teams struggle to align their individual objectives with the overarching business goals, and the product strategy may get lost in translation. Moreover, without a strong conduit between the business, design, and technical perspectives, there's a risk of developing features that are either not technically feasible or don't resonate with user needs. Consequently, the product development process may become fraught with delays, cost overruns, and dissatisfied users.
Engineering Pods
The ideal software development process hinges on a well-structured, collaborative environment focusing on user-centric design and technical feasibility. This process can be best realized through the formation of engineering pods, each led by a product manager, a designer, and a tech lead.
Product managers are responsible for driving prioritization, ensuring that the team's efforts are aligned with the product strategy and the company's business objectives. They also act as the main communicators, bridging the gap between business and technical teams and ensuring that all stakeholders have a clear understanding of what's being built and why.
Designers, on the other hand, are tasked with defining the user journeys. They bring an empathetic understanding of the user, creating intuitive interfaces and experiences that meet user needs and expectations. Designers need to work closely with both product managers to ensure alignment with the product vision and tech leads to ensure designs are technically feasible.
Designers need to work closely with both product managers to ensure alignment with the product vision and tech leads to ensure designs are technically feasible.
Tech leads play a critical role in defining the technical feasibility of proposed features and improvements. They ensure that the proposed solutions align with the technical capabilities and constraints of the system and lead their teams in implementing these solutions.
To ensure efficient collaboration between product management and engineering teams throughout this process, I would adopt a narrative format similar to Amazon's 6-page document. This approach involves writing a detailed narrative that describes the proposed feature or product, the problem it solves, how it will benefit the user, and how it aligns with the company's goals. This document serves as a single source of truth, reducing ambiguity and ensuring all teams clearly understand what is to be built.
The narrative is shared with all stakeholders before any coding begins. This allows for a comprehensive review process where all involved parties - product managers, designers, and tech leads - can provide feedback and ask questions. This process can be further extended to include GTM teams to ensure cross-department alignment. The iterative feedback ensures alignment across all teams and allows for early detection and resolution of potential issues.
In Conclusion
Organizing teams into engineering pods and leveraging a narrative-based approach can significantly improve collaboration between product management and engineering teams. This not only helps in creating a better product but also fosters a culture of transparency and mutual respect, where everyone's contribution is recognized and valued.