ICONIQ Insights: Seven Tips for Managing Remote Engineering Teams

Aditya Agarwal
ICONIQ Growth
Published in
6 min readNov 19, 2020

Fueling productivity, inspiring engagement, and harnessing remote work for scalable success

Source: https://about.gitlab.com/

GitLab, creators of tools for software developers, has the largest remote workforce in the world. More than 1000 team members across 66 countries are a stunning example of an organization that created a thriving remote work culture long before COVID-19 closed the world’s offices. How? The answers lie in GitLab’s publicly-available team handbook, which, if printed, would be 8,000 pages long. GitLab’s approach is distilled in Executive Vice President of GitLab Engineering Eric Johnson’s remote-only work principles, including effective communication, agenda-setting, and promise-keeping.

ICONIQ Growth Partner and former Dropbox CTO Aditya Agarwal joined Eric Johnson in conversation to learn how he effectively manages a team, particularly engineers in a virtual environment.

Seven Insights on Managing a Remote Engineering Workforce…

  1. Values

GitLab operates by a value system, recorded in a handbook that’s open and available online to the world. Upholding the internal motto of “handbook first,” GitLab makes both day-to-day and long-term decisions based on a clear and deliberate set of values they call the CREDIT acronym. Eric noted that the value system is ranked in order of importance so that values do not compete with each other, and decisions can be made effectively:

  1. Collaboration
  2. Results
  3. Efficiency
  4. Diversity, Inclusion & Belonging
  5. Iteration
  6. Transparency

Why is this important? As the company rapidly scales in both product and human capital, the culture and the technology adapts and iterates. However, the value system remains constant, acting as a single source of truth amid the chaos of growth.

Read more on the GitLab values: https://about.gitlab.com/handbook/values/

2. Embracing Asynchronous Communication

In an all-remote setting, with unique time zones and locations, efficient collaboration is vital to avoid dysfunction. To best move projects forward, GitLab operates asynchronously, which means “communication without the need for additional stakeholders to be available at the same time your communique is sent.”

GitLab has a few suggestions on implementing asynchronous communication in your company:

  • Complete the GitLab Asynchronous Workflows knowledge assessment, a core part of the Remote Work Foundations learning certification.
  • Conduct an asynchronous pilot. This could mean attending half of your weekly meetings async for a week and conducting a retrospective on the differences between sync attendance and async attendance.
  • Conduct a non-linear workday pilot. Consider shifting your schedule to better suit your peak productivity hours or caregiving hours, or experiment with alternative work schedules that would not be supported in rigidly synchronous organizations.
  • Team members have varying learning and communication style preferences (e.g., neurodiversity) that may make audio discussion much more useful than written information. Thoughtfully time synchronous discussions to ensure that everyone can contribute.
  • Every meeting should be a review of a concrete proposal or catalyze a future series of asynchronous events.
  • If a GitLab epic, issue, or merge request is over 1,000 words, a summary is required at the top of the issue/merge request for efficient absorption of critical points.

To provide context, below are examples of asynchronous integration on GitLab teams:

Weekly announcements

Engineering Management creates a weekly announcement video and slides to be viewed async, convenient for each team member.

New team member introduction

Each new team member creates a 2-minute video self-introduction that can be shared in meetings and Slack channels.

Backlog refinement/planning poker

The team collaborates via a GitLab issue (or Epic or merge request, if more relevant), tagging the appropriate parties with specific requests. If the volume of information is above 1,000 words, ensure that a Highlights section is at the top.

Capacity planning

Team updates a shared Google Sheet monthly.

Quarterly team results in recaps and celebrations.

