障害に前向きに向き合っていきたい〜「ポストモーテムから学ぶ会」誕生秘話〜

こんにちは、お久しぶりです!CREのmayuzo(@nanaka1103)です。 昨年末から産休・育休に入っていたため、お久しぶりの投稿となりました。今は子育てと仕事を両立させたいと頑張っていますが、覚悟はしていたものの大変ですね。先人達には頭が上がりません。

さて、今回はアドベントカレンダーへの寄稿として、アンドパッドのCREが障害に向き合っている取り組みについて書いていこうと思います!

障害対応におけるCREの役割

障害*1

あまり聞きたくない言葉ですね。できることなら起こらないでほしいし経験したくない。しかしながら、長くサービスを運営しリリースを繰り返していると完全に防ぐことは難しいです。 ユーザーが深刻な不具合に遭遇する数を少しでも減らすべく、CREが主導して行っている取り組みがあります。 それが、「ポストモーテムから学ぶ会」です。

アンドパッドでの障害対応の流れ

学ぶ会の説明の前に、前提として、アンドパッドでの障害対応の流れを書きます。詳細な説明は省略しますが、大まかには以下の流れです。

  1. 一刻も早く通常の状態に戻るよう、該当不具合の緊急対応を行う
  2. 障害対応後、一連の対応について振り返りを行いポストモーテムを書く
  3. ポストモーテムに記載した再発防止策・恒久対応を行う

アンドパッドではほぼ全ての障害対応にCREが関わります。ユーザーへの影響を調査したり、顧客コミュニケーションの調整をしたり、場合によるとPdM(プロダクトマネージャー)とともに全体の管理を行うこともあります。そして、振り返りとポストモーテム執筆に参加します。

振り返りとポストモーテム

ポストモーテムについては、SRE本(SRE サイトリライアビリティエンジニアリング)に詳しく記載がありますが、ポストモーテム導入のベストプラクティスとして「非難を避け、建設的であり続けること」と書かれています。

アンドパッドにおいても、特定の人やチームへの非難はせず、どうやったら仕組みで防げるのかを議論するように心がけています。また、再発防止策を立てる際には主に以下の観点で、再発を本当に防止できるのかをしっかり検討しています。

  • 仕組みで解決を図ること
    • 誰かのせいにはせず、エラーを引き起こす構造を改善すべき
  • 人が頑張る再発防止策は避けること
    • どんなに良い再発防止策でも、頑張り続ける内容なら疲れてやらなくなったり結局エラーの原因になる
  • 実行可能性のあること
    • どんなに良い再発防止策でも、実現できなければ意味はない

ポストモーテムから学ぶ会

さて、上記のように、障害があれば各チームは知恵を絞ってポストモーテムを書き、再発防止策を立て実行しています。再発防止策が仕組みで解決できる内容であるなら、それが1つのチームの知見にとどまるのはもったいないでしょう。アンドパッドにはたくさんのプロダクトチーム・プロジェクトチームがあるので、開発部門全体の知見にしたい。そんな思いで「ポストモーテムから学ぶ会」が始まりました。

開催の形式

月に一度、開発部門のメンバーが全員集まる会の時間を30分ほど使ってCREから共有を行います。

内容は、主に以下の2点です。

  1. 前月の障害の傾向を分析した結果の共有
  2. 今月のハイライト(他チームの参考になるような再発防止策の共有など)

1つ目は、アンドパッドの開発部門で起こっている障害の全容を知ってもらうことを目的にしています。

2つ目は、実際に対応したチームに経緯やどういう意図で再発防止策を立てたのかを話してもらうなど、開発全体に有益だと思われることを共有しています。CREからのインタビュー形式で行うなど、興味をもって聞きやすいように毎回工夫しており、コンテンツも月ごとに変えています。

学ぶ会で使用したスライドと議事録はConfluenceにストックしているので、休んだメンバーもいつでも参照でき、ポストモーテム単体で読むよりは補足情報を得ることができます。

学ぶ会の議事録。スライドと話したことをまとめています

また、学ぶ会の目的を以下のように定めました。

障害内容を振り返り、似たような障害を発生させないための日々の動きのヒントになる事を共有していく

私たちはポストモーテムを資産だと思っています。困難にぶち当たって乗り越えてきた歴史だと思っています。だからこそ、繰り返しになりますが、開発部門全体の学びとなりヒントになってほしいのです。 開発部門全体で、障害を起こしたことを非難するのではなく、前向きに学んでいきたいと思っていますし、そういう雰囲気になるよう努めています。

CREがこの会を主導する意味

先述したように、CREはほぼ全ての障害対応と振り返りに参加します。さまざまなチームの振り返りに参加しているCREだからこそ、全体の傾向が見えることがあります。 また、新規プロダクトでぶつかった課題が、すでに他のプロダクトで遭遇したことがある課題だと気づくこともあります。 CREはプロダクトチーム・プロジェクトチームに完全に所属していないので、事象を俯瞰して眺めることができ「学ぶ会」を主導できると考えています。

実際効果はあったのか

昨年と比較すると全体の数は減りました!

障害数の推移。2022年→2023年は減少傾向なのがわかります

2023年12月現在、障害数は2022年と比較して約80%となっています。プロダクトチーム・プロジェクトチームの数は増えておりその分リリース数は増えていますので、リリースに対する障害数は減っていると断言できます。

もちろん各プロダクトチーム・プロジェクトチームがバグを生みにくい構造になるよう開発を続けてくれていることが大きく寄与していると思いますが、学ぶ会も一定効果があると思いたいものです(手前味噌)。

ANDPADはまだまだ成長中のサービスで、新しい機能もどんどん生まれています。これまで先人達が味わっていた痛みを繰り返すことのないように、ANDPADを利用しているユーザーが二度と同じような不便を味わうことのないように、CREとしてこれからも前向きに障害と向き合っていきたいです。

(余談)会の名前に込められた意味

ここからは完全に余談なのですが、実はこの会は元々「ポストモーテム共有会」という名前でした。名は体を表すと言いますが、もっとメンバーに学んでもらえる会にならないかと考えた結果、ストレートに「ポストモーテムから学ぶ会」に変えました。「共有」は話者から聴者へ一方的に話すイメージがありますが、「学ぶ」とすると、その場にいるメンバーが一緒に参加していくイメージに変わるかな、という思いも込めました。

果たして効果はいかに…ではありますが、こうしたちょっとしたところに考えを巡らして実行してみることも案外重要なのでは、と個人的には思います。

さいごに

障害に対するCREの取り組みのご紹介でした!今年のアドベントカレンダーでは、来週もCREから東峰さんが寄稿予定です。今回の記事でCREに興味を持ってくださった方は、ぜひそちらも御覧ください!

アンドパッドでは共に働いてくださる仲間を大募集しております。 一緒に開発組織を良くしていきたい!そんな方はぜひ下記リンクよりご応募・お問合わせください。

engineer.andpad.co.jp

*1:アンドパッドでは、緊急リリースで解消しなければならない不具合を「障害」と呼んでいます。必ずしもサービス全停止のような大規模なインシデントとは限りません