SRE チームをよりサステナブルにするために Vision/Mission/Values を作った話

小中高 SRE チームで Engineering Manager をやっている @yuya-takeyama です。 Quipper にはスタディサプリ ENGLISH の SRE である ENGLISH SRE チームと合わせて 2 つの SRE チームがありますが、この記事では自分たち小中高 SRE チームについての話です。

少し前の話になるんですが、小中高 SRE チームの Vision, Mission, Values というものをチームで作りました。

Quipper には会社としての Vision, Mission そして Quipper Identities というものがあります。 これらは策定から数年以上経っていますが、Quipper の社員にとって今も変わらず大事なものです。

が、SRE チームにとっては教育や学習に対して直接的に貢献しているとは言いづらい状況です。 そこで、自分たちのチームにとってより直接的にイメージしやすい作るべき未来として、そのために成すべきこととして、自分たちの Vision, Mission, Values を作ってみよう、ということになりました。

まずは早速、以下に紹介していきます。

小中高 SRE チームの Vision, Mission, Values

Vision: 最高の学習プロダクトを作り続けられる開発組織の実現

Vision とはまだそこにない、目指すべき・作り出すべき未来です。

この中で、チームにとっての直接的な顧客を「開発組織」としてみています。 開発組織というのは、一番わかりやすい説明でいうと、スタディサプリ小中高講座を作っている「小中高プロダクト開発部」という部署に属する人々ということになります。 Developer や Product Manager もそうですし、自分たち SRE もこの部署に属しています。

ですが、より広い意味でいうと、プロダクト開発にはより多様な人々が日々関わっています。 データエンジニア、データサイエンティスト、デザイナー、そしてスタディサプリにおいてはコンテンツ制作を行う方々も、プロダクトにとって重要な役割を果たしています。

局所最適に陥ることなく自分たちの Mission を実行していく上では、多様な人々が様々な形でプロダクト開発に関わっていることをよく理解する必要があるでしょう。

Mission: 自己完結チームがプロダクトを素早く安全に届け続けるためのプラットフォームと文化を作る

Mission とは、Vision の実現のために日々実行すべきことです。

この中で特に重要なキーワードは「自己完結チーム」です。 これはこの Vision, Mission, Values を策定するより以前、私が Engineering Manager になった頃からずっと言い続けていたテーマでした。

一言で言えば、開発チームと SRE チームは依頼したりされたりという関係ではない、ということです。

例えば、新規サービスの開発のために新しいデータベースが必要だとして、開発チームがそれを依頼し、SRE チームはそれを作って渡してあげるようなやり方だと、どんな問題があるのか。 依頼後の待ちが発生するので、インフラ構築のためのリードタイムが大きくなったり、開発チームにしてみればそのコントロールは難しいので、開発スケジュール上の不確実性となります。 また、このような構造では、開発チーム内で最適なデータベースやそれを利用するアーキテクチャについて考える意欲を持つことは難しく、引いてはプロダクトの品質にも影響してくるでしょう。

そうならないよう、Terraform によるセルフサービスのためのプラットフォームを提供しており、開発チームのメンバーはデータベースだけでなくキャッシュサーバやメッセージキューなど、あらゆるクラウドリソースを自分たちで設計し、調達することができるようになっています。

また、アプリケーションについても同様に Kubernetes を用いたセルフサービスのためのプラットフォームを提供しており、新しいアプリケーションの構築も、それらの継続的なデプロイも、SRE チームの手を借りることなくできるようになっています。

CI/CD 等のためのツール類を含むプラットフォームは、ソースコードという形で成果物としてある程度目に見えやすいものですが、ツールだけ用意すれば自己完結チームとして開発が回り出すものでもありません。そもそも何故そのような形で開発をするのかということに対する理解やモチベーションも必要ですし、自己完結チームとして開発をするというのはどういうことなのか、という方法論を理解し、実践していく必要があります。

Quipper では開発チームで SLO を決め、定期的なモニタリングや、問題があった際のアクションを行っていくことがあらゆるチームでできています。また、障害等の問題が起きた時はポストモーテムによる振り返りもそれぞれ行っています。

そういった施策は、一回一回は少しの頑張りでできるかもしれませんが、継続するのは単純なガッツや根性でできることではないと思います。文化として根付いているからこそです。

