SREチームとオンボーディングのちょっといい話
これは CAMPFIRE Advent Calendar 2020 の18日目の記事です。
こんにちは。SREチームの加我です。12日ぶりですね。
今回はSREチームのオンボーディングについて話していきます。
以前とあるテックカンファレンスにて「コロナ禍で入社後即リモートってオンボーディングが難しいよね」みたいな話をしたことがあります。
一方、同じ状況下でも弊社のSREチームは比較的上手くいってると感じており、それについて自分なりの考察をしていこうと思います。
※オンボーディングとは?については触れません。ご了承下さい。
スマホ向けゲームとチュートリアル
↑スマホゲームをする私
みなさんゲームは好きですか?私は大好きです。
子供の頃の夢は京都にある某大手ゲーム会社の開発者になる事でした。
昔はPC向けのネットゲームにドハマリしていたのですが、紆余曲折あってスマホ向けの比較的ライトなゲームにシフトしました。
最近のスマホゲームはチュートリアルがすごいしっかりしていて、
「まずはここをタップしてみましょう」
「バトルが始まるのでこのスキルをタップしてみましょう」
「では集めたトレジャーでガチャを回してみましょう」
みたいな感じで、スタート時に迷わないための工夫が凝らされています。
サービスが成長すればするほどコンテンツは増えますが、新規参入者がちゃんとついていけるかどうかは運営チームの腕の見せ所です。
最近新しく始めたスマホゲームのチュートリアルを進めているうちに「あれ、これってオンボーディングなのでは?」と気づいてしまいました。
SREチームのオンボーディングの流れ
ということでSREチームのオンボーディングの話に戻ります。
一般的に開発チームのオンボーディングといえば下記のようなものが挙げられるのではないでしょうか。
・プロダクト概要 / 全体設計方針の説明
・各種ツール(アカウント)の説明
・リポジトリと開発フローの説明
・インフラ構成や開発環境の説明
・実際にコードを本番環境にデプロイ
・会議体についての説明
オンボーディングにある程度の期間を設けるとはいえ、これらを一気に覚えろというのは無理がありますし、一気に教えるというのも同じく無理があります。大事なことはstep by step、無理なく前に進む事です。
ということで、SREチームでは入社直後はこのような進め方をしています。
・ざっくりとサービスとインフラの全体像を理解する
・Terraformで自分のIAMユーザーを作成する
・文言変更といった軽微な小さめのタスクを行う
・Terraformのコード修正を行う
・バックログから自分がやれそうな課題を探して進める
これをゲームで例えるならこんな感じでしょうか。
・ゲームの世界観とシステムを理解する
・自分がプレイするキャラを作成する
・簡単なクエストに挑戦する
・序盤のボスに挑戦する
・参加できそうなクエストを見つけて挑戦する
どうでしょうか。あまり違和感がないですね。
間をすっ飛ばして無理して進んでいる感じもありません。
個人的に良いなと思ったのはTerraformで自分のIAMユーザーを作成するというタスクで、「Terraformのコードによるインフラの理解」「利用しているTerraform Moduleの理解」「PRレビューによる開発フローの理解」「CI / デプロイフローの理解」を内包しています。しかも無理なく進められる程度にです。会社によってはIAMユーザーを渡されてじゃあよろしくみたいな事もあったりしますが、これは安全かつ色々と理解が捗るまさにstep by stepな良タスクでした。
入社直後というのはモチベーションが高く、結果を出したい気持ちが強いかと思います。しかし、だからこそ焦らず一歩ずつ前に進む事の大切さというものを実感しています。幸いチームの雰囲気も「焦らなくて大丈夫」「そこは後で覚えてくれれば大丈夫」という暖かいものなので、安心して目の前のタスクに集中できる空気感もありがたいです。
最近は入社1ヶ月目・2ヶ月目・3ヶ月目の期待値みたいなものを雑に書いたりしています。新しく入社する人が不安にならなくてもいいような仕組みの整備も少しずつ考えていますのでご期待下さい。
コミュニケーション
オンライン時代のオンボーディングで悩ましいのがコミュニケーションです。テキストコミュニケーションが得意な人がいれば当然そうじゃない人もいるため、文字・音声・ビデオ会議等のコミュニケーション手段を上手く使い分ける技術というのが必要になりました。
テキストというのは思った以上に冷たいもので、文字で伝えるのと言葉で伝えるのとでは印象に大きな差が出てしまいます。この辺を意識して上手くコミュニケーションが出来る人を私は「インターネットが上手い人」と例えています。弊社はインターネットが上手い人が多い印象なのであまり苦労していません。もしも苦労している方がいましたら、GitLab社が公開しているAll-Remoteというガイドブックにリモートワークの秘訣が惜しむこと無く公開されているので、そういうのを参考にするのも良さそうです。
コミュニケーションツールですが、弊社はSlackを使っています。
これ自体は全く珍しい事ではないのですが、SREチームに関しては分報チャンネルを使うことを推奨しています。(SREチーム以外も使っています)
↑社内にはlog-派とtimes_派がいます
分報というのは日報よりもより細かい単位で「今やっていること」や「今困っていること」を共有するための個人用Slackチャンネルのようなものです。そこで雑談などのコミュニケーションを取ったり、困っている事に対してアドバイスを貰ったりしています。
リモートワークで同僚や他のチームとの心理的な距離が遠くなり、誰が何をやっていて何を考えているのかがわかりにくくなりました。そこを補う上で分報チャンネルはいい感じにワークしているように思えます。
以前知人が「リモートワークが上手い人はタスクのチケットに細かな進捗とか詰まったところなどの過程を細かく書いていくから、周りから見ていて安心感がある」と ポッドキャスト で語っており、それを聴いてから自分も意識して発言するよう心がけています。
SREチームのコミュニケーションの場としてはデイリースタンドアップと夕会と定例があります。結構厚めにコミュニケーションを取って貰っており、悩みを翌日に持ち越す事がないので気持ちよく仕事が出来てヨシ!です。
・デイリースタンドアップ(毎朝)
昨日やったこと、今日やること、困っていることを共有する。
・夕会(毎夕)
基本雑談ベース。翌日に悩みを持ち越さないための相談の場。
・定例(週1)
その週の進捗確認。積みタスクやDatadogのメトリクスを確認する。
ドキュメント
入社直後のオンボーディングにて「ここにドキュメントが整理されているので見ておいてね」で完結するのが理想ではありますが、まだまだ出来ていないのが現実です。そしてSREチームは情報の網羅性と同じくらい「そのドキュメントを見て課題や背景をちゃんと理解できるか」という点を重視しています。
例えば先日のDatadog導入の件であれば「導入した」という事実よりも「なぜ導入する必要があったのか」が明確になっていた方がスムーズに次のアクションへ繋げられるはずです。別のアドベントカレンダーで書いてくれた同僚氏のSession Manager導入についても社内のドキュメントには「何が課題で私たちは何をしなければならないのか」を事細かに書いてくれていました。
ちなみに弊社では Notion というサービスでドキュメント管理を行っています。私は業務で初めて使ったのですが多機能で使いやすく、今では個人でも使うくらいお気に入りのサービスになりました。ドキュメント管理ツールは使いやすい(書きやすい・探しやすい)というのが大正義であり、組織にとって大きなメリットです。
一番良くないのはドキュメントが複数箇所に散らばっている、しかも更新されていない、そして検索しにくいという三重苦です。情報の一元化という点からもNotionは非常に優れています。
↑散らばったドキュメントの森を進む私
これまでの出社ベースのコミュニケーションだと不明点は近くにいる同僚に聞けばすぐ解決できたかもしれません。しかしリモートワークにシフトしてからはドキュメントでちゃんと残す・伝えるという必要性が高まっている事を痛感しています。(以前から重要だったけどオフラインのコミュニケーションに甘えていたのでは?という説もあります)
まとめ
弊社SREチームがどのようにオンボーディングを進めていて、どのような点で工夫しているのかを緩く書いてみました。オンラインの時代だからこそみんなで少しずつ・着実に前へ進んでいきたいと思う所存です。
余談ですが、スマホ向けゲームではガチャという仕組みで強いキャラを入手することができます。しかしレアリティが高く強いキャラでも初期状態で強敵に勝てるかと言えば当然Noです。ちゃんとレベリング等の育成をし、装備やパーティーの相性を悩み抜いた末にやっと強敵に勝つことが出来るのです。
つまり入社してきた人が手放しで勝手に活躍してくれるという都合の良い事は無いので、これからも良い感じのオンボーディングを続けていきたいと思います。2021年もやっていくぞ!