リモートワークのいま学びたい、GitLab Handbook非同期コミュニケーションのススメ

https://qiita.com/e99h2121/items/ea5822922d83d00ebc4a

というものを以前にまとめたが、上記における、「Asynchronous work（非同期ワーク）」の章の詳細がリモートワークのコツに参考になるメソッドの塊だったので、その詳細。
主題はGitLab社の https://about.gitlab.com/handbook/ である。

## まず結論

GitLabは非同期コミュニケーションを徹底している。
「人は自分の生活に合わせて仕事を組み立てるものであり、その逆ではない。これは特に新米パパママにとっても素晴らしいことだが、自分の幸せと生産性を最大化するために日々を構成できることは、**誰にとってもメリットがある。**これは、すべてが文書化されているからこそ可能なのである」という。

> 会社全体が、どのチームメンバーもいつでもどんな理由でもオフラインになる可能性があることを理解して運営されていれば、問い合わせに対して即座に返信することを期待することはない。

一方で非同期を絶対視しているわけでもなく例外も設けている。
「チームメンバーとのやりとりが3回往復するようなら、同期ビデオ通話に移る。」などとしている。
そして「その結果を記録する」のである。そうして非同期を徹底しているのである。

> - 親密な関係を築き、今後の非同期の会話のきっかけにするのに有効だから。

「非同期を最重要視するために例外的に同期する」という徹底ぶりなのである。やはり凄い。
以下その概要です。


## 概要

https://about.gitlab.com/company/culture/all-remote/asynchronous/

＊特に注釈がない限り「非同期」とは「非同期コミュニケーション」あるいは「非同期でお仕事をすること(asynchronous work)」の意。また翻訳はおよそDeepL翻訳を用いたうえでリライトしています。

### 非同期とは ([What is asynchronous work?](https://about.gitlab.com/company/culture/all-remote/asynchronous/#what-is-asynchronous-work))
> すべてのリモート環境は、チームメンバーが最も充実した場所で生活し、仕事をすることを可能にする。非同期ワークフローをマスターすることで、効率と機能不全を減らすことができる。特に**さまざまなフロアやオフィスにメンバーがいる企業でも**、非同期での運用が必要になってきている。あるいは例えば、**育児と仕事を両立させる**など、より多くの人を受け入れることができる。また、非同期の場合、**タイムゾーンの偏りがなくなるため、グローバルなチームメンバーも対等な立場で仕事ができる** ようになる。

### 非同期コミュニケーションとは ([What is asynchronous communication?](https://about.gitlab.com/company/culture/all-remote/asynchronous/#what-is-asynchronous-communication))
> 一般的にスケジュールやカレンダーは、2人以上の関係者が同じ時間帯に同じ場所（物理的または仮想的）にいることを前提にしている。

> しかし非同期コミュニケーションによって、**関係者が物理的にも仮想的にも同じ場所にいなくてもプロジェクトを進めることができるようになった。非同期コミュニケーションは、人々がどのように（いつ）働き、どのようにコミュニケーションするかを最適化できる。**

### [非同期のメリット](https://about.gitlab.com/company/culture/all-remote/asynchronous/#benefits-of-asynchronous-working)
- 生産性を向上する。
- 自律性、エンパワーメント、そして主体性をもたらす。
- より包括的な仕事になる。
- **ストレスを軽減し、心の健康をサポートする。**
- **思慮深く、意図的である。**
- 知識のギャップを埋める。

#### 「ストレスを軽減し、心の健康をサポートする」とは

- 非同期で仕事をすることの知られざる利点は、緊張感の緩和である。**会社全体が、どのチームメンバーもいつでもどんな理由でもオフラインになる可能性があることを理解して運営されていれば、問い合わせに対して即座に返信することを期待することはない。**
- このため、精神的な健康が優先される環境が生まれ、チームメンバーはその「境界線」を設定し、常に通知や判断の攻撃から解放されるのである。

#### 「非同期の仕事は、思慮深く、意図的である」とは

(以下Tweetが引用されている。)

https://twitter.com/shl/status/1222545212477599751?t=7CVfMqC5Wxeen_Llz4-rkA&s=19

