tacoms SREチームの「納得感」と「共有」を重視したチーム運用方法
株式会社tacomsのSREチームのMorixです!
私が入社してから4ヶ月ほど経ちました。僭越ながらテックリードとマネージャーを拝命しまして、チームビルディングやプロジェクト整理などをコツコツとやってきました。
そんな中、複数のメンバーから「自分のタスクに集中できる」「今までで一番気持ちよく働けてる」などの嬉しい声をいただきました!本当にうれしいです!
割とうまくチーム運用ができてるなと自分も感じてはいるので、今回はそのチーム運用方法をご紹介できればと思います。
もちろんtacomsのSREチームメンバー全員が優秀だからうまいこといってるってのも前提にあります!!!
どういう思想でチーム運用してるのか?
私は自分のチームのメンバーには必ず思ってほしいことがあります。
それは・・・「気持ちよく働けること」です!
じゃあ「気持ちよく働く」とは一体なんなんでしょうか?
私が考えた気持ちよく働ける環境とは次の状態であることです。
- 自分がやっていることに納得感があること
- 自分がやってることを他の人も理解してること
それぞれ説明していきましょう!
自分がやっていることに納得感があること
あなたは自身の意思決定を100%信じることはできますか?
あなたは他のだれかの意思決定を100%信じることはできますか?
私はどちらも信じられません。
じゃあどうやったら信じられるのか?それは集合知で選択した意思決定によるもののみです。
みんなで話し合って決めたことなら、大筋間違えないだろうという過去の経験則からこう思っています。
腹落ちしてないことがあれば話し合いの場でそれを聞き、納得するまで話し合います。
今のところはないですが、どうしても議論が平行線であればより多数の意見を尊重し「Disagree & Commit」の精神で進めます。
自分がやってることを他の人も理解してること
自分がやってることを自分しか知らないのって怖くないですか?
その状態で他の人にプルリクをレビューしてもらうのって怖くないですか?
私は怖いです。
じゃあどうやったら怖くないのか?それは自分がやってることをまめに報告・連絡・相談(ホウレンソウ)することです。
自分がやってることを他の人も理解してもらう状態を作っておき、最悪自分が突然いなくなっても問題ないようにしておくことが大事です。
この思想を実現するためのチームの運用方法
自分がやってることに納得感がありかつ他の人も理解してる状態にはどうやって持っていってるのか?
それはコミュニケーションの場を多くすることです。
私はコミュニケーションをすることで認識の同期が取れると思ってます。
イメージとしてはGitに近いです。mainブランチ=SREチームだと思ってください。各メンバーごとのブランチがあり、コミュニケーションのたびに同期がされます。
実際にtacomsのSREチームのタスクの進め方をご紹介します。
プロジェクトのタスクの場合
tacomsのSREのプロジェクトの粒度は次の記事にも書いてますが、ざっくりいうと「MySQLのバージョンを上げる」とか「新しいサービスのインフラを構築する」だとかそういう大きさのものです。
まずはこのプロジェクトの作成後に議論が始まります。
なぜこのプロジェクトが必要なのか?なぜこの優先度なのか?なにがゴールか?どうやるのか?などを話し合います。
その上でメンバーにアサインします。アジャイルでいうインセプションデッキみたいなものですね。
これでメンバー全員がこのプロジェクトの意義や進め方を理解できてる状態です。
次にプロジェクトのタスクの進め方で自明ではないものが出てきます。たとえば、ある機能を実装するには複数案が考えられる場合です。
このような場合はどの案を選択するかを意思決定するためにADR(Architecture Decision Record)を作成し、チーム全員でレビューし方針を決定します。
案が複数ない場合でも、複雑な仕組みの場合はADRを作成しこの方針で行くことをチーム全員に確認を取ります。
このように自明でないものを説明する機会を作ることによって、報告連絡相談をしつつ集合知で意思決定を行えてるので、みんながわかってる状態を作り出すことができています。
依頼やバックログタスクの場合
他チームからSREへの依頼や、小さいタスク(バックログ)も日々増えていきます。
このようなタスクはどう意思決定してるかというと、毎日のチームの朝会で確認してます。
朝会では各自の進捗共有を行います。ここでも他の人が知らないことをやってたら積極的に聞いていく姿勢が求められます。
進捗共有確認後、未アサインのタスクがないかを確認します。
タスクは以前記事にも書きましたがGitHub issueを使ってます。
こんな感じで未アサインのissueをフィルタリングで見ることができ、1件ずつ見ていきます。
各タスクの詳細をみんなで見て、タスクの必要性・優先度・やり方・だれがやるってのを話し合います。
ここでチーム全員の認識を揃えることができます。
この運用の注意点
この運用には何点か気をつけたほうがいいポイントがあります。
各自のホウレンソウスキルが求められる
この運用は各個人が自走ができ適切なホウレンソウもできる前提です。しかしみんながみんないつもこれができるかというと難しいことも多いです。
「そこはホウレンソウ必要ですよ」って促すのがリーダーやマネージャーの腕の見せ所だと思ってます!
よくわかってなさそうな人をフォローする
自分ではしっかり伝えたつもりでも相手には伝わってないことはよくあります。とはいえ傍から見たときにわかってるのかわかってないのかはわかりません。
コミュニケーションの場であまり発言してない人がいたらその人に発言を促し、理解度を確認するのがいいと思います。
あまりわかってなさそうならその人が腹落ちするようコミュニケーションを進めていきましょう!
コミュニケーションに時間をとられる
この運用のデメリットですが、コミュニケーションに時間を取られます。
Slackを使っての非同期コミュニケーションも行いますが、込み入った話は直接話したほうが早いのでオンラインMTGすることが多いです。そうすると意思決定にどうしても時間がかかります。
コミュニケーションをすっ飛ばし、なんとなくのレビューを通して、本番適用!みたいな流れも確かにできます。短期的な目線で見ればそれが一番速いです。
しかし長期的な目線で見るとどうでしょうか?
その機能のことを知ってるのは特定の個人に寄ってしまい、属人化が生まれます。また個人が決める方針は精度が低いので、どんどん歪みがでてきます。結果的に技術負債となりコストが高くつきます。
弊社tacomsもスタートアップなので短期的な速さが重要なのは理解してますが、SREの領域のものは気軽に変更が効かないものが多いため、長期的な目線を重視しています。
どんなコミュニケーションの場があるのか?
コミュニケーションの場を多くすることで認識の同期をしているという話をしました。
これまでの話でもいくつか例をあげましたか改めてどんなコミュニケーションの場を設けているのかを紹介します!
朝会
これはすでに説明してますが、毎日30分朝会をやっています。朝会では次のコンテンツがあります。
- 各自の進捗共有
- 未アサインタスクの確認
大抵は15分程度でおわり時間が余るので、なにか相談があればこの場で話します。
レビューMTG
ADRだったりなにかのドキュメントであったり、なにかしらチームにレビューをしてもらいたいときにレビューMTGを開催します。
これは各自の判断で行ったり、私から開催を依頼したりしてます。開催時間はだいたい30分くらいです。
1on1
私とメンバーとで1on1が毎週あります。この場でプロジェクトの状況をヒアリングしていってます。
ここでは私とメンバーとの認識が同期されるだけですが、SREチーム全体に共有したほうがよさそうな情報をキャッチアップし、共有をお願いすることがあります。
雑談会
毎週30分〜1時間程度、雑談会を設けてます。ここでは仕事とは関係のない話が主で、本当にただの雑談です!
しかし気さくに話し合える仲だと情報共有のハードルも下がると思うので、これも工夫ではあります!
Gather
弊社tacomsはフルリモートワークが可能な環境です。フルリモートだと気軽なコミュニケーションのしづらさはどうしてもあります。
次の記事でもご紹介しているように、我々はGatherを使用して会話がしやすい状況を作ってます!
相手が会話可能な状態かを可視化することができるので、突発に話しかけたいときのハードルを下げてくれるいいツールです!
まとめ
tacoms SREチームは気持ちよく働くために次の2点の状態を作り出しています。
- 自分がやっていることに納得感があること
- 自分がやってることを他の人も理解してること
この状況を作るために集合知の意思決定やこまめなホウレンソウを行います。
そのためコミュニケーションを多くしています。トレードオフとして時間がかかることがありますが、長期的な視点で最もよい方法はこの方法だと判断しています。
Discussion