SRE本を読んでからポストモーテムについて考えている。ポストモーテム(post-mortem)とは反省会、事後検討といった意味の言葉である。つまり、なにか予期せぬ失敗をしたときに書く文章だ。SRE本ではサーバシステム運用の文脈で使われた。
仕事でドキュメントは大事だ。喋って何かを決めたり、ふりかえっても、文章で蓄積しないと何も残らない。われわれソフトウェアエンジニアがよく書くのは、設計とか仕様についてのドキュメントだろう。だが、これらのドキュメントはしばしば陳腐化する。特に、仕様やソフトウェアの使い方、環境構築のドキュメントはすぐに内容が古くなる。こうしてわれわれは文章を書かなくなるのだが、どうやらポストモーテムは違う性質を持っている。
というのも、失敗を記録した文書は陳腐化しにくいのだ。なぜなら、過去に起こった事実を記録しているから。過去に起こったことを記述するので、原理的に内容を書き換える必要がない。ただ知見が蓄積されていくのである。もちろん、失敗した対象のシステムが使われなくなると、表面的にはその文章は不要となる。ところが、じつはそうでもない。失敗するのはいつでも人間なので、人間がどのように失敗したかを記したドキュメントはシステムが使われなくなっても有用だ。
つまり、システムや仕様、そのときの環境について書いたドキュメントは陳腐化し、人間について書いたドキュメントは陳腐化しにくいのだ。人間は必ず失敗し、たいてい同じ失敗をくりかえす。
だが、陳腐化しないドキュメントを残せることと、失敗を再度起きないようにすることは別の問題だ。ここは留保しなければならない。日常的な行動を変えることができない人間が多いと、ドキュメントがあっても無駄だろう。これは、「愚者は経験に学び、賢者は歴史に学ぶ」で言い表される問題だ。組織文化の問題となるので、これについてはそのうち別の記事を書く。
ともあれ、失敗について反省し文書を残すことは効率のよい投資である。将来にわたって使えるドキュメントにするには、起きた出来事と問題の構造、そのときの判断を具体的に書く必要がある。箇条書きではだめだろう。箇条書きは複雑な論理構造をもった問題をわかりやすく伝えるようにはできていない。ポストモーテムは必ず文章で書くようにしたい。