Rehab for JAPANで進めるSRE文化醸成活動とその工夫
はじめに
Rehab for JAPANの技術横断チームの鈴木です。
チームや組織に対して何らかの文化醸成に取り組んだ方は、思うように進まない・関係者を巻き込めないなど何か一つは悩んだことがあるのではないでしょうか。
現在弊社ではSRE文化醸成活動を実施しています。
まだ道の途上ですが、その中で得た気づきや工夫した点をご紹介します。
この記事が、何らかの文化醸成に取り組む方の悩みの一助となれば幸いです。
本記事のターゲット
- SRE文化醸成活動を行っている方
- 何らかの文化醸成活動を行っている方
言葉の定義
| 項目 | 説明 |
|---|---|
| SRE | ソフトウェアエンジニアリングを用いて運用を自動化し、インシデント対応・SLI/SLOの運用・キャパシティプランニングなどのプラクティスを通じて、サービスの信頼性を継続的に改善していく考え方と実践 |
| 技術横断チーム | SREを実践しインフラの構築運用を行ってきたメンバー(弊社ではSREをロールとして定義していません) |
| ProductSREs | 各開発チームでSREプラクティスを率先して取り組むメンバー |
| PlatformSRE | 共通プラットフォームやインフラストラクチャの信頼性向上に特化し、開発チームが利用する基盤システムの構築・運用を担当するSRE |
| EnablingSRE | 他のチームがSREプラクティスを実践できるよう支援する役割。トレーニング、サポート、SREの普及を促進するSRE |
SRE文化醸成活動を始めた背景
弊社では、開発組織が一丸となって進めている技術戦略があります。
その取り組み中でポイントの1つとなるのが、ユーザーへのアウトカムです。
それを最大化するために重要となるのが「自己組織化」と仮説しています。
今後開発生産性が上がりリリース回数増加、機能追加など増えることで、運用に関連する様々な問題が発生し、ソフトウェア開発ライフサイクルの一部がオーバーヘッドとなり、技術戦略を進める上でのボトルネックになると考えています。
ですので、SRE文化醸成活動を通して下記を実現することで、ボトルネックを解消しユーザーへのアウトカムを最大化することに繋がると考えています。
- SRE文化が根付くことで、各チームが「自分たちのサービスは自分たちで守る」というオーナーシップを持ち、インシデント対応や改善活動が自律的に行われる状態にシフトしていく
- ソフトウェア開発のライフサイクルがチーム内で自己完結化し、アジリティや開発生産性が向上
文化醸成活動を始める前の状況
弊社では元々一部の開発エンジニアは運用も含めて実践する文化が少なからずありました。
更に1つのチームではSLI/SLOの運用も実施していました。
ですので、一部のエンジニアは運用へのアレルギーは無い状況でした。
腹落ちさせる
なぜやるのか、やることでどのような効果があるのかを説明会を開き、
開発チームの関心事を中心に話し、理解→賛同していただけるように根気よく丁寧に説明しました。
説明会の後もアンケートを取り、アンケートのポイントの低い箇所のトピックを中心に再度
詳しく説明しました。
不安要素を取り除く
この活動は各開発チームの開発者の中でProductSREsになって動いてくれる方を一人以上たて、
その方が技術横断チームと一緒に自チームのSRE文化醸成活動を進めていきます。
気持ちはあっても、ProductSREsの活動は初めてのことも多く開発業務と両立できるか不安になる部分も出てくると思っています。
アンケートでも実際そのような声もありました。
ですので、下記2つを実施し不安要素を取り除き、ProductSREsの活動にコミットできる環境を整えました。
- 各開発チームリーダーにメンバーがProductSREsに使う工数を確保していただけるよう了承を得る
- その期でどこまでやるかはProductSREsと話して決める
ゴールの青写真を明確にする
この活動で最終的に目指したい状態を、
「各チームがデータに基づいて自律的に運用と改善を行い、ソフトウェア開発全体のアジリティを向上させながら、適切なサービスの信頼性を継続的に維持している状態」
と定義し、図にして開発部全体で共通認識をもちました。

どこまでやってもらうか
環境構築のプラクティスを例に上げると。
前提として弊社では全サービスのインフラをIaCで管理しています。
また、インフラ構成のベースの部分はなるべくシンプルさを保った構成で全サービス共通化されています。そこに各チームでマイクロサービスなどを追加してカスタマイズしているという状況です。
その上で、まずお任せする箇所は複雑度の低い下記にしています。
- 環境構築
- SystemManager追加(アプリ側の変数追加時)
まずは成功体験を積んでいただき「楽しい・興味をもつ」ことを重要視しています。
文化醸成の成熟度を図る指標を用意
弊社では、GoogleのSREで定義されている「信頼性の階層構造」をベースに、各チームへのSREプラクティス導入順序を決定しています。
(基礎の階層は弊社用にカスタマイズしています)

