Engineering teams at scale

Leaders at 1Password, Atlassian, and Intuit share how they measure success, determine focus, and foster mentorship, sustainability, and collaboration in their organizations.
Part of
Issue 11 November 2019

Teams

Michael Fey

VP of engineering, Apple technologies
1Password

164 employees,
10 engineering teams,
average team size of 8

Sri Viswanath

CTO
Atlassian

Over 3,500 employees,
79 engineering teams,
average team size of 14, though teams can range from 4–72

Raji Arasu

Senior vice president of Intuit platform
Intuit

9,000 employees,
6 core product development teams,
average team size of 5–12


Beyond strong metrics or ships, how do you measure a team’s success?

We usually measure our success by the public response to our releases. If the social reaction (via Twitter, mostly) is positive, that’s something we look to replicate in the future. On the flip side, if we push out an update and it generates higher levels of customer support requests than usual, that’s something we look at correcting.

— Michael Fey, 1Password

We spend a lot of time measuring and optimizing team health, making sure teams have the tools and the motivation to work together effectively. We use [tools like our Team Playbook] to drive trust, psychological safety, and a continuous feedback loop that improves collaboration and product outcomes.

— Sri Viswanath, Atlassian

While leveraging many of the agile metrics to measure team speed and velocity, we also measure operational metrics that consist of security, quality, performance, and availability SLAs for every service and application. Input goals and outcome metrics are also defined for every key initiative. We strive to create a data-driven culture by reviewing these metrics together every week, celebrating progress and learning from the failures without judgement.

— Raji Arasu, Intuit

Does your organization build cross-functional or highly specialized teams? Why?

Interestingly, this is something we’re embarking on right now. For our next big update, we’ve built out five cross-functional “feature teams.” They’re made up of platform developers from our Mac, iOS, Windows, Android, web extension, 1Password.com frontend, and 1Password.com backend teams.

Each feature has a single designer at the helm, guiding user-facing implementations to make sure they’re consistent across clients. Platform developers work together to identify areas of the implementation that can become part of a shared library to avoid replicating work unnecessarily.

— Michael Fey, 1Password

We structure our teams to optimize for stage and type of project, which means that sometimes we pull together a group of specialists, and sometimes we need a cross-functional team. When we start a project, we use the concept of the “project spike,” where we gather a small team to work on a proof-of-concept solution. Once we have a direction, we have teams that are focused on the long-term execution using agile practices. We don’t consider a project complete when the code ships, but we look at when the outcome is achieved. The leaders in my organization are tasked with bringing in the right people at the right time for a project. They’re constantly planning ahead on who’s needed and what the dependencies are, while balancing the need for team cohesion for the future.

— Sri Viswanath, Atlassian

Within the Intuit Platform organization, we have [cross-functional] teams that are “centers of excellence,” and highly specialized teams focused on various technical areas, like API gateway, data platform, identity, product infrastructure, and more. These specialized teams work collaboratively and cross-functionally across the company to deliver customer outcomes. For example, members of our Identity team work closely with the TurboTax and QuickBooks product teams to build and ensure a smooth customer onboarding experience.

— Raji Arasu, Intuit

When and how does your organization split a growing team into several?

It’s not something we’ve needed to do yet, though I think we’re nearly there with the 1Password.com team. Currently, the frontend and backend are both on the “1Password.com team.” As each group’s responsibilities grow and their focus splits, it makes sense to separate them.

On the other hand, for a long time our iOS and Mac teams were separate, but we’ve recently joined them to make sure that we’re driving both client apps forward, in the same direction, at the same pace.

— Michael Fey, 1Password

From a team-health standpoint, we prefer small teams because we find that with each additional team member, communication and decision-making becomes more difficult. Like many of our peers, we generally adhere to the “two-pizza team” structure—no matter how large the organization grows, each team should stay small enough that two pizzas can feed them. As teams grow, we subdivide along natural boundaries in components and services. These smaller teams align under a common goal. From a technical standpoint, making the move to microservices architecture has helped facilitate smaller teams with clear interfaces.

— Sri Viswanath, Atlassian

We don’t have a set of principles for when and how growing teams are split, but we aim to keep working teams small, and follow the popular two-pizza team concept. It’s a funny phrase but a good reminder that the best innovation often comes from a small, diverse working team that’s given the freedom to make decisions and move fast.

— Raji Arasu, Intuit

How has your team structure changed as your organization has grown?

We used to be a very horizontally structured organization, with everyone reporting directly to the CEO. As we grew from 40 to 100, it became clear that wasn’t sustainable. Now that we’re approaching 200 employees, it’s downright impossible.

We’ve been slowly introducing more hierarchy to spread the load. For example, we recently added VPs of engineering to oversee things like server work, client-app work, and shared code work.

It’s not a big change for the individual teams and how they work. Now they’re talking to a VP, rather than answering directly to our CEO.

— Michael Fey, 1Password

In the earlier days of Atlassian we often relied on heroic efforts by individuals who had a very deep understanding of the entire product history or system. As we grew, this was no longer scalable, and we had several setbacks when heroes weren’t on [the necessary] teams, or hit their limits in terms of complete mastery over sprawling systems. In order to create a more scalable and predictable organization, we focused on finding common patterns for how we expect teams to design and build software, and then divided into smaller, autonomous teams. We take inspiration from the best open-source teams: diverse, with strong conceptual integrity, well-understood architectural patterns, and a shared vision.

