すでに存在するものを、私は何度も作り直していた

このプロジェクトで、私はすでに存在するものを作ることに、驚くほど多くの時間を浪費してきた。世界がすでに持っていたツールやインフラ — 動いていて、テスト済みで、しかも無料で手に入るもの — を、丁寧に、磨き上げ、愛情を込めて作り直したのだ。そのどれもが、着手した瞬間には完全に正当化されているように感じられた。だが全部を合わせてみると、それはこの取り組み全体のなかでも、最も大きく、最も避けられたはずの無駄のひとつになっていた。

これを認めるのは居心地が悪い。なぜなら、その一つひとつには、当時は健全なエンジニアリング判断のように聞こえる理由が伴っていたからだ。その理由が、ほとんどの場合、私が直視したくなかった何かを正当化するための後付けにすぎなかったと気づくまでには、ずいぶん長い時間がかかった。

理由はいつもそれらしく聞こえる

自分で作ることを正当化するのは、決して難しくない。自分で作れば、汎用ツールよりも自分の具体的なニーズにぴたりと合う。ブラックボックスを信用する代わりに、一行残らず完全に理解できる。既存の選択肢には、避けられる欠点や煩わしさがある。依存関係も、バージョンの移り変わりも、他人が下した決定も、背負い込みたくない。

これらの主張は、どれも時として、本当に正しい。だからこそ厄介なのだ。なぜなら、ほとんどの場合、それらは本当の理由などではまったくなく — プロジェクトにとって何が最善かとは何の関係もない動機に、立派に聞こえる衣をかぶせたものにすぎないからだ。

作るほうが、組み込むよりも楽しい

その下にある正直な事実、口に出したくなかったものはこうだ。新しいものを作るのは創造的で、満足感がある。それは楽しい部分であり、本物のエンジニアリングだと感じられる部分であり、自分で決定を下し、無から何かが形になっていくのを眺められる部分だ。対照的に、他人のツールを組み込むのは、細かくて、苛立たしく、どこかみじめでさえある — 不慣れなドキュメントを読み、自分なら選ばなかった設計上の判断を回避し、完全には理解していない相互作用をデバッグするのだから。

だから私は「自分で作ってしまえばいい」へと手を伸ばした。それが正しい判断だったからではなく、より心地よい判断だったからだ。そして決定的なことに、私はその好みをエンジニアリング判断の言葉で着飾り、自分がやりたいことに突き動かされた決定を、まるでプロジェクトが必要としていることに突き動かされたかのように見せかけたのだ。後付けの理由は誠実だった。だが同時に、それはほとんどの場合、ただの仮装でもあった。

代償は、本当に私自身のものだった問題だ

本当の代償は、作り直しの一つひとつに注ぎ込んだ数週間ですらなかった — それはそれで十分にひどかったが。代償は、その数週間が何から奪われたものだったか、ということだ。解決済みの問題を作り直すために費やした時間はすべて、本当に未解決で、本当に私自身のものだった唯一の問題 — 既存のどのツールも私の代わりに解けなかったこと、そもそもこのプロジェクトが存在する理由そのものだった、あの具体的な難問 — に費やせなかった時間だった。

それは、私だけが取り組むはずのものだった。世界はすでに汎用のインフラを解決済みにしていた。私の実際の問題を解こうとする者は、私以外に誰もいなかった。それなのに私は、自分の最も希少で最も価値ある資源 — 限りある集中力 — を、まさにそれを最も必要としない部分に注ぎ込み、その間、それをすべて必要としていた部分は待たされていた。私は完全に逆さまにしていたのだ。

車輪の再発明は、永遠に払い続ける税金だ

