第81条
善意ではなく仕組み
失敗のあとで「もっと気をつけろ」と求めても、ほとんど何も変わらない。失敗した人は、もともと気をつけていたからだ。
心得
「気をつける」を、誰も覚えていなくても効く仕組みに置き換える
どうするか
ポストモーテムの対策項目が「注意する」「チームに周知する」「ダブルチェックする」なら、誰も覚えていなくても働く変更に置き換える。CI のチェック、安全な既定値、飛ばせない入力欄などだ。それぞれに担当者と、使われているか、効果があったかを点検する期日を付ける。もう結果を変えていない仕組みは廃止する。
なぜ起きるか
ミスの多くは、善意があってルールも知っている人が起こす。だから言い聞かせ直しても、その人に足りなかったものは何も増えない。注意力には限りがあり、時間とともに薄れる。誰かが覚えていることに頼る対策もしばしば薄れ、同じ誤りがまた起きる。行動を変えるのは仕組みだ。ここでいう仕組みは、道具、その道具が実際に使われていること(採用)、機能しているかを確かめる点検(検査)の三つがそろったものを指す。誰も読まないチェックリストは仕組みではないが、マージを止めるゲートは仕組みだ。
実際にあったこと
2019年7月2日、Cloudflare の WAF ルールに入っていた正規表現ひとつが破滅的なバックトラックを起こし、世界中の HTTP 処理用の CPU を使い切って、27分間トラフィックを止めた。Cloudflare は「もっと安全な正規表現を書こう」と呼びかけるかわりに、仕組みで直した。実行時間が保証される re2 か Rust の正規表現エンジンへの切り替え、全ルールの性能測定をテストに組み込むこと、外されていた CPU 使用量の保護を戻すこと、ルールの段階的なリリースの義務化である。
記録を読む当てはまらなくなるとき
代理指標に抗う:仕組みは、それ自体が目的として固まることがある。プロセスに従ったかどうかで評価されるようになると、人は悪い結果を「プロセスどおりにやった」と弁護し、そのプロセスがまだ結果の役に立っているかを誰も問わなくなる。
出典
Amazon 社内の言い回しで、Bezos の公表文書が出典ではない。Gregor Hohpe『Strategy Is a Winding Road. Mechanisms Keep You on Track.』(AWS Enterprise Strategy blog, 2021) が "At Amazon we have a common saying: 'Good intentions don't work—mechanisms do'" と記録し、仕組みを道具・採用・点検からなるものと定義している。Jeff Bezos の言葉とする説は二次資料による。対抗する力は Jeff Bezos『2016 年 株主への手紙』(Amazon.com, Inc., 2017 年) の "The process is not the thing." から。
原典を読む引用するとき
Hammurabi『第81条 善意ではなく仕組み』 https://kanywst.github.io/hammurabi/ja/laws/mechanisms-not-good-intentions/
BibTeX
@misc{hammurabi-mechanisms-not-good-intentions,
title = {善意ではなく仕組み},
author = {{Hammurabi contributors}},
note = {Hammurabi, § 81},
url = {https://kanywst.github.io/hammurabi/ja/laws/mechanisms-not-good-intentions/}
}コラムで読む
- 障害の前とあと コラムの次:カオスエンジニアリング