弊社ではboardというサービスを提供していて、以前、その障害時に備えたCSチームの障害対応訓練を行いました。
その時に気づいた課題などを準備・対策した上で、2回目の障害対応訓練を実施してみました。
1回目の訓練で見つかった課題・改善点
詳しくは1回目のブログに書いていますが、簡単にまとめると、以下のような課題・改善点がありました。
- 初動のスピードはもう少し早くしたい
- ステータスページ運用の習熟度を上げる
- 想定できることを事前に想定して目線を合わせておく
CSチーム内でボールのお見合いをしてしまったり、何を個人の判断で対応し、何を他の人のチェックを入れるのか、などの意識共有がない状態だったため、ステータスページの更新や問い合わせへの回答までに時間がかかってしまいました。
障害時は、なるべく早く情報を出すことがとても大事だと思っているので、まずは、そういった点を改善できるようにしていこうということになりました。
CSチーム内で準備したこと
1回目で気づいた改善点などを踏まえて、CSチーム内で対策を検討しました。
初動時に使用する各種文言や手順の準備・整理
障害の各段階(障害発生直後・調査状況の進展・解消など)に応じて、ステータスページ用・問い合わせの回答用・FacebookページやTwitter用の基本的な文言を準備しました。
これは単純に文章を書く手間の軽減もありますが、障害の各フェーズごとに「どういう意図の情報を発信すべきか」ということの整理でもあります。
それをそのまま使うか、アレンジして使うかは状況次第ですが、ベースが決まっていることで、ある程度素早く判断・対応していくことができます。
障害時の役割分担
障害時のCSチーム内の役割分担を決めました。
- ステータスページや返信時の文言を作る人
- ステータスページを更新する人
- 問い合わせへ返信する人
各自の得意分野をもとに、メインに担当するものをあらかじめ決めておきます。これにより、障害時に、誰が何をやるのかということを相談する必要はなく、すぐに対応に入れます。
ステータスページの習熟度を上げる
ステータスページは障害時しか更新しないため、あまり使い慣れておらず、「この状況だとどのステータスでしたっけ?」みたいなことになりがちです。
そのため、以下のようなことを行いました。
- ステータスの意味・位置づけの再確認
- どのような状況でどういう内容を発信するのかなどの意識合わせ
- ステータスページ自体の操作の練習
障害対応ポータルの作成
弊社では、社内のドキュメント類を書くのにDocBaseを使っているので、そこに「障害時にCSチームが参照することのまとめ」として「障害対応ポータル」という記事を1つ用意しました。
そこから、基本的な方針やステータスページの管理画面へのリンク等、必要な情報がひとまとめになっています。
ただ、AWSの障害時はDocBaseもアクセスできない可能性があります。そこで、対象の記事更新時に、その内容をマークダウンのファイルとしてSlackに丸ごと流すような仕組みを作って、DocBaseにアクセスできない状況でも必要な情報のコピーをSlackで参照できるようにしました。
障害時のコミュニケーションルール
1回目の訓練の際に、「誰かに確認してほしいけど誰が適切か迷った」「他の対応中なのでメンションして良いか迷った」という声があり、そういう部分で迷わないよう、意識統一をしました。
大まかには以下のようなかたちです。
- 単なる情報の共有の場合はメンションしない
- たとえば、何かの作業に入る場合などは「○○やります」というかたちで宣言する
- 特定個人に対応・返信を求める場合はメンションする
- 誰でも良いが誰かに確認してほしい場合は、チーム全員にメンションする
- Slackのグループを作っておいてCSチーム全員と開発チーム全員に簡単にメンションできるようにしておく
2回目の障害対応訓練
CSチーム内で対策の準備ができた後、2回目の障害対応訓練を実施しました。
2回目の目的は「1回目で見つけた課題とそれに対する準備の確認」としたため、内容としては1回目と基本的には同じで、少しだけシチュエーションを変えたものにしました。
1回目で課題だった、ステータスページの更新や回答までの時間は大幅に短縮でき、また役割分担やコミュニケーション部分でも大きな混乱は見られず、全体的にとてもスムーズに対応できていました。
もちろん実際の障害時は、想定していないことも多々発生するので訓練のとおりにはいかないものですが、ベースになる基本形はできたかなと思います。
今後について
障害は様々なシチュエーションがあります。
たとえば、CSチーム内の役割分担を決めましたが誰かが休みかもしれません。開発チームが障害対応で忙しくて、なかなかCSチームからの確認に対応できないかもしれません。回答を書くのに苦慮するようなお問い合わせがあるかもしれません。
今回までで、障害時の「基本形」はある程度できたと思うので、今後、こういった基本的な訓練は少し状況を変えつつ半年に1回くらいのペースで実施できると良いかなと思っています。
障害対応訓練は、CSチーム以外の人にユーザー役(問い合わせをする人)をやってもらう必要があり、また、全員の時間をそろえないといけないこともあり、そこそこコストが高い取り組みで、頻繁には実施しにくいものではあります。
そのため、たとえば、
- 体制が薄いときに発生した場合に備えて、ステータスページの更新は全員が慣れておく
- 対応難易度が高い問い合わせを想定して準備しておく
といったことはCSチーム内や各自で準備しておき、ベースとなる基本形の上に上積みしていければ良いかなと思っています。
1〜2回訓練を実施するだけでもかなり違うなと感じたので、準備大事ですね。