The Asynchronous Enterprise

A presentation at JSConf Hawaii in February 2020 in Honolulu, HI, USA by Brendan O'Leary

Slide 1

Slide 1

The Asynchronous Enterprise @olearycrew gitlab.com/brendan 1

Slide 2

Slide 2

Our Story @olearycrew gitlab.com/brendan 2

Slide 3

Slide 3

Ukraine Netherlands 2011 - 2014 Poland @olearycrew gitlab.com/brendan 3

Slide 4

Slide 4

2015 YC @olearycrew gitlab.com/brendan 4

Slide 5

Slide 5

First office @olearycrew gitlab.com/brendan 5

Slide 6

Slide 6

Last office @olearycrew gitlab.com/brendan 6

Slide 7

Slide 7

1200 team-members @olearycrew gitlab.com/brendan 7

Slide 8

Slide 8

65+ countries @olearycrew gitlab.com/brendan 8

Slide 9

Slide 9

0 offices @olearycrew gitlab.com/brendan 9

Slide 10

Slide 10

@olearycrew gitlab.com/brendan 10

Slide 11

Slide 11

GitLab team-members are everywhere @olearycrew gitlab.com/brendan 11

Slide 12

Slide 12

About me Brendan O’Leary Sr. Developer Evangelist GitLab @olearycrew @olearycrew gitlab.com/brendan 12

Slide 13

Slide 13

The (case for) Asynchronous Enterprise Situation ● ● Technology excellence is the new operational excellence To find top talent, companies must look outside traditional hubs Complication ● ● How do you scale an enterprise without massive overhead? …especially if you’re not Google Question ● How does GitLab make this work? Answer Trust @olearycrew gitlab.com/brendan 13

Slide 14

Slide 14

SITUATION @olearycrew gitlab.com/brendan 14

Slide 15

Slide 15

“Software is eating the world” — Marc Andreessen @olearycrew gitlab.com/brendan 15

Slide 16

Slide 16

Speeding Up Release Cycle Time is Critical Cycle time compression may be the most underestimated force in determining winners & losers in tech. — Marc Andreessen What you initially thought the goal was What the initial optimal solution was Optimal solution moved to @olearycrew gitlab.com/brendan 16

Slide 17

Slide 17

Percentage of postings that were tech-related Data: Indeed 22.7% San Jose-Sunnyvale-Santa Clara, CA 17.8% Huntsville, AL 15.4% Washington-Arlington-Alexandria, DC-VA-MD 13.0% Seattle-Tacoma-Bellevue, WA 12.3% San Francisco-Oakland-Hayward, CA @olearycrew gitlab.com/brendan 17

Slide 18

Slide 18

COMPLICATION @olearycrew gitlab.com/brendan 18

Slide 19

Slide 19

Remote is part of the solution ● Distributed workforce is part of the answer ● Just as important, and in some ways harder: ○ Working asynchronously ○ Across cultures and across time zones ○ Invite new perspectives ○ Inclusive of diverse ways of working ● Enables unprecedented, yet sustainable growth ● Even though it seems like GitLab has it figured out: it’s a journey, not the destination @olearycrew gitlab.com/brendan 19

Slide 20

Slide 20

All remote is the future of work, but it has its challenges. @olearycrew gitlab.com/brendan 20

Slide 21

Slide 21

The challenges 195 6000 38 Countries in the world — that many legal systems, each with its own nuance Linguistic cultures in the world — defining values can be challenging Local time zones in use — productivity challenges when working round the clock, literally @olearycrew gitlab.com/brendan 21

Slide 22

Slide 22

QUESTION @olearycrew gitlab.com/brendan 22

Slide 23

Slide 23

…from @ChloeCondon on Twitter @olearycrew gitlab.com/brendan 23

Slide 24

Slide 24

There’s as much to unlearn as there is to learn. — Basecamp Handbook @olearycrew gitlab.com/brendan 24

Slide 25

Slide 25

ANSWER @olearycrew gitlab.com/brendan 25

Slide 26

Slide 26

Everyone can contribute @olearycrew gitlab.com/brendan 26

Slide 27

Slide 27

Values Collaboration Results Efficiency Diversity & Inclusion Iteration Transparency @olearycrew gitlab.com/brendan 27

