同僚からこれについてどう思うか、と聞かれた。元の文章が長く、様々なところについて色々思う所があるが、今日は一つに絞って書くことにする。
パズル解決能力
頭の良さの一つに、パズル解決能力がある。ある程度の複雑さを持った系があって、その中で問題が設定され、それを解く、という種類の知的作業だ。簡単なものではマインスイーパーとか、もうちょっと複雑になると物理や数学の大学入試問題。エンジニア採用で使うプログラミング試験も同じようなものだ。将棋やチェスも、この軸のもっと難しいところに位置しているだろう。
ある程度の時間を掛けて知識や系の構造を学ぶと、パズルの解決は簡単で些細な事になる。どの位の複雑さをもった系で解決が些細に感じられるかは、人によってそれぞれだ。三目並べやマインスイーパーが作業だと思える位のパズル解決能力がある人は結構いるが、例えば東大の数学や物理の入学試験がタダの作業に思えるような人は大分少ないだろう。将棋が作業だと思える人は人類史上未だ現れていない。
自分には作業と感じられるパズルが、他の人には手も足も出ないらしいと発見するのは、とても自尊心をくすぐられる。告白すると、これは個人的な体験である。まず、大学受験の時にこれを感じた。その後、渡米して Sun Microsystems で技術者をやっていて、Javaのフレームワークや言語の標準ライブラリの設計に携わった時にも、同じ様に感じた。ここは頂点だと聞いていたが、この程度か。どうもオレは頭がいいらしいぞ、という頂上感。恥ずかしいが、要するに僕は若かった。
元の文章に「田舎初段」という言葉が出てくる。素人よりは段違いに上手だが、その道のプロから見ると桁違いに下手、という真ん中を指して揶揄した言葉だ。頂上感が自尊心のコアになっている時に尊大な田舎初段を見ると、本物はどういう事か教えてあげるために、ちょっと捻ってみたくなる気持ちはよく分かる。
頂上は狭い
でも、こういう頂上感の良くないところは、ここが唯一の頂上だと思ってしまうところだ。パズル解決能力はそれなりに応用範囲が広いから、これが知性の唯一の尺度位に思ってしまうのだ。論理的推論・演繹の無謬性に対する過信と言ってもいいかもしれない。
同じような事が、色々なスケールで起こっている。自分の得意な世界の尺度でしかよその世界を測れず、自分の考え方が優れているという結論に至る。自分の万能感が加速する。
疫病に対する公衆衛生について色々書いている経済学者や評論家とか、まさにこの罠にはまっている。もうちょと狭いところだと、Dev vs Opsもそうだ。静的型付け言語 vs 動的型付け言語も同じ。
最近僕がしみじみ感じている具体例は、ソフトウェア開発のやり方の違いだ。
Sunの時は、多くの人が使うJavaというプラットフォームを慎重に開発してきた。リリースサイクルは年単位で、一度出荷したら互換性を半永久的に保たないといけない。だから、慎重にも慎重に、ちょうど必要なだけの自由度を持ち、他の多くのAPIと一貫性を保ち、過大でも過小でもない適切な抽象化を施したAPIを設計し、入念に色々な角度から眺め回し、ようやく出荷する。そういうモノ作りをしてきた。とても中央集権的な世界。
Jenkinsの時には、半永久的互換性というのは一緒だったが、アーキテクチャを工夫することでプラグインという百花繚乱を可能にするプラットフォームを作った。この世界では、誰かがプラットフォームの一貫性を保つ必要はないから、誰でもコミッタにして全員が自分の城を持って好き勝手にやる封建諸侯体制が最適になる。
そして、LaunchableではSaaSを作っているから、慎重にデザインするという行為の意義の多くが失われた。代わりに、複雑さや実装コストや実行コストや壊れやすさなどから適切なバランスを実現するのがずっと大事になる。
同じソフトウェア・エンジニアリングだって、環境や前提がちょっと変わると、あるべき頂の姿が全然変わってくる。しかし、なかなかそれに気づかない人が多い。銀行のソフトウェア開発を馬鹿にするウェブサービス界隈。いつだって人は知らない世界のことを小馬鹿にしているものだ。
どの世界でも、頂上に近づいていくと、世界が狭くなっていく。その世界で自分に刺激をくれる対等な人達を求めていくと、凄さの指向が自分と揃っている人達としか仕事できなくなる。道を極めるほど、純化して煮詰まっていく。自分がとびきり優秀に思える代わりに、少数の互いを認めあえる同志を除いて孤独になっていく。SunのJava SEの中核のいた人達の中には、未だにOracleに居て同じ事をやっている人達が結構いる。
そういう生き方も結構な事だが、僕は世界が狭いのは嫌だな、と今は思う。
頂きは一つではない
スタートアップに転向し、CTOなどやらせてもらってセールスやマーケティングや経理やらの人と仕事する機会が出来た事で、世界に無数の頂きがあるのだと思えるようになった。色々な世界にいるその道のプロ。自分が今まで知らなかった頭の良さの基準を見つけて、周りの人の新しい素晴らしさを見つけられる、そういう風にありたいと思っている。
そういう視点が出来てからは、見ず知らずの人と話をするのがとても楽しくなった。何に情熱を掛けているのか、何に誇りを持っているのか。自分の求道との間に色々な平行線や補助線を引きながら聞き出していく。
そして、自分の求道において僕がずっと追求しているのは、気持ちよく、効率よく分業するにはどうしたらいいのかという事だ。出来る人も出来ない人も全部を底上げするにはどうするのか、という事だ。少数の力を最大限に増幅するよりも、元気玉のように多くの人の力を結集する仕組みに僕は惹かれる。Jenkinsはそうして生まれた。プラグインの仕組みもそうだ。
「Googleに入るのなんて簡単だ」という元Googlerを見ると、「東大に入るのなんて簡単だ」と言っていた昔の自分を思い出し、微笑ましくちょっと恥ずかしく、甘酸っぱい気持ちになってしまう。若さだ。羨ましくもある。
それは当人にとっては心からの真実なのだ。当人を知る周りの人も「あの人ならそうだろうな」と思うだろう。そうじゃなければ単なる恥ずかしい勘違いだ。しかし、それでもなお、聞く方は将棋の羽生さんが田舎初段を捻り潰すのを見るような後味の悪い感じがしてしまうものだ。
羽生さんはそんな事をしなくていい。あなたの優秀さはそんな事をしなくたって周りの人に伝わっているから大丈夫ですよ、と言いたくなる。
そういう行為に透けて見える、周りの人に対する自分の評価というのは、結局自分を映す鏡だ。自分の周りが駄目なやつばっかりだと思っている人は、だからちょっと胸に手をあてて考えてみてほしいなと思う。
自戒を込めて。