インシデント対応の「シャドーイング」解説
〜新人エンジニアのオンコール訓練〜

インシデント対応のシャドーイング

インシデント対応におけるオンコール業務は、プレッシャーやストレスの大きい仕事です。初めてオンコールに携わるメンバーや新しく加わるメンバーの方であればなおさら、より強いストレスを感じたりするのではないでしょうか? そこでおすすめしたいトレーニング方法が「シャドーイング」です。シャドーイングとは、業務の責任を抱えずに指導者のそばについて仕事を観察する方法です。シャドーイングを用いることで新しいオンコールメンバーは事前に業務の実態を知ることができ、よりスムーズにオンコール業務を開始できるようになります。本記事では、シャドーイングとはどのようなトレーニング方法なのか、効果やメリットとともに解説します。また、PagerDutyを活用したオンコールのシャドーイング方法についてもご紹介します。

そもそも、シャドーイングとは

「シャドーイング(Shadowing)」とは、訓練者が指導者の仕事に同行して、仕事内容や指導者の視点を近くで学び、理解を深めることを指します。実際の職場環境で指導する方法として、他にも「OJT(On the Job Training ・オンザジョブトレーニング)」があります。OJTとシャドーイングの大きな違いの一つに責任の有無があります。OJTは実際に一部の仕事に従事するため責任が発生しますが、シャドーイングは仕事の観察であり責任は発生しません。そのため、シャドーイングはプレッシャーやストレスの大きい仕事の最初のトレーニングとして最適な手法の一つといえます。例えば、役員研修や看護実習など、プレッシャーやストレスがかかる状況で高度な判断が求められる人材の育成方法としてシャドーイングが活用されています。

オンコールにおけるシャドーイングの重要性

オンコールとは、「インシデント対応における仕組みで、インシデントの対応者と対応時間をあらかじめ指定して管理すること」です。これにより、緊急対応が必要なインシデントの発生時にスムーズな初動対応を実現できます。オンコールは、対応への不安や大きな負担といったストレスを抱えながらも高度な判断を求められる業務の一つです。そのため、新しくオンコールに携わるメンバーにはシャドーイングによるトレーニングがおすすめです。

PagerDutyでは、新しいエンジニアが配属されると、最初の2〜3週間はオンコールに向けた練習/訓練として「オンコールのシャドーイング」を実施します。新しいエンジニアはすべてのアラートを受け取り、チームが何をしているのかを追従することで理解を深めるのです。実際のオンコール業務に比べてアラート診断やインシデント解決の責任とストレスがない状況でオンコールと向き合うことで、オンコール対応時にやるべきことを整理できます。この事前の理解と整理は、オンコール対応への不安の軽減や、実際のオンコールにおける冷静で的確な対応につながります。そのため、シャドーイングの期間はオンコールに携わっていくうえでの重要な準備期間といえるのです。「オンコールに関する詳細」や「エンジニアにかかるストレスと解消法」については、こちらの記事『燃え尽きエンジニアを救う、「オンコール最適化、5つの教訓」』もぜひ参考にしてください。

シャドーイング実施時の注意点

  • 「オンコールのプロセスやアクション」をできるだけ実際の現場プロセスに忠実にシミュレーションすること
  • シャドーイングを行う訓練者の行動が実際にオンコール対応に対応するメンバーに影響を与えないようにすること

シャドーイングを実施する際には、上記の2点に注意することをおすすめします。訓練者はシャドーイングに安心して臨め、オンコールに臨む対応者はシャドーイングに妨げられることなく自分のアクションを実行できるようにしておくことが大切です。そのため、OJTの感覚で訓練者をオンコールローテーションのメンバーにアサインすることはおすすめしません。

PagerDutyを用いたオンコールのシャドーイング方法

ここでPagerDutyを活用したオンコールのシャドーイング方法をご紹介します。現在PagerDutyをご利用でない方も、PagerDutyの無料トライアルに登録することで実施することが可能です。PagerDutyでシャドーイングを実施する際の設定の概要とポイントを説明します。