プラットフォームと文化の両輪があって、そしてそれらを継続的に進化させていくことで、Vision の実現を目指しています。

Values

Values は 4 つ制定してみました。 Quipper Identities は 5 つですが、短期記憶にも収まるチャンク数も意識して 4 つに留めてみました。

  • Fail smart
    • 失敗を非難せず、学習の糧とする。また、影響範囲をコントロールし、最小のリスクから最大のリターンを得られるよう、プロセスに失敗を織り込む。
    • 失敗はできれば避けたいものですが、複雑なシステムにおいて、失敗を 0 にすることはできません。失敗を絶対悪とするのではなく、Postmortem 等できちんと向き合うことが重要です。
    • また、時には積極的にリスクを取ることで効率よく学習できる場合もあります。Canary Release 等を通じて、99.9% の SLO の残りの 0.1% を積極的に活用していくこともまた重要です。
  • Learning
    • 未知の課題を発見・解決するために、あらゆる物事を学習の機会と捉え、必要な変化をし続ける。
    • ピーター・センゲの『学習する組織』においても、『The DevOps ハンドブック』においても、組織としての学習・改善の重要性は強調されています。
    • 「今何ができるか」も重要ですが、「これから何ができるようになるか」はもっと重要です。継続的に課題設定をアップデートしながら乗り越えるということを組織で継続していく必要があります。
  • Borderless
    • 組織の垣根なくコミュニケーションし、協力しあうことでより大きな成果を目指す。
    • 個としての能力も重要ですが、プロダクトにとってインパクトのある大きな仕事はそれだけでは達成できません。
    • 特に自分たちは機能組織なので、開発チームとの間のボーダーを積極的に乗り越えて協力していくことなしには成果を上げることはできません。
  • Metrics-driven
    • あらゆる課題・物事を指標化し、問題を点ではなく線で捉え、柔軟かつ自動的な解決を目指す。
    • 一つ一つの物事を解決するのは難しくなくても、それを継続的に、または事前に避けるためには指標によるモニタリングや検知を行う必要があります。
    • 問題をシステム的に解決するには、問題を指標としてモデル化し、それをコントロールしたり、その副作用に対処していくことが必要です。

これらは Mission を実行していく上で、その一つ一つの行動の中で価値づけ、積み重ねるべき在り様です。

私たちのチームにいるメンバーはみんな個人として高い能力を持っていますが、それだけでは解決できない問題が増えていると感じています。 それらを乗り越えていくには課題設定の質を上げて、よりレベルの高い解決を図っていく必要があり、そのためにはこれらを行動指針とする必要があると思っています。

どうやって Vision, Mission, Values を策定したか

Vision, Mission, Values を策定しよう、と言い出したのは私ですが、策定自体は当時のチームメンバー全員で行いました。

本来だったらみんなで集まって、ホワイトボードなんかを使って、やいのやいの言いながらやりたいところでしたが、コロナ禍のため、全員リモートでのディスカッションとなりました。

何故やるのか、を自分なりに説明した後、何回かに分けて、それぞれが考える Vision, Mission, Values を発表しあったり、その中にあるそれぞれの価値観について深堀ってみたり、それらを要素に分解して再構成したりとしながら形にしていきました。

何故やるのか、については以下のような説明をしていました。

  • チームでより同じ方向を向いて普段の仕事や意思決定が行えるように
  • 採用上のマッチングのためのツールとして
  • それらを通じて、働く上でより魅力的な環境になるために

その後は採用面談・面接の中でも Vision, Mission, Values について説明してきていて、より価値観を共にできるメンバーが集まってくれればと思っています。

まとめ

チームがよりサステナブルにスケールしていけるように Vision, Mission, Values を作ったという話でした。

自分たちがやっていく仕事についてもそうですが、チームメンバー数ももう少しスケールしていきたいと思っているので、上記の内容に興味を持った方は是非カジュアル面談や面接に進んでいただければと思います 🙏

また、ギリギリですが 2021/08/25 (水) に スタディサプリ/Quipper のオンラインミートアップがあり、SRE チームの @chaspy さんが How to measure "Site Reliability Engineering" というタイトルで発表するので、皆さんのご参加をお待ちしています。