Lambdaカクテル

京都在住Webエンジニアの日記です

推測するな、計測せよ、ただし予測せよ

会社で1on1をやった。そのときに、ツメが甘い状態を脱することで、より良いエンジニアになれるという話で盛り上がった。よく詰められている状態だと大きな成果を発揮できている。だからその状態を持続させたい。他方でツメが甘い状態になりがちである。それは何故なのか、どうすれば良いのか、といった話をした。

知性は予測である

人間は手持ちの知識をもとに、環境(世界)に立ち向かい、より良い状態を作ろうとする。ここで、環境がどうなるかを予測するというプロセスが発生する。「これはこうなるのではないか」という類の作用をもとに、うまいこと立ち回ろうとするのである。 端的に言うと、知性とは予測である

こういった話は『ファスト&スロー』でも言及されていたような気がするけれど、はっきりと覚えていない。

自分の場合

さて、急に話を卑近なレイヤーに戻すと、自分の場合割と行き当たりばったりな暮らしをしがちで、思考や仕事といったレイヤーにもそれが漏れ出しがちである。精緻な思考によって未来予想図を紡ぎ出してすぐれた予測を行うというよりは、リスクを取った賭けに訴えるタイプだ。つまり、環境をオラクルとして使って、そのコストを無視しがちである。換言すると、「失敗してみればよい」というタイプである。

ただしこのやり方には明白なデメリットがあって、すなわち「何度も失敗する」という帰結をたどりがちである。予測のプロセスを重んぜざるが故に失敗し続け、そのツケを払うことになる。

このデメリットはチームワークだと発散的に悪化する。というのも、一人の場合とは異なり、失敗すると他人がバチを被るからである。ソロプレイヤーであるならともかく、チームワークで仕事をやる場合には、狙って狙って打率100%を狙わなければならない。

あとまったく離れた分野での話題になるが、友達とFPSとかをやっているときに一人で突っ込んで死にがちである。たぶん、関連している……。

予測と統合

ところで、仕事やプライベートで輝かしき知性の発露が行なわれているとき、他人が利用できる単一のパッケージへと複数の知識をまとめるプロセスが同時に起こっていることがほとんどだ。これをいったん統合と呼ぶことにしよう。この統合は、例えば知識を理解するための構造化を行ったり、ロジックに内在する矛盾の排除が行なわれたりする。よく有用な知見と呼ばれているものは、この統合の過程を何度も経て、知識が使い安い形に仕立て上げられている。この状態をうまく目指すのがいわゆる知的生産なのだろう。本稿では統合を通じた知的生産をいかに達成するかという話題と自分の振舞いをどうするかという話題を関連付けて考えることとする。

予測しなくても良くなる世界

前述したように自分は予測をあまりせずに暮らせてしまっているのだが、不思議なことにそれでも生きていける理由はといえば簡単で、知的な予測をしなくてもそこそこ生きていけるからである。またその状況がどんどん加速するからである。物を買うなら自動的に合計金額が表示されるし、なんならカードをかざすだけで決済は終了する。せいぜい、カードの残高を意識して使いすぎないように留意さえしておけば、ほぼ知的負荷の無い状態で買い物という行為が可能だ。釣り銭の残額に気を払うとか、自分が買う金額を覚えておくといった行為はもはや必要ない。ホームにはホームドアがあるので、フラフラしていて突然死ぬという状況は起こらない。安全である。言い換えると予測は環境の危険を回避しながら生き存えるために発達してきた思考回路なのであって、危険が排除された現代の社会、とりわけ都会では不要となりつつある。

予測するヒトから反応するヒトへ

この傾向が続くと、おそらく自分は予測するのではなく反応するような生き方を続けることになるだろう。たとえば、SNSでは反応的な思考が大勢を占めており、ひとにぎりの予測的な意見に無数の反応がぶら下がるという形態をとりがちだ。

その一方で反応的な思考がすべて悪いかというとそうではなく、あたかも化学反応のように他者との交流を通じて何らかの知見を取り出せることもあるが、その深さはわりかし限定的だと思うし、統合には欠けがちである(実際、知見を取り出すという最終過程では誰かがやりとりの総体を統合してひとつの文章に構成している)。

予測しにくくなる世界

社会の発展が予測を不要にしていくという現状がある中で、社会の発展によって予測がそもそも困難になるという側面についても触れる必要がある。

社会がどんどん拡大するうちに情報技術によって情報伝達のコストはほぼゼロになり、人々のリアクションタイムも極小化した。環境が人々によって構成されている(もちろん自然的要素も多分に含まれているが現在の経済は主に自然ではなく人が支配的である)以上、リアクションタイムの極小化は環境の流動性が上昇する、すなわち激しく変動することを意味している。相互作用が強まることで環境は予測しづらくなり、その速度によって予測から得られる果実は少なくなっていく。

環境を予測可能にしていくこと

環境が複雑である一方、コストを払って環境を予測可能にし、人間の活動をやりやすくする行為が古来より行なわれている。例えば河川の治水事業がそうであるし、政治というシステムで暴力を排除し、利害関係を調整することもそうである。言語ですら、混沌とした思考の世界に秩序を与えるツールだ。

そうやって予測可能な領域を生み出すことで、利益が得られることがある。銀行とかソフトウェア産業とかはそういうことをやっているし、例えばソフトウェアの設計はドメイン領域における予測であり、見積りとは時間に対する予測だ。

長い回り道をしたが、本題に戻ると、自分は設計するときにどう考えて仕様を理解していけば良いかなど分からず、当てずっぽうになりがちで困っていたが、予測をうまく組み合わせればよいのだという示唆が得られた。想像力を働かせて、どうなっていたら一番うまくいくのか、うまくいかない場合がありそうか、といったことを、未来から思い出すように具体的に取り出してみる。それはコードや仕様書といったものから直接導出されるようなものではなく、人間を中心にした創造と想像のプロセスだ。自分はどちらかというと触っていじって色々考えるタイプだったので、じっと考えるというプロセスがあっても良いのだということに新鮮さを覚えた。ツメの甘さを克服するには、予測をすること、そしてその予測と誠実に向き合うことが大切なのだと思う。

推測するな、計測せよという有名な言葉があるが、思考というプロセスの根本には予測というプロセスが横たわっているのが面白いと思った。

あわせて読みたい

blog.3qe.us

Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?