Slide 28

Slide 28

Iteration - quick small steps An iterative approach enables all-remote What you initially thought the goal was because each iteration is an opportunity to continually adjust scope in small steps What the initial optimal solution was Small steps require less coordination Reducing the need for coordination enables async workflows across time zones Optimal solution moved to @olearycrew gitlab.com/brendan 28

Slide 29

Slide 29

How we iterate MVC (Minimum Viable Change): Enables fast What you initially thought the goal was iteration What the initial optimal solution was DRI (Directly Responsible Individual): enables decision velocity Open merge requests: For async collaboration Optimal solution moved to In-quarter editable OKRs: for Customer focus @olearycrew gitlab.com/brendan 29

Slide 30

Slide 30

Transparency - Record by default We need to record everything because hyper-growth means we cannot afford to train people in meetings Recording by default enables self-paced learning and discovery By recording everything, the sender can send links and avoid wasting valuable time holding meetings or getting interrupted by the same questions The receiver can move faster, avoid waiting around, access the best version of the information, and get the message from the most reliable source @olearycrew gitlab.com/brendan 30

Slide 31

Slide 31

The receiver can move faster, avoid waiting around, access the best version of the information, and get the message from the most reliable source @olearycrew gitlab.com/brendan 31

Slide 32

Slide 32

…sounds familiar @olearycrew gitlab.com/brendan 32

Slide 33

Slide 33

Efficiency Write promises down: Agree in writing on measurable goals. Bias for Action: Decisions should be thoughtful, but delivering fast results requires the fearless acceptance of occasionally making mistakes. Responsibility over rigidity: Give people the responsibility to make a decision and hold them accountable for that instead of imposing rules and approval processes.. @olearycrew gitlab.com/brendan 33

Slide 34

Slide 34

Write down promises Handbook-first: Single source of truth Public by default: Recorded video calls, open meetings, open access to metrics and OKRs (investor update, Periscope, etc.), open issue tracker and comment section below blog posts and docs @olearycrew gitlab.com/brendan 34

Slide 35

Slide 35

Communication Guidelines ● Everything is in draft: At GitLab we rarely put draft on any content or proposals. Everything is always in draft and subject to change. ● Everything starts with a Merge Request: An MR is associated with a specific change that is proposed and transparent for everyone to review and openly discuss. ● Use Public Channels: If you use Slack and plan to message 3 or more people, we recommend a channel for customer/issue/project/problem/partnership.. ● Say thanks: Thank people that did a great job in our “Thanks” Slack channel. ● MECEFU terms: Mutually Exclusive Collectively Exhaustive Few words Ubiquitous-language. https://about.gitlab.com/handbook/communication/ @olearycrew gitlab.com/brendan 35

Slide 36

Slide 36

Trust @olearycrew gitlab.com/brendan 36

Slide 37

Slide 37

Build Trust and Community - Video calls are your friend Video calls are key for discussion and information sharing, much better than an audio call ● Daily team calls and group conversations ● Virtual coffee breaks and remote coworking ● AMAs (Ask Me Anything) with leaders and board members Time in person is very important, focused on relationship building instead of work ● Travel stipend ● Local meetups ● Contribute! Without putting you through company presentations @olearycrew gitlab.com/brendan 37

Slide 38

Slide 38

Spreading aloha on a GitLab company call @olearycrew gitlab.com/brendan 38

Slide 39

Slide 39

The upside for families and friends Time for kids, spouses, and partners Flexibility in how you allocate your time “If one spouse commutes longer than 45 minutes, that couple is 40% more likely to get divorced.” Urban Studies Academic Journal, Til Work Do Us Part Ability to move closer to loved ones Closer to home in case of family emergencies @olearycrew gitlab.com/brendan 39

Slide 40

Slide 40

Family and friends first, work second @olearycrew gitlab.com/brendan 40

Slide 41

Slide 41

@olearycrew gitlab.com/brendan 41

Slide 42

Slide 42

Thank you! Follow @GitLab, @olearycrew about.gitlab.com/company/ culture/all-remote/ Brendan O’Leary Sr. Developer Evangelist GitLab @olearycrew @olearycrew gitlab.com/brendan 42

Slide 43

Slide 43

@olearycrew gitlab.com/brendan 43