- 同期型コミュニケーションで問題となるのは、締め切り意識である。一日の仕事の開始時間と終了時間が決まっていると、その間に多くのことを伝えなければならないというプレッシャーが生じ、しばしば処理時間が犠牲になる。
- 「非同期」においてすべてのコミュニケーションは思慮深いものである。急を要することはないため、コメントは心を込めてなされる。
- 誰もが前もって計画を立てることができる。また、**誰もが1時間、1日、1週間と姿を消しても、会社の足かせになっているとは感じない**ということである。
- **人は自分の生活に合わせて仕事を組み立てるものであり、その逆ではない。これは特に新米パパママにとっても素晴らしいことだが、自分の幸せと生産性を最大化するために日々を構成できることは、誰にとってもメリットがある。**
- これは、**すべてが文書化されているからこそ可能なのである。** また、全員が異なるテキストベースの媒体で会話するため、好奇心があれば何でも簡単に覗き見ることができる（必要であれば引き継ぐこともできる）。また、会議もなく、数字もすべて公開されているので、FOMO(“Fear Of Missing Out”「見逃すことに対する恐怖」)もない。
- **私たちのソフトウェアは、十分にテストされ、驚くほど安定している。** なぜなら、私たちは「デプロイ」するために同時にオンラインになることがないからである。また毎週、技術的負債を減らしている。
- 全体として、とてもストレスの少ない環境である。私たちの多くはSlackをインストールしてさえいない。それでも、これまでで最高のソフトウェアを出荷し、これまで以上のスピードで成長している。


### [非同期コミュニケーションの限界と課題](https://about.gitlab.com/company/culture/all-remote/asynchronous/#limitations-and-challenges-of-asynchronous-communications)

(この章、一方で限界についても書いてあるのが更にわかりやすい。**もちろん非同期にも限界はありプロジェクトの一部を同期で処理したほうがよい場合もある。**)


- 効率性の評価
- 顧客と接するとき
- 時間帯
- 採用候補者との面談
- 同期ではなく非同期を使うべき場合


#### 「効率性の評価」とは
- 原則として、**チームメンバーとのやりとりが3回往復するようなら、同期ビデオ通話に移る (そして結果を記録する)。**

#### 「顧客と接するとき」とは
- 非同期を許容するときもある。例えば、顧客と接する仕事では、特定の時間帯をカバーすることが要求されることがある。このような要求には **単一障害点がないようにすることで、非同期である組織内のチームが自己組織化し、誰がある時間帯をカバーするかを決定する**。

#### 同期ではなく非同期を使うべき場合
- **GitLab は「非同期」に偏っているが、最大限の効率を得るためには「同期」と「非同期」のバランスを戦略的にとることが有効である。「非同期」で仕事をすること自体が目的ではない。むしろ、可能な限り思いやりをもって議論やプロジェクトを「非同期」で進めることで、同期のための余力がより広く確保される。**
- **「非同期」ができるならば、適切なタイミングで同期的な議論を行うことはむしろ簡単である。「非同期」はGitLabにとって非常に強力だが、絶対的なものではない。特に、私たちの「Values」を犠牲にしている場合はそうなる。** 
- GitLabのValuesとは :https://about.gitlab.com/handbook/values/

(上記、会社のValuesがどんなときも最上位なのですね。)

### どのように非同期を実践するか

- イテレーションを重視する
- **完璧を目指すのではなく、前進を目指す**
- **漸進的な改善を賞賛する**
- 正確な文書化を行う
- 適切なツールを使用する
- 時間帯の偏りをなくす

#### 「イテレーションを重視する」とは

- 私たちが非同期を得意とするのには理由がある。**それは物事を小さくしていくからである。** イテレーションを通じて、たくさんの人と調整する必要がない。イテレーションによって小さなステップを踏むことで、より速く出荷することができる。これが可能なのは、非同期だけである。- GitLab CEO兼共同創業者 Sid Sijbrandij

### 非同期コミュニケーションを助けるツール

(これらが、我々も使っているごく普通のツールであることが更に感動ポイントである。リモートワークはツールの問題を超えて、チーム力なのだなと。)

- Google Drive
- Slack
- Loom
- GitLab
- Tettra
- Slab
- Asana
- Monday.com
- Twist


## 非同期実践例

(どれも運用が難しいことではない。見習いたい。)

