見出し画像

dinii における緊急事態とその訓練について

こんにちは。Platform Teamで SWE をしている @HagaSpa です。
dinii (ダイニー)では大規模障害が発生した状況を模した訓練を定期的に行っており、今回はその活動について紹介したいと思います!

緊急事態訓練とは?

diniiでは緊急事態訓練という、サービス提供に影響がある障害(ここでは大規模障害と定義します)が発生した状況を模した訓練を定期的に行っています。
サービスを提供する側としては規模の大小に関わらず、限りなく障害を起こさないように予防策を徹底する一方、現実問題として障害の発生確率を 0 にすることはできません。
そのため diniiでは大規模な障害が発生してしまった時に、より迅速な対応を目指して訓練を実施しています。

dinii におけるサービス

まず初めに dinii におけるサービスについて簡単に紹介させてください。
dinii は全ての人の飲食インフラになることを目指して、モバイルオーダー、POS、CRM、を中心にサービスを提供しています。他にも決済機能や勤怠管理など飲食業界に関わる全ての領域を横串で携わっていくことを目指しています。

詳しくは弊社 Tanifuji が記載したコンパウンドスタートアップについての記事をぜひ読んでみてください。

dinii を導入してくださった店舗様は、dinii のサービスを利用して店舗オペレーションを組み直したり、顧客満足度の改善活動を行っています。
そのため dinii のサービス、特にモバイルオーダー・POSが止まってしまうと導入店舗様のオペレーションが止まってしまうため、店舗の営業活動ができなくなってしまいます。
例えばPOSが止まってしまうと会計ができず、モバイルオーダーが止まってしまうと注文ができないため、店舗からすると売上を建てることが出来ません。

このように dinii のサービスは飲食店にとって、非常にクリティカルなものになっています。

dinii ではサービスが停止あるいは正常に利用できなくなり、店舗のオペレーションが機能できなくなる状態を緊急事態と定義し、緊急事態を適切に解消・収束できるように緊急事態を模した訓練を定期的に実施し、組織レベルで改善を続けています。

緊急事態について

緊急事態下では以下の3つの役職を定義しており、状況を俯瞰的に見ることができるメンバを中心にアサインが行われます。

  • インシデントオーナー

  • 対外発信責任者

  • 顧客対応責任者

インシデントオーナー

この役割はインシデント全体の解決に対して責任を持ちます。 現在の緊急事態がどのようなフェーズであるかについて判断し、全体に対して現状の報告をします。またエンジニアや以下に説明する役割と密に連携を取り技術的な調査の進捗も常に把握します。
主にCTOや経験の長いエンジニアがアサインされます。

対外発信責任者

この役割は社外への全体発信に対して責任を持ちます。 社外に対する全体通知を行ったり、障害報告のドキュメントの作成を行います。
主にPdMがアサインされます。

顧客対応責任者

この役割は社内で行う顧客への対応に対して責任を持ちます。 電話対応全般を管理し、社内メンバーを各役割にアサインしたり、電話対応時のトークスクリプト作成を行います。
主に経験の長いユーザサポートがアサインされます。
上記のような役割の他に、LINEによる法人対応を行う営業や、ユーザからの問い合わせを受けるユーザサポート、技術的な調査や対応を行うエンジニアなどの役割があります。どの役割もインシデントオーナーの指示によって対応ができるように体制を構築しています。
このような役割分担をすることで、可能な限り迅速に事象の解決に向けて動いています。

緊急事態訓練について

実際の緊急事態の流れについて、緊急事態訓練をもとに説明します。
緊急事態訓練は、定期的に dinii で実施している緊急事態を模した訓練のことです。
緊急事態訓練は基本的に全社員の参加が義務付けられており、実際に緊急事態が発生したつもりで、ロールプレイを行います。
そのため緊急事態訓練には当日の流れや状況を設計する企画段階があり、ここで事象の決定や役割の担当を予め決めておきます。

当日の流れ

訓練当日では、訓練の企画者が緊急事態を発令します。
dinii では緊急事態の発令を Slack ワークフローとして実装しており、このワークフローを実行すると各種トークスクリプトや、管理資料・対応用のチャンネルが自動で作成されます。
つまりこのワークフローが起動した = 緊急事態に入ったということになります。

そのためメンバの感度も高く、以前誤って haga がワークフローを起動してしまった時も、爆速でメンバが集まっています…!

👆実際の訓練時の自動生成された Slack チャンネル


Slack ワークフローにより作成された対応用チャンネルに、全メンバが集まり、各種調整や対応状況の管理を行い収束に向けた対応を行います。
訓練では上述した役職や社内における役割以外にも、店舗や法人など社外関係者として担当(演じる)する人もいます。
例えば Aさんは dinii を導入してくださっている店舗役、Bさんは法人役など。
また特にニューカマーは dinii の緊急事態に慣れていただくために、積極的にUSサポートなどの担当をアサインさせていただいてます。


緊急事態用のチャンネルでは、状況共有のためプロダクトの稼働状況を自動で通知したり、顧客案内に向けたコミュニケーションを取ったりなど、事態の収束に向けた様々な活動を行います。

このような一連の活動を繰り返すことで、実際の緊急事態で解決に向けた動きを迅速に進められることを目的としています。


訓練をしたことで、改善できたこと

このような訓練を行うことで、訓練実施前よりも緊急事態発生時の初動の速さや、組織としての状況把握の精度、顧客案内含めた外部説明がクイックになりつつあると感じています。

今後も緊急事態に対する対応を引き続きブラッシュアップする一方で、同時に緊急事態を可能な限り起こさないための予防策の徹底も行いたいと思います。

現在 Platform Team は Incident Manager を絶賛募集しています!
このような障害対応(= Incident Response)に興味のある方は、以下の求人を軽くでも見ていただきたいです

また Incident Manager 募集の背景や思いを、弊社 VPoT である karszawa が書いています。こちらも是非ご覧ください!


この記事が気に入ったらサポートをしてみませんか?