計器なしで飛びながら、それを直感と呼んでいた

長いあいだ私は、自分のシステムが内部で実際に何をしているのかをほとんど可視化できないまま運用していた。そのなかで何が起きているのかを当て推量しながら判断を下し、いつしかその当て推量を、こっそりと「直感」と呼び直していたのだ。プロジェクト全体に対して私が最終的にやった、最もレバレッジの効いた一手は、恥ずかしくなるほど単純なものだった。私はただ、明かりをつけたのである。

振り返ってみると、これほど長く暗闇のなかで作業し続けたことが不思議でならない。たぶん私は、難しいのは考えることのほうであって、見えることは贅沢品にすぎないと思い込んでいたのだろう。それは完全に逆だった。

暗闇のなかでのデバッグ

何かがうまくいかなくなったとき——そして何かは常にうまくいかなくなっていた——内部をのぞき込んで何が起きたのかを確かめる手立てが、私には本当になかった。入力は見えるし、出力も見える。だが、その間にある空間のすべては、密閉されたブラックボックスだった。私のデバッグのプロセスらしきものは、要するに、そのボックスのなかで何が起きていそうかという仮説を立て、何かを変え、出力が良くなるか悪くなるかを眺め、それを繰り返す、というものだった。

これは、実際のメカニズムにまったく目を閉ざしたまま行う、当て推量と試行錯誤によるデバッグだ。遅いし、いら立たしいし、何より厄介なのは、その不確かさが自分自身を覆い隠してしまう点にある。たまたま出力が改善すると、その仮説が正しいと一度も確認していないのに、人は自分の仮説を手柄にしてしまう。暗い部屋のなかを、ときおり何かにぶつかっては、その手触りから家具の配置を推し量りながら歩いているようなものだ。

直感を装った当て推量

本当に危険だったのは、それについて自分に語っていた物語のほうだった。私は、自分がこのシステムに対する勘を養ったのだと信じるようになっていた——どういうわけか、問題がどこにありそうかが「ただ分かる」のだ、と。私はこれを、経験を積んだ人間が持っているはずの、苦労して身につけた一種の直感のように扱っていた。

しかし本物の直感とは、圧縮された経験のことだ。大量の本物の観察が、時間をかけて素早い判断へと蒸留されたもの。私が持っていたのはそれではなかった。私が持っていたのは、圧縮された無知だった——あまりにも少ない実際の情報に対して当てはめた希望とパターンマッチングを、専門知識の言葉で着飾ったものだ。実際に何が起きているのかを見られなかったから、私はそれらしい物語を発明し、そして致命的なことに、自分の発明を信じてしまった。十分に自信をもって繰り返された当て推量は、知識のように感じられ始める。とりわけ、それに反証するための可視性が周囲にひとつもないときには。

見えないものは直せない

その気づきがついに腑に落ちたとき、それは侮辱的なほど当たり前のことだった。私のボトルネックは、問題を解く頭の良さではなかった。そもそも問題を観察する能力が、ほぼ完全に欠けていたことだった。デバッグの非常に大きな割合は、結局のところ、実際に何が起きているのかを見られること、ただそれだけなのだ——そして私は、その一歩をまるごと飛ばして、いきなり解くことに進もうとしていた。

観察がなければ、世界で最も鋭い推論ですら、想像上の事実に当てはめられているだけになる。自分ででっち上げた前提から完璧に推論し、堂々と自信をもって、どこにもたどり着かないということが起こりうる。私はまさにそれを、何度も何度も繰り返し、その自信を進歩と取り違えていた。思考への入力が当て推量である以上、その思考の質などほとんど無関係だったのだ。

可観測性はタダではないし、任意でもない

その修正は、まったく華やかさのないインフラ作業の連続だった。正しいものをログに記録し、各ステップでシステムが実際に何を見て、何をして、なぜそうしたのかを記録し、稼働中にその内部をのぞき込む手段を作る。このどれも、目に見える機能を生み出しはしない。どれも、その瞬間には本当の進歩のようには感じられない——ワクワクする仕事から逸れた寄り道、構築する代わりに支払う税金のように感じられる。

その捉え方こそが、まさに間違いなのだ。この作業は本当の進歩からの寄り道ではない。それは進歩の前提条件である。なぜならそれは、当て推量を観察へと変換するものだからだ。システムを観測可能にするために費やしたあらゆる時間は、目を向けることすらできない問題に盲目的にもがいて費やさずに済んだ時間として、何倍にもなって返ってきた。私は、見る能力を任意のものとして扱っていた。だがそれは、他のすべてが立っている土台に近いものなのだ。

良い可視性のかたち

学ばなければならなかった一つの機微は、可観測性とはすべてをログに記録することと同じではない、ということだった。区別のつかない詳細を浴びせかける放水ホースは、それ自体が一種の盲目だ——すべてが記録されているとき、何ひとつ見つけられず、最も信号が必要なときにまさにノイズに溺れることになる。多ければよいというものではないのだ。

良い可視性は、物事がうまくいかなくなったときに実際に答える必要が出てくる問いを軸に設計される。この特定の瞬間に、システムは何を見ていたのか? なぜそれをしたのか? この数値は、正確にどこから来たのか? 要点は、何が起きたのかという物語を、必要に応じて、行動できるだけの十分な明瞭さで再構築できることであって、誰にも読めない内部状態をまるごとログに吐き出すことではない。完全性のためではなく、問いのために設計すること——それがこの技芸のすべてだ。

明かりのついた部屋は、考え方そのものを変える

実際に内部を見られるようになると、作業の性格そのものが一変した。私は理論を立てるのをやめ、見ることを始めた。何週間も本物の謎であり続けた問題——私のあらゆる巧妙な当て推量を生き延びた問題——が、数分のうちに明白になった。なぜなら私はついに、遠くから推し量るのではなく、それが起きるのを目の当たりにできるようになったからだ。

その対比は、私に謙虚さを教えてくれた。暗い部屋は、私が半ば自分にお世辞を言って信じ込んでいたような形で、私を鋭くしたり直感的にしたりしてくれてなどいなかった。それはただ私を遅くし、はるかに頻繁に間違わせ、その上で、自分が間違っていることに気づけないという追加のコストまで私に請求していたのだ。可視性は、問題を簡単にしたわけではない。問題を見えるようにしたのだ。そして見える問題とは、見えない問題とはまったく異なる、はるかに扱いやすい種類のものである。

より深い教訓——推論する前に見よ

結局のところ私は、操作の順序を逆にしていただけなのだと思う。私の本能はいつも、まず推論し、観察するのはその次、そもそも観察するならば、というものだった。いまは、その逆をしようと懸命に努めている。何であれそれについて強い仮説を立てることを自分に許す前に、まずそれを見えるようにするのだ。なぜなら、観察なしに組み立てられた仮説は、白衣を着た当て推量にすぎず、白衣を着た当て推量は、その上に何かを築くものとしては、最も高くつくものの部類に入るからだ。

最も価値のある投資は、しばしば、より賢いアルゴリズムでも、より巧妙なアイデアでもない。それは、より澄んだ窓なのだ。私は長いあいだ、暗い部屋を思考だけで切り抜けようとし、自分の直感を誇りに思っていた。だが私が本当に必要としていたのは、立ち止まり、スイッチを見つけ、ずっと目の前にあったものを見ることだったのだ。

— シグナルもなければ、リターンもない。投資助言ではない。