Corporate Marketing (#corp-mktg) creates a Google Doc or Slides for team members to add results async and then share the resulting celebration video (with those who can attend sync) on GitLab Unfiltered.

Monthly finance accruals

DRIs (Directly Responsible Individuals) in respective departments set a monthly personal reminder to update ongoing Google Sheets with the latest financial accruals, tagging their finance partner(s) in the doc if there are questions.

Read more on GitLab communication: https://about.gitlab.com/company/culture/all-remote/asynchronous/All

3. Hiring

When Eric joined the team, he inserted himself as the final interviewer on all potential hires. Recognizing the time spent on talent sourcing, he re-wrote the engineering hiring handbook and created new technical expertise and cultural fit standards.

For Eric, primary indicators of remote performance were their past remote experience, ability to handle zoom interviews, online response time, and general virtual etiquette. A few qualities that are particularly important for remote success are:

As the entire world moves to remote work, the market for top talent is even more competitive. GitLab recognizes that the perks of working from home are no longer unique, so the team places great emphasis on meaningful benefits:

  • Benefits for families and caregivers (daycare stipend, cleaning/laundry stipend, meal stipend, enhanced health insurance options, continuing education, adoption/fertility support, etc.)
  • No ask, must tell” vacation policy, which is actually lived out visibly by senior leaders.
  • The ability to expense a “third space” for working — an external office, coworking space, or residential community space through the likes of Codi.
  • Caregiver leave (maternity, paternity, eldercare, etc.).
  • De-location stipend (supporting relocation away from a high cost-of-market location).
  • Four-day workweek, summer Fridays, no-meeting days, etc.
  • And many more!

Read on to learn more on GitLab’s remote hiring practices: https://about.gitlab.com/company/culture/all-remote/hiring

4. Compensation

Following their value of transparency, GitLab is straightforward about their compensation. Beyond the benefits offered above, GitLab pays local rates based on cost of market (also referred to as cost of labor). There is no cost of living input in their compensation philosophy.

GitLab compensation aims to be at a competitive rate for the candidates job, family, location, experience, and contract type.

GitLab even uses a compensation calculator to ensure transparent and consistent compensation.

5. Onboarding

Onboarding remotely should focus on three key dimensions: the organizational, the technical, and the social. Because osmosis learning does not occur in a remote environment, a strict onboarding schedule helps integrate new hires. GitLab creates an intensive hour-by-hour plan. Every new hire is assigned an onboarding issue with dozens of tasks, broken down into small, digestible chunks inclusive of timed challenges, coffee meetings, and new hire documents, all outlined in their onboarding issue template.

This approach ensures that new team members begin work immediately, meet and collaborate with fellow team members, and feel as if they are contributing.

Check out GitLab’s guide to remote onboarding: https://about.gitlab.com/company/culture/all-remote/onboarding/

6. Culture

Although the team is separated by distance, Eric shared that GitLab makes great efforts to cultivate connection through an annual in-person summit, frequent virtual coffee meet-ups, and organized coworking days.

The deep bonds, however, are best created through values of transparency and gratitude. Feedback is given often and candidly, and “thank yous” are publicly acknowledged through the #thankyou Slack channel. GitLab encourages team members to say sorry, assume positive intent, help others succeed, and leave your ego behind.

7. Productivity

Eric describes a “follow the sun” model — when one team member works on a project, they take responsibility for a chunk of it, and when complete, push it back out to the queue where another person in another time zone can pick it up. Essentially it is enabling continuous work, in real-time, all made possible by a deep foundation of asynchronous communication.

Eric’s personal method for extreme productivity is to break down all projects into bite-sized units and to disseminate smaller projects to the team before building back up to a larger outcome. Eric manages the Engineering Performance Indicators, which he has outlined in detail here: https://about.gitlab.com/handbook/engineering/performance-indicators/

Beyond Eric’s team, GitLab measures results, not hours, and encourages team members not to count hours as a measurement of success but rather their outcomes. And perhaps even more importantly, GitLab measures team level metrics rather than individual achievements to promote strong cultural bonds of coaching, teaching, and collaboration.

Also, here’s a blog about engineering productivity from a GitLab team member: https://about.gitlab.com/blog/2020/08/27/measuring-engineering-productivity-at-gitlab/

For more insights on remote work, visit the GitLab 5000-page handbook. Thanks for joining us, Eric!

To stay up to date on ICONIQ Growth events, follow us on LinkedIn and Twitter.

--

--