はじめに
私はエンジニア組織にジョインしてから約1年webアプリケーションの開発に携わった後、今年9月から未経験なSREチームにジョインしました。
SREチームは対応すべきスコープが広く、対応しなければならないタスクが多岐にわたるため、
SREチームにジョインしてすぐに、「一体何から手をつければいいの?」とタスクの優先度が全くわからず、混乱していた時期がありました。
書籍『Site Reliability Engineering』の中でも、「SREがすべきこと」について、「サービスの可用性」「レイテンシ」「パフォーマンス」「効率性」「変更管理」「モニタリング」「緊急対応」「キャパシティプランニング」が責務であると書かれております。
これ以外にも、弊社では「セキュリティリスク」と「コスト」と「開発生産性」についてもSREの責務としています。
この記事では、上記の通り多岐に渡るSREの日々の業務をどのように優先度を決めているか、弊社チームで工夫したことについてまとめました。何かの参考になれば幸いです。
タスクの整理について
タスクの優先度を決めるためにまず最初に以下の観点でタスクを整理しました。
優先度の付け方
各観点に関して、重み付けにすることでプライオリティスコアを算出し、優先度を決めました。
それぞれについてスコアとその理由を説明していきます。
影響の対象
弊社では顧客が第一と考えており、内部影響のあるタスクより、顧客影響があるタスクを優先的に解決していく必要があると考え、以下のようにスコアを策定しています。
影響度
影響度は現場から開発組織、顧客、etc、様々な要素があり、一つ一つの粒度を細かくしても優先度は決められないので
粒度を粗くすることで、優先度を決めやすくし、かつ影響度に関しては重要度が高いため以下のようなスコアで割り振っています。
頻度
そのタスクを早く片付けないと、今まさに問題が起きている場合、何度も時間を割いて対応する場合があります。
よって、今まさに問題が起きているかどうかから考えて、スコアを決めます。
コスト
コストはそのタスクを終わらせるまでの対応期間を指しています。
スコアを決定する際は、自分一人で考えるのではなく、チーム内でどのくらいで終わらせることができるかの認識を合わせることで
誰に振っても、納期が遅れることのないようにスコアを割り振ります。
論理式
以下のようにプライオリティスコアを定義しました。
プライオリティスコア = カテゴリ × 影響度 × 頻度 × コスト
プライオリティスコアが70以上を意識をして、その中からスケジュールを組むことで、何をやるべきかが明らかになりました。
アウトカム
今までチーム内の一人一人の中で優先度があり、多少のズレがありましたが、チームの優先度が揃いました。
その結果、今日、1週間という短期の時間軸で何をやるべきかで迷うことがなくなり、パフォーマンスが上がりました。
最後に
SREとしての何をすべきかを悩んだときは、日々のタスク整理と優先度を付けることで
今日一日何に集中してやるべきかが明らかになり混乱しなくなりました。
タスク整理から優先度付けまでを毎日やることは蔑ろにしがちかもしれませんが、
意識して取り組むことが重要です。
※この記事は2020年12月17日にQiitaへ投稿した記事の転載です
この記事はモチベーションクラウドシリーズのアドベントカレンダー2020の20日目の記事になります。