- 週次アナウンスメント
    - エンジニアリング・マネジメントは、各チームメンバーの都合の良い時間に、毎週お知らせのビデオとスライドを作成し、非同期で閲覧できるようにしている。
- 新メンバー紹介
    - 新メンバーは2分間の自己紹介ビデオを作成し、ミーティングやSlackチャンネルで共有することができる。
- バックログリファインメント
    - チームは GitLab Issues（または Epic、より適切な場合はマージリクエスト）を通じて、特定のリクエストを適切な関係者にタグ付けして共同作業する。**情報量が1,000字を超える場合** は、ハイライトセクションがトップに来るようにする。
- キャパシティプランニング
    - チームは、共有のGoogle Sheetを毎月更新している。
- 同期会議に出席できないチームメンバー
    - **会議主催者は、送信前に各会議の招待にGoogle Docのアジェンダを貼付する。会議に招待されたチームメンバーは、会議のアジェンダと質問を非同期で更新するか、共有する情報のビデオを事前に録画しておく（アジェンダにビデオをリンクさせる）。**
- 四半期ごとのチームの結果
    - コーポレートマーケティング (#corp-mktg) は、チームメンバーが結果を非同期で追加できるように Google ドキュメントまたはスライドを作成し、その結果のお祝いビデオを GitLab Unfiltered で共有する (同期に参加できた人たちも一緒)。
- **その他多数...**
    - Asynchronous engineering standup meetings
    - Async communication with those who are not GitLab team members
    - Alternate times for recurring scheduled meetings
    - Blocked calendars and non-linear workdays
    - Missed deliverable retrospective
    - Weekly team kickoff/standup sessions
    - Preparing for meetings or interviews

(CEOのMeetingも定期的。)
https://about.gitlab.com/handbook/ceo/#daily-meetings


## GitLabのアンケートデータ

> GitLabチームメンバーは、2020-09-02に公開された#company-fyi Slackチャンネルで投票を行い、2020-10-02まで投票を受け付けた。チームメンバーのおよそ20%がこの投票に回答し、その回答と回答比率は以下の通り。
> チームメンバーは、次のように尋ねられました。仕事に関する（インフォーマルなコミュニケーションではない）議論において、**「なぜ非同期ではなく同期を選ぶのでしょうか？」**

### その回答

- GitLabのサブバリュー「Bias towards asynchronous communication（非同期コミュニケーションへの偏り）」を知らなかった - 1%.
- 書面でのコミュニケーションより口頭でのコミュニケーションが好き - 3%.
- 対象が機密事項だと思う - 10%.
- 自分のチームの他の誰かが同期会議に参加し、その収穫を文書化することができる - 1%.
- 非同期通信で相手の注意を引くのは難しいと思う - 12%.
- **親密な関係を築き、今後の非同期のきっかけにするのに有効 - 38%.**
- 自分の職務で非同期を利用するためのツール、サポート、トレーニングがあるとは思えない - 0%.
- 非同期通信を成功させるためには、会議のスケジュールや進行よりも多くの時間がかかる - 6%.
- 非同期で操作すると、ブレインストーミングや情報収集がしづらいと感じる - 19%.
- その他 - 10%.

### 概要
- 回答は解釈の余地があるが、このデータは、GitLabのリーダーがチームのダイナミクスをよりよく理解し、解決策を反復するために利用できる重要な洞察を示している。
- 非同期コミュニケーションに関連するサブバリューを知らないという回答はわずか1％でしたが、リーダーはすべてのサブバリューが認知され、よく理解されていると思い込んではいけない。1:1ミーティングや日々のワークフローでバリューを強化し、議論するべき。
- GitLabはデフォルトで「公開」されている。
- 非同期の手段で相手の注意を引くのが難しい場合は、同期のエンゲージメントを活用して期待とのギャップの可能性について話し合うことを検討すべき。GitLabはどこで作業を行うかについて明確にしているが、チームメンバーによってはGitLabのToDoリストやScoped Labelsだけで作業を行い、優先順位の付け方もさまざまである。**家族や友人を優先するために対応が遅れることはあるので、積極的な意思を持つようにしよう。**
- 回答者の大多数は、親密な関係を築き、将来の非同期会話を促進するために、同期的な場を活用していると回答している。**ミーティングをするのは簡単だからではなく、それが将来の効率と結束を生み出すからであり、それはポジティブな結果である。**
- GitLabのエキスパートたちは、同期と非同期をいつ使うかについて以下のようにアドバイスしている。
    - "インシデントや納期など緊急の案件が発生したときに、他の人を助けるために同期会議を利用しています。"
    - "主にトラブルシューティングのために、非同期の説明や前後関係よりも、よりライブな対話の方がすべての関係者にとって特定の問題を解決するのが早い場合に同期を使用しています。"
    - "非同期の選択肢を使い果たしたときや、非同期では結果に結びつかないときに同期を利用しています。"
    - "私は、率直に言って非同期では難しいようなクリエイティブなアイデアや提案をチームと生み出すために、同期ミーティングを利用しています。"
    - "タグ付けされたチームメンバーからのGitLabイシュースレッドの返信を**数時間かけてSlackで100回返信したり、10日間待つよりも、Zoomで10分間の方が効率的**です。"
    - "仕事関係のフォーマルなコミュでは、非同期がいい（形式が決まっているときは非同期を選ぶ）。Sync は、人間関係の構築（コーヒーチャット、グループソーシャルチャット）に最適です。"
    - "チームメンバーが初対面の場合、最初の人間的なつながりを構築するために同期を楽しんでいます（コーヒー／ソーシャル／チームコールなど）"
    - "非常に時間的制約のあるものは、関係者全員での同期ミーティングを選び、より迅速な議論を行います。"
    - "私は非同期コミュニケーションでリードし、非同期が失敗したら同期の会話にフォールバックする傾向があります。非同期コミュニケーションで失敗するのは、時間的制約のあるトピックに効率的に対処できないとき、あるいは人々が矛盾していたり、互いに話し合っているのを感じるときだと考えています。このような場合、私は同期で呼び出して集中し、会話を強制的に行わせ、会話のブロックが実質的に解除されたら非同期に戻します"。
    - "非同期は、特にコードと連動した細かい技術的な会話にとても効果的です。何かを構想するのに何度も読み返すことがあるのですが、非同期はこれに最適です。また、非同期はコードレビューにも最適です。全体像の議論には、非同期とライブ/ビデオコールの組み合わせが有効です。ただし、透明性を保つために、結果は関連する GitLAb issue で文書化されるべきです。Googleドキュメントを使うこともありますが、GitLabの方が記録として優れていますし、検索やコメントもしやすいです。"
    - "**私はほとんどの時間、非同期にしておくことを好みます** が、プロダクトデザイナーとして、同期が必要であることも認識しています。


## まとめ

うなずきたくなることばかりなのだが、それらすべてを言語化して明示し、皆で守ろうと試みている点が非常に素敵だと思った。

特に「同期を用いる」例外の部分。それは「非同期を重視するために同期する」ということだった。
> - 親密な関係を築き、今後の非同期会話のきっかけにするのに有効だから。

> - 人は自分の生活に合わせて仕事を組み立てるものであり、その逆ではない。これは特に新米パパママにとっても素晴らしいことだが、自分の幸せと生産性を最大化するために日々を構成できることは、誰にとってもメリットがある。
- これは、**すべてが文書化されているからこそ可能なのである。**
- GitLab は「非同期」に偏っているが、最大限の効率を得るためには「同期」と「非同期」のバランスを戦略的にとることが有効である。「非同期」で仕事をすること自体が目的ではない。むしろ、可能な限り思いやりをもって議論やプロジェクトを「非同期」で進めることで、同期のための余力がより広く確保される。
- チームメンバーとのやりとりが3回往復したら、同期ビデオ通話に移る (そして結果を記録する)。
- 高度な非同期ワークが可能であれば、適切なタイミングで同期的な議論を行うことも可能である。「非同期」はGitLabにとって非常に強力だが、絶対的なものではない。特に、私たちのValuesを犠牲にしている場合はそうなる。


### その他 動画
<iframe width="818" height="460" src="https://www.youtube.com/embed/cy6WGuzArgY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<iframe width="818" height="460" src="https://www.youtube.com/embed/IU2nTj6NSlQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<iframe width="818" height="460" src="https://www.youtube.com/embed/_okcPC9YucA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<iframe width="818" height="460" src="https://www.youtube.com/embed/amiDcpIXIQ8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


以上
参考になればさいわいです。