一番下の階層から順に実施し、クリアしたら1つ上の階層に進むサイクルを回しています。
階層が上がる基準は下記のルールで運用しています。
CNCFの成熟度レベルに倣い、Sandbox、Incubating、Graduated と定義しました。
その階層で「Graduated」まで到達したら、その階層はクリアとします。
Incubating→Graduatedへ上がる基準は、確認項目を作成しそれを達成したら上がるようにしました。
(CNCFを利用するアイデアはfreeeさんの事例を参考にさせていただきました)

| 項目 | 説明 |
|---|---|
| Graduated | 開発チーム内でSREプラクティスを自立的に実践できる状態。SREの知識が広く浸透し、セルフサービス型で実施される段階(達成項目の確認、テストetcで判断) |
| Incubating | SREプラクティスの実践が進んでいる段階(実践中) |
| Sandbox | 開発チームがSREプラクティス実践のためのリソースを一部割り当て、各プラクティスの基本的な理解を始めている段階(ProductSREsがいない、実践がまだ、勉強会のみ実施) |
ProductSREs活動への組織・チーム・個人への利益を提示
活動で「組織・チーム」「個人」に与える利益があるということを明示的にお伝えするようにしました。
開発組織・チームの利益
- SRE文化が根付くことで、各チームが「自分たちのサービスは自分たちで守る」というオーナーシップを持ち、インシデント対応や改善活動が自律的に行われる状態にシフトしていく
- ソフトウェア開発のライフサイクルがチーム内で自己完結化し、アジリティや開発生産性が向上
個人の利益
- Product SREsとして本番環境でECSやAmazonAurora・Datadogを活用し、SREプラクティスを実践する経験は、エンジニアのキャリアアップとしても非常に有益
日々の活動
体制
弊社では技術横断チームが私一人であるためPlatformSREとEnablingSREを兼務しています。
EnablingSREは各チームの状況やProductSREsが実施するSREプラクティスの難易度によって、
並走またはサポートを切り替えています。

活動
- ProductSREsはSREプラクティスが発生したら対応
- ProductSREs全体での定例会議 (活動の進捗や困っていることを共有etc)
活動を通して重要だと感じたこと
主体性を引き出す
物事をいくら仕組み化しても、人は機械ではないので
本人が腹落ちして、自分ごとになって心が動かないと表面だけの活動になってしまう。
ですので、ProductSREsのメンバーと1対1で対話したり、手を出さずみ見守ったり、各々の状況に合わせて「主体性」がでるまで試行錯誤する。
信頼がすべて
上記の「対話し続ける」と内容が被りますが、
「この人となら」「この人が言うなら」という周りから信頼関係が、
文化醸成を進める上で一番重要と思っています。
いい人であり続けるというのではなく、コトに向かって忖度なくお互いに議論し合える
信頼関係だと思っています。
活動は既存スケジュール内に小さく組み込む
文化醸成のための活動は「継続」することが重要です。
いきなり新しいことを既存スケジュールとは別に時間をとってやるよりも、
既存スケジュール内に小さく時間をとって組み込んだほうが「継続」という観点では
続きやすいです。
謙虚
人は物事を先頭に立って進めていくと、知らないうちに「傲慢・慢心」になりやすいと
思っています。
それはメンバーに伝わってしまいます。
現状は受け止め、事象ではなく根本原因や背景に目を向けることが重要だと思っています。
更に、自分より上の役割の方(開発部長以上)との相談で、自分が見えていない観点を認識するということも重要です。
小さな成功を一緒に確認する
メンバーの小さな成功やチームや組織への貢献を認め、
ことばにして具体的に伝えてあげることでメンバーの「自己効力感」を大きくしていけると感じています。
まとめ
ここまで色々書かせていただきましたが、現在も進行中で常に学ぶことが多く、
道を大きく間違えないように全体を先導することの大変さや重要さを実感しています。
ですので、今やっていることを常に振り返りながら、目指すべきゴールへの方向性がそれていないか確認し続けることが重要と感じています。
弊社のSRE文化醸成活動も今後も多くの失敗や悩みを経験すると思っています。
ですが、それ自体が歴史となって揺るがない文化をつくる1つの要素になると思っています。
また、私の周りには幸いなことに、コトに向かって議論し合えるメンバーがいるので、
他社では笑われるような理想や思いに共感してくれる環境があることが、
SRE文化醸成を進める上でとてもやりやすいと感じています。
Discussion