PagerDutyでは、シャドーイング実施において大きく2つの設定を行います。まず、シャドーイング専用のPagerDutyアカウントを作成します。シャドーイング用アカウントでは、訓練者のための新しいサービスを作成し、Email連携の設定をします。もし複数の訓練者がいる場合は、複数のサービスを複数作成しておきます。 次に、メインのPagerDutyアカウントで、先ほどEmail連携で設定したEmailアドレスを、実際にインシデント対応を行うチームのエスカレーションポリシーに追加します。

これらの設定により、インシデント発生を知らせる通知はメインアカウント上でオンコールの第1対応者とシャドーイング用アカウントに送られます。その結果、シャドーイング用アカウントではメインアカウントと同じ情報を持つインシデントのコピーが「別のインシデント」として作成されます。通知を受けた訓練者は、メインアカウントと同じ内容をもとに、別のインシデントに対して「確認」「スヌーズ」「コメントの追加」などを自由に行なえます。もちろん、メインアカウントのインシデント情報には影響しません。

この方法のメリットとして、メインアカウントの設定を引き継げる点が挙げられます。また、シャドーイング訓練者の追加や削除、シャドーイングに関する条件などはシャドーイング用アカウントで管理できるため管理が容易です。週末や引き継ぎの日は除くといったシャドーイング期間の調整や、シャドーイングを勤務時間外はできないように設定することも可能です。

シャドーイングのセットアップ手順

1.シャドーイング用アカウントの設定

1−1.シャドーイング用PagerDutyアカウントの作成

まず、シャドーイング用にPagerDutyアカウントを作成します。PagerDutyアカウントをお持ちでない場合は、こちらから無料トライアルにご登録ください(クレジットカード情報等の入力は必要ありません)。

1−2.シャドーイング訓練者用ユーザーアカウントの作成

次に、シャドーイング用アカウントに訓練者用のユーザーアカウントを作成します。ユーザー名の欄(プレースホルダー)には仮のユーザー名が薄く表示されます。シャドーイングを実施する際には、訓練者自身のユーザー名に上書きすることが可能です。

1−3.シャドーイングの設定

シャドーイングを設定するために、以下の手順(1)から(3)を通じて「スケジュール」「エスカレーション」「サービス」の内容を設定します。1つのシャドーイング用アカウントを複数のチームで使う場合はチームごとに設定が必要です。

(A)スケジュールの作成
ここでは、架空のチーム名「Labs」を例にご紹介します。スケジュールにプレースホルダーユーザーを加え、チームの状況に合わせたスケジュールを設定します。

(B)エスカレーションポリシーの作成
新規に作成したスケジュールをエスカレーションポリシーに割り当てます。

(C)サービスの作成
Email連携を追加し、メインアカウントから通知を送るEmailアドレス(以下の場合では、labs-shadow-1@example-shadow.pagerduty.com)を入力します。手順(2)で作成したエスカレーションポリシーを選択します。そのほかの設定はデフォルトのままで大丈夫です。

2.メインアカウントでの設定

2−1.連絡用ユーザーアカウントの作成

メインアカウントに切り替え、シャドーイング用アカウントでイベントを発生させるための連絡用ユーザーアカウントを作成します。シャドーイング用アカウントに複数のシャドーイングサービスが作成されていても、1チームあたりの連絡用ユーザーアカウントは1つだけで大丈夫です。

複数のシャドーイング用サービスがある場合には、この連絡用ユーザーの連絡先にシャドーイング用サービスのEmailアドレスをすべて設定します。これにより、1つの連絡用ユーザーアカウントで、連絡先に設定したすべてのシャドーイングサービスへ即時に通知することが可能になります。

2−2.エスカレーションポリシーへの連絡用ユーザーアカウントの追加

PagerDutyのメインアカウントで、チーム(以下では「Labs」チーム)のオンコールエスカレーションポリシーにスケジュールが設定されている場合は、そのスケジュールの横に連絡用ユーザーアカウントを加えます。これで、どのスタッフがオンコールを担当していても、連絡用ユーザーアカウントに通知が送られます。注意点として、連絡用ユーザーアカウントをエスカレーションポリシー本体に加えないようにしてください。これは、訓練者のアクションが実際のインシデント対応業務に影響をおよぼすのを防ぐためです。

3.設定内容のテスト

