Head of Marketing
At Shopify, the Developer Infrastructure team exists within a broader Developer Acceleration organization that defines their mission as making developers at the company highly productive. Although this mission statement helps guide direction, it is a broad description that leaves a lot of room for interpretation about what projects to actually focus on.
In this article, we cover the story of how the Developer Infrastructure team built on its parent organization’s mission statement to define its own team charter and guiding principles. This article is based on an interview with Mark Côté, who leads the Developer Infrastructure team.
Shopify’s Developer Infrastructure team owns a wide range of work, spanning everything from developer environments and CI/CD to frameworks, libraries, and productivity tools. Without a clear charter, the team found that it could easily end up taking on projects that weren’t necessarily the highest priority for the business.
Another reason why the team decided to formalize their charter: to help clearly communicate the reasoning for specific projects with leadership. Côté explains:
The Developer Infrastructure team’s charter includes two distinct components: opportunities for impact, and guiding principles. These components both tie back to their parent organization’s mission of making developers at Shopify more productive. The following sections describe each of these components in further detail.
Defining a team’s areas of focus, or “opportunities for impact,” helps answer the question of what problems a team does and does not work on. To identify these areas, the Infrastructure team reviewed projects they’d already worked on as well as future opportunities they saw. They also reviewed notes from blogs, podcasts, and conversations about how similar functions at other companies define their charter.
Once the team had reviewed and organized all of their notes, they came up with three categories under which all opportunities could be organized: tightening feedback loops, reducing cognitive overhead, and scaling up engineering.
Tightening development feedback loops refers to providing developers with the information they need when they need it. Two examples of projects the team has focused on that map to this category:
Scaling up engineering is about finding ways to increase the total impact of the organization. For example:
Reducing cognitive overhead is about eliminating the number of decisions coders and managers alike have to make. This category has included projects such as:
Today, the team focuses exclusively on projects that fall within these categories. The team identifies and prioritizes projects by surveying and speaking to developers. Their channels for collecting developer feedback include a quarterly survey, office hours sessions, and 1:1 interviews with developers. They also receive additional roadmap ideas from a separate team within their parent organization that provides direct support for their internal tools.
The second component of the Developer Infrastructure team’s charter is a set of guiding principles. The guiding principles outlined below help define how their team should work and make decisions:
1. Maximize impact with effective two-way communication. “We have to talk to our users all the time,” Côté says, “both listening to their needs and communicating our solutions back to them.
2. Pursue both incremental and big step-change improvements. Côté explains, “We have many services, and they all have rough edges, bugs, and missing features. While one of these services provides value, we’ll continue to iterate on it. However, sometimes we need a significant alteration to the way engineering works; sometimes this is because we can’t further scale a system, sometimes because we’re getting diminishing returns on a solution, and sometimes because there’s a new need or useful technology to leverage.”
3. Enable self-service by providing extensible platforms, information, green paths, and guard rails. The Infrastructure team can’t solve every problem for developers, so they try to build open and extensible systems that developers can build and extend on their own. This allows the Infrastructure group to concentrate on higher-impact work.
4. Absorb complexity. Accelerating development requires reducing the overall complexity that developers face. “We take on some of this complexity for global simplicity,” says Côté. “Accordingly, we don’t push any of the complexity of our systems onto our users. Sometimes this is a lot of work for our teams but saves our users more time and effort as a whole.”
In summary, although internal-facing teams focused on developer productivity may understand the value of their work, leaders of such teams still sometimes struggle to articulate this value to leadership and explain why they are prioritizing certain projects. If you’re in a similar situation, you can look to Shopify’s approach as a useful path forward: defining a team charter can help frame all discussions with leadership, ensuring that the value of a team’s projects is properly conveyed.