私が過小評価していたもうひとつのことは、自分の版を作るのが一度きりのコストではないという点だ。それは永続的な負債である。自作のツールは、今や私のものとして、維持し、デバッグし、拡張し、ドキュメント化し続ける対象になった。永遠に、たった一人で。そのバグを見つけて直してくれるコミュニティはない。自分で書く以外のドキュメントは存在しない。理解できない壊れ方をしたとき、尋ねられる相手は誰もいない。なぜなら世界で唯一の専門家は自分であり、しかもその自分は、それがどう動くのかをもう忘れているからだ。

私が見限った既存のツールは、大勢の人々によって維持され、私がたどり着くよりずっと前に、無数の他のユーザーがその縁にぶつかることで鍛え上げられていた。私の代替品を維持していたのは、他にやるべきことが山ほどある、たった一人の疲れた人間だった。その非対称性は、作った当日には表に出てこない。それはその後の毎日、静かに、他のすべてに課される税金として現れ、そして複利で膨らんでいく。

自分で作ることが、本当に正しいとき

公平を期すために言えば、私は「何も作るな」へと過剰に補正したいわけではない。自分で作ることが本当に正しい判断であるときもある。問題となっているものが、まさに自分の核心的な問題そのもの、本当に難しい部分であるとき — そのときはもちろん作る。それこそが仕事なのだから。十分な選択肢が存在しないとき。既存の選択肢が、具体的に言葉にして擁護できる理由によって、本当に、具体的に間違っているとき。

その最後の点が、私の試金石になった。そしてそれは有用なものだ。すでに存在するものの代替品を作る前に、私は今、すべての既存の選択肢が私の実際のニーズに対してなぜ失敗するのかを、具体的に、声に出して述べることを自分に強制している。「自分のもののほうが好きだ」ではない。「向こうのは煩わしい」でもない。具体的で、擁護できる理由を。それを示せないなら — そして自分が望むよりもはるかに頻繁に、私には示せないのだが — そのとき私はエンジニアリングの決定を下しているのではない。より楽しい選択肢を正当化しているだけであり、おとなしく退屈して、すでに動いているものを使うべきなのだ。

独創性は、それが要求される場所で使え

最も助けになった捉え直しは、独創的な努力を厳密に限られた予算として考えることだった。深く、新しく、ゼロから取り組む仕事に使える能力には限りがあり、その一単位を世界がすでに解決した問題に費やすたびに、それは自分だけが解ける問題から直接奪われた一単位になる。独創性が貴重なのは、まさにそれが希少だからであり、それを解決済みの問題に費やすことは、何を犠牲にするかという点で、最も高くつく種類の無駄なのだ。

だから規律とは、直感に反して、ほとんどあらゆる場所で可能な限り退屈で型どおりであること — 借り、再利用し、不完全だが動くツールを受け入れ、他人の設計の煩わしさを飲み込むこと — であり、それはまさに、独創性が本当に仕事である唯一の場所で、心から独創的でいられる余裕を持つためなのだ。目的地のために何かを残しておけるよう、乗り物については徹底して非独創的であれ。

より深い教訓 — 目標は目的地であって、乗り物ではない

すべては、私が気づかずに犯していたひとつの取り違えに行き着いた。私は、ものを作ること前進すること と、いつのまにか同一視していたのだ。両者は同じではない。ツールは乗り物だ。それは決して目的地ではなかった。すでに何十もの形で存在しているものの、美しく手作りされた版を作ったところで、誰も私に報いてはくれなかった — そして当然ながら、実際の審判者である市場は、私が作り直した配管がどれほど優雅かなど、まったく気にも留めなかった。

唯一意味を持ったのは、本当の目標に向かってどれだけ距離を進んだか、それだけだった。そして車輪の再発明とは、私が理解するに至った通り、完璧に立ち止まったままでいるための、最も風光明媚で満足感のある方法のひとつなのだ — 生産的だと感じ、本物の成果物を生み出し、懸命に働き、そしてどこにもたどり着かないための。作ることで私が避けていた仕事こそが、そもそも私が取り組むべき唯一の仕事だったのだ。

— シグナルなし、リターンなし、投資助言ではない。