GitHub に学ぶエンジニアのリモートワークでのコミュニケーション

この記事は「ウィルゲート Advent Calendar 2024」の15日目の記事です。

adventar.org

こんにちは、プロダクト事業部 開発グループの TamaG (@TAMAGOKAKE_G_)です。

今日は先日、5%ルール *1を利用して参加してきた、

GitHub Universe Recap 東京 にて話されたセッションの一つ、 「GitHubのエンジニアが徹底する社内コミュニケーション8つの原則」についてご紹介したいと思います!

github.registration.goldcast.io

まず GitHub とは

ご存知の方も多いと思いますが、GitHub は今や世界最大のソフトウェア開発プラットフォームです。

2008年に創業され、創業当初より国や文化、習慣が異なるメンバーとも協力しながら、

リモートワークを活用して業務を行うグローバル企業の先駆けとなっています。

そんな GitHub が16年にわたって培ってきたリモートワークでのコミュニケーションのノウハウをご紹介させていただきます!

8つの原則

Be Asynchronous First (非同期ファースト)

非同期ファーストとは、同時に反応や作業をする必要がないようにする方針のことです。GitHub では次のような取り組みが行われています。

  • チャットやメールで即時の返答を求めず、相手に負担をかけない。

  • 会議も可能であれば非同期で行う方法(テキストコミュニケーションなど)を検討する。

これらを徹底することで、重要な意思決定に十分な時間を取ることができ

結果的に生産性が最効率化されます。

タイムゾーンの違う多国籍なメンバーをアサインすることができるので、

世界中の最強のエンジニアを集めて最強のチームを作ることができるとも話されてました。夢がありますね!

Write things down (記録を残す)

GitHubでは、意思決定の内容を PR(プルリクエスト)や Issue に記録します。

これにより次のようなメリットがあります。

  • 誰が何を決めたのか、過程と結果を可視化できる。

  • チーム内での作業の重複を防げる。

  • 意思決定に至る議論も記録されるため、後から参照可能。

この仕組みは、プロジェクト全体の透明性を高めるのに役立っています。

この項目の説明においてセッションの中で印象的だったのは

“If it doesn't have a URL, it didn't happen“(URLがないのは存在しないと同じ)という言葉です。

Slack などのチャットツールではダメで、「記録を残す」は「URLが存在する」と同義だとおっしゃっておりました。

過程と結果の可視化という点では、口頭でのやり取りがあった場合には些細なことであっても何かしらに残すのは徹底していきたいと思いました。

Make work visible and overcommunicate (作業・成果を可視化し、積極的に発信する)

可視化することで、透明性を高めることができ

積極的に発信することで、作業の重複などのムダを省くことができます。

作業を可視化するのは大事ですよね。私のチームでも作業内容は積極的に Slack の分報で発信することを心がけています。

Prefer GitHub tools and workflows (GitHub のツールとワークフローを優先する)

GitHubのツールやワークフローを使って、作業を公開し見える化するのが理想ですが、それが適切な場合に限ります。 使わない場合でも、チャットや会議での決定をしっかり記録して残しましょう。

これはドッグフィーディング的なお話ですね。

自社の開発しているサービスを使うことで使用感を確かめるのは言うまでもなく大事だと思います!

Embrace collaboration (コラボレーションを推進する)

ソフトウェア開発はチームで行うスポーツのようなものです。

ただドキュメントを書くのではなく自分から積極的にフィールドバックを求めましょう!

早く頻繁なフィードバックは、より良い意思決定を生み出します。

私個人的にフィードバックを受けるのは少し苦手意識がありますが、よりよいプロダクトの開発をするためにも 自分から積極的にフィードバック求めていきたいですね

Foster a culture that values documentation maintenance(ドキュメントのメンテナンスを重視する文化を作る)

更新されていないドキュメントは非効率を生みます。

ドキュメントのメンテナンスは、良いドキュメントを作成することと同じくらい重視する必要があります。 チームが再編成されたとき、またはコードやプロセスが変更されたときは、関連するドキュメントとその所有権メタデータを忘れずに更新してください。

※ ドキュメント更新にかかるコストが得るメリットより多い場合は、ドキュメントの削除や簡素化を検討する必要があります。ドキュメントのメンテナンスは負担であるべきではありません

ドキュメントの更新は簡単なものであってもついつい後回しにしてしまいがちですが、後々キャッチアップにかかるコストを考えるとメリットが大きい場合が多い気がします。 積極的に更新するような文化を作って行きたいですね。

Communicate openly, honestly, and authentically(オープンに、正直に、誠実に意思を 伝える)

透明性と直接性を重視したコミュニケーションを心掛けます。 自分の言いたいことを敬意を持って伝え、相手の意図を明確にする努力をしてください。

また、プロセスやツールの変更を共有する際は、予想される質問を先回りしてFAQを添付するなど、受け手が情報を理解しやすい工夫を行います。「まだわかりません」や「現時点では回答できません」といった正直な表現が、曖昧な説明よりも信頼を生みます。

インクルーシブな言葉を使う

インクルーシブは「包括的・すべてを包み込む」といった意味があります。 文脈のわからない略語を避けたり、タイムゾーンを意識して日付を書いたりして

誰が見てもわかるような言葉を使うように意識しましょう。

✨絵文字を使う✨

リモート環境では、テキストだけでは感情を伝えるのが難しいことがあります。そこでGitHubでは絵文字を積極的に活用しています。

  • フィードバックに対する簡単な反応に絵文字を使う。

  • 議論をポジティブに進めるために活用する。

  • 柔らかいトーンでコミュニケーションを取りやすくする。

小さな工夫ですが、良好なチーム関係の構築に貢献します。

😁👍

これ大事なところですよね。絵文字一つでだいぶ表現が柔らかくなります🥳 弊社ウィルゲートでは毎日新しい絵文字が生み出されるくらいには絵文字が多用されているので、コミュニケーションが取りやすいです!

Remember practicality beats purity(実用性は完璧さに勝る)

これらはガイドラインであり、ルールではないことを忘れないでください。プロセスが結果を左右するはずです。メカニズムよりも意図を重視し、実用主義を奨励してください。

まとめ

いかがでしたでしょうか! 個人的には意思決定の過程が後からみてわからずに困ったり、運用保守のドキュメントが古く作業が滞ってしまった経験が何度もあるので 以下の2つをまずは取り入れていきたいと思いました!

  • Write things down (記録を残す)
  • Foster a culture that values documentation maintenance(ドキュメントのメンテナンスを重視する文化を作る)

皆さんのチームにも取り入れられそうなものがあれば、ぜひ試してみてください!

参考資料

https://lowply.github.io/talk/2024-11-27/how-github-engineering-communicates.pdf

how-engineering-communicates/how-github-engineering-communicates.md at main · github/how-engineering-communicates · GitHub

「ウィルゲート Advent Calendar 2024(https://adventar.org/calendars/10272)」、翌日は、菅原さんによる「営業職に苦手意識を持ってるあなたに営業が超苦手だった僕から伝えたいコツ」です! お楽しみに!

*1:月の労働時間の5%までを自己研究に充てることができる制度のこと