以上で設定は完了です。次に設定内容のテストを行ないます。メインアカウントでチームに設定されているサービスを1つ選び、手動でインシデントを発生させます。次の2点をご確認下さい。

  • インシデントがメインアカウントに表示されていること
  • 同じインシデントがシャドーイング用アカウントにも表示されていること。また、その際、通知を受けた訓練者のユーザー名も併せて表示されていること。

問題がなければ、シャドーイング用インシデントを通知し、インシデントを解決します。このとき、メインアカウントではインシデントに一切の変更を加えないようにご注意ください。

4.シャドーイングの実施

新たなスタッフをシャドーイングに参加させるには、そのスタッフをシャドーイング用アカウントに招待します。スタッフは通知方法とそのほかの必要なユーザー情報を設定し、シャドーイングスケジュールの[Override Layer]で自分が担当する時間を登録します。シャドーイング期間が終了したら、ユーザーを削除しましょう。

オンコールスケジューリングのヒント

PagerDutyでは、シャドーイングの設定をサービスやスケジュールごとに設定できるので、シャドーイングの時間の変更も可能です。オンコール業務用にすでに設定されているスケジュール(例えば週7日間、1日24時間)から「週末を除く、または勤務時間内に限定する」というようにシャドーイング時間を調整することが可能です。

特定の日にちだけを除くには、[Restrict on-call shifts to specific times(オンコールシフトを特定の時間帯に制限する))]オプションを選択してください。また、シャドーイングを勤務時間内だけに設定することもできます。その際はサービス設定の[How should responders be notified?(対応者への通知方法)]から、[Based on support hours(稼働時間を使用)]オプションを選択します。注意点として、実際のインシデント対応への影響を避けるため、訓練者をオンコールローテーションに加えたり、連絡用ユーザーアカウントをエスカレーションポリシーに加えたりしないようにしましょう。

シャドーイングを活用して新人エンジニアのインシデント対応を後押ししましょう

インシデント管理におけるオンコール対応をチームで効率的に進めるためには、新しいメンバーがスムーズに学習や経験を積める環境が必要です。しかし、システム障害の防止という重大な責任がともなうオンコール対応を簡単に新しいメンバーに任せることはできません。一方で、実務経験は学びを得るための最速の方法でもあります。そのため、責任を伴わない「シャドーイング」が有効なのです。

PagerDutyでは、配属後3ヵ月以内にシャドーイングを開始することを推奨していますが、「具体的なシャドーイングの開始時期や期間」と「オンコール対応の開始時期」はエンジニア本人に任せています。シャドーイングを通して、「責任の共有」と「非難されない」企業カルチャーを体験することで、新しいエンジニアは安心してシャドーイングから実際のオンコールの現場への第一歩を踏み出せます。

また、PagerDutyではシャドーイングを組織内のポジションにかかわらず、全員に対して推奨しています。PagerDutyの技術チームに対する一週間のシャドーイングを通して、自社のサービスが何を提供し、どのように使われているかを理解するためです。シャドーイングは新メンバーの育成だけでなく、自社サービスに携わるさまざまなメンバーの理解を深め、DevOpsの強化にもつながります。オンコール対応のシャドーイングは、PagerDutyの無料トライアルでも実施していただけます。ぜひ、新人育成をはじめとしたDevOpsの体制強化に向けて、PagerDutyを用いたオンコール対応のシャドーイングをご検討ください。

PagerDuty公式資料
「デジタルオペレーションの現状」独自調査レポート

エンジニアの燃え尽きを防ぐ秘訣とは?
一段と信頼性の高いシステムを顧客が求めるようになり、勤務時間外や夜間の対応など、技術チームへの要求も増しています。本レポートでは、19,000 社以上、100 万人を超えるユーザーで構成されるPagerDutyプラットフォームから収集したデータを基にしたシステム運用の”今”を解説!→ PagerDutyの資料をみる(無料)

「デジタルオペレーションの現状」独自調査レポート

この記事が気になったら

  • Facebook
  • LinkedIn
  • twitter
  • はてなブックマーク

PageDuty公式アカウントをフォロー

  • Facebook
  • LinkedIn
  • twitter

関連ブログ記事関連ブログ記事

検索検索
タグタグ
インシデントをより早く・少ないリソースで解決
閉じる