— Sri Viswanath, Atlassian

We map all capabilities and domain scopes to an enterprise architecture model that we internally refer to as “City Map.” The City Map breaks down capabilities all the way from, for example, an application like Mint, to the content management system that powers content in the Mint app. As the organization grew, it was fairly easy to organize teams by the domains in our City Map, as it gives teams clarity on the scope of their domain and how it connects to the big picture. While teams clearly understand the capabilities and domains they’re accountable for, we also foster and encourage open contribution across domains and capabilities.

— Raji Arasu, Intuit

How do you foster mentorship within your engineering teams?

Each engineering team has an established crew of veterans. As each team grows, the veterans take new starters under their wings and show them the ropes. Their mentorship takes the form of everything from in-depth code reviews to pair-programming sessions.

— Michael Fey, 1Password

Beyond the common practices of programming code reviews, leading feature development, and giving stretch assignments, we’ve made mentoring an explicit part of success for advancement. It’s not sufficient to be great at your job—employees also have to invest in raising the level of their team. We have profiles of available mentors and encourage employees to reach out to establish a mentorship relationship. We also host “mentoring circles” for those taking on management responsibilities for the first time. These circles focus on specific topics for each session, from running an inclusive meeting to having employee growth conversations.

Our secondment program allows employees to work on a new team for several months to expose them to new skills, product areas, and people around the company. Our manager-apprenticeship programs give individual contributors an opportunity to try out a management role for a few months to decide if it’s a path they want to pursue. Our goal is to offer a mix of relationships and experiences to help our engineers find and prepare for the next step on their career path.

— Raji Arasu, Intuit

The ever-changing technology landscape requires engineers to be constantly learning. Engineers, especially those entering the workforce, need great mentors and managers who can teach them critical skills around being “ever curious” and smart time management for sustained performance. Managers play a big role in mentoring and coaching engineers to develop these skills. Our monthly learning series focuses on building management capabilities through targeted content, exchanging best practices, and bringing in external speakers.

We also have a formalized initiative called “Tech Women at Intuit,” a community that offers programs to attract, retain, and advance women in the global technology organization. We accomplish this through strategic programs, which include a mentorship matching program for engineers.

— Raji Arasu, Intuit

How much do your engineers participate in candidate interviews?

Interviews are usually handled by team leads, who, along with the VP and CEO, decide if someone should be brought on. We then run a 90-day probationary period, during which the engineers give feedback about the progress of their new teammates and how they’re settling in.

— Michael Fey, 1Password

We include engineers of all levels throughout the interviewing process. Our recruiting team offers structured interview training and shadowing to ensure that engineers deliver the same quality and experience to candidates, and provides guidance to help interviewers make objective hiring decisions. And our engineers don’t just conduct technical interviews, but also focus on values. It’s not just about finding someone who can code well, it’s about finding a person that exhibits values-aligned behavior in terms of playing as a team, being open to sharing information and receiving feedback, having a customer-first mindset, and being the change they seek.

— Sri Viswanath, Atlassian

For engineering roles, our engineers are actively included in candidate interviews as “Awesome Assessors.” Intuit works to build a diverse candidate pool for every job opening, and that strategy includes deploying a diverse team to help us find, evaluate, and hire. Awesome Assessors are some of Intuit’s top-performing team members, typically nominated by leadership. They represent diverse backgrounds and departments and help us avoid groupthink in our recruiting and hiring practices.

— Raji Arasu, Intuit

What do you consider the tenets of a strong team?

Communication is key: Not talking dooms a team to failure. Supporting that is a strong sense of camaraderie—folks propping each other up and supporting each other when things get tough.

The strongest teams feel a great deal of ownership over the product they’re shipping. Our teams feel like they “own” the product they create; together we revel in its successes and feel responsible for its failures. This personal investment creates strong bonds across the company.

— Michael Fey, 1Password

When we think of tenets we think of how to build strong, sustainable teams, so we focus a lot on team health and cohesion, and we systematize measurement of these attributes based on team type. For example, project teams focused on delivering an outcome need different attributes than leadership teams focused on managing people. We use our Playbook to look at different attributes. Do projects have a full-time owner? Is the team balanced, with roles and responsibilities clearly defined, and the right skills to accomplish the task? Does everyone on the team know why they’re here, and what the goal is? Do we know what’s valuable and how we’re measuring success? Does the team understand the complexity of the project, and have they thought about all the risks and other teams that might be involved? Each of these elements is based on communication and trust, not only with the manager but also with each other.

— Sri Viswanath, Atlassian

Empowerment, trust, and psychological safety are paramount for any team, regardless of their discipline. And they are all correlated. At Intuit, we define and declare objectives and key results for all initiatives that matter to our customers, business, and platform. Teams are empowered to define the path to achieve these outcomes in their own ways. We strive to establish trust within teams to lean on each other for expertise and unique experiences, and to work collaboratively. We also strive to create an environment where no idea is a bad idea and failure is okay, so that teams feel more confident to experiment and try new ways to solve problems.

— Raji Arasu, Intuit

Buy the print edition

Visit the Increment Store to purchase print issues.

Store

Continue Reading

Explore Topics

All Issues