インシデントに対する心の持ちかた

s_sasaki_0529
·

ここではインシデントのことを便宜上、ソフトウェアにおける比較的規模の大きな不具合の発生の意味で使う。

自分たちが実装、デプロイしたコードによってインシデントが発生した場合に、その責任が組織やチームといった集団にあるのか、特定個人にあるのかは人によって捉え方が異なると思う。

全部が全部組織の問題だと割り切れる人はいないだろうし、コードを書いたりデプロイ作業をしたり、危険信号のアラートを見逃したり、テストで拾えなかったりの作業者が自分だった場合は少なからず自分を攻めてしまうこともあるだろう。

私自身も完全には割り切れてはいないが、基本的には自分が何かをやらかした場合も、「もしこれを他の人がやってたら責めるだろうか」と立場を変えて考えるようにしている。

自分の書いたコードで発生したとして、もしそれが他のメンバーが書いたコードだったら?おそらく多くの人は自分のことは責めるが他の人を責めることはあまりないだろう。

そもそもインシデントはたった一人の誰かが要因となって起こるようなものじゃないし、もし起こるとしたらそれこそ組織側になんのルールも秩序もない悪い状態と言える。

コードを書いた人も考慮が不十分な対応だったし、そのコードのレビューを通した人も、アラートに気づかなかった人も、最終的に動作確認した人にも原因はある。さらに言えばテストが不十分であったり、そのテスト結果の通知が足りてないあるいはテストが通らなくてもプロセスを進めることができるとこにも問題があるかもしれない。

こうなるとインシデントの原因が自分にあると考えるとは本当に無駄なので、早々に組織としてどんな問題があったのか振り返ってポストモーテムを書くほうが遥かに有意義だと思う。