ラボノート No. 1:メタ・オルト・エンド連続体――新しいはしご
抽象のレベル間の移動に名前をつける
複雑なテーマについてのよい会話は、いくつものレベルのあいだを行き来します。ソフトウェアのチームは、製品全体の話をし、次にサブシステム、次にひとつの関数、さらにたった一行へと降りていき、また上がってきます。医師は患者から臓器へ、臓器から細胞へと移ります。歴史家は時代から戦いへ、そしてひとりの兵士の手紙へと移ります。私たちはこうした跳躍を絶えず、それもたいていは黙って行っています。その沈黙が、意外なほど多くの混乱を生みます。一方がまだ森の話をしているのに、もう一方はすでに一本の木の前まで歩いていってしまっているのです。
メタ・オルト・エンド連続体は、そうした跳躍をはっきり口にするための、小さな語彙です。それぞれのレベルを何と呼ぶべきかを決めるものではありませんし、抽象についての理論でもありません。ただ「移動」に名前をつけるだけです。この言葉を共有する人なら誰でも、会話がどちらへ向かっているかを声に出して言えるように。
3つの言葉
オルト(ortho)は、いま私たちがいる場所、つまり現在の議論のデフォルトのレベルです。名前はギリシャ語のorthós(「まっすぐな」「正しい」)から来ています。どの分野にも、それぞれ自然なオルトがあります。コードレビューなら、話題になっている関数かもしれません。デザイン会議なら、ひとつの機能全体かもしれません。オルトは、この目盛りのゼロ点です。
メタ(meta)は、ひとつ上のレベル、より大きな全体像のほうへ向かうことです(ギリシャ語のmetá、「超えて」)。「ちょっとメタに上がりましょう。この変更は、アプリケーション全体にどう影響しますか?」
エンド(endo)は、ひとつ下のレベル、細部のほうへ向かうことです(ギリシャ語のéndon、「内に」)。「エンドに降ります。この検索は、実際にはどう実装するんですか?」
3つの箱ではなく、連続体
レベルは3つだけではありません。オルトをゼロとする数直線を思い浮かべてください。メタは、そのテーマにある限りの抽象のレベルを上へと伸び、エンドは、ある限りの細部のレベルを下へと伸びていきます。ひとつの関数から、エンドへ降りてアルゴリズムへ、次にデータ構造へ、さらにメモリ上のビットへ。あるいはメタへ上がってモジュールへ、次にシステムへ、さらにそのシステムが支えるビジネスへ。
一度に何ステップも動くのも、簡単に言えます。「2レベル、メタへ」。書くときは、記号を繰り返すか、大きな跳躍なら上付きの数字をつけます(後述)。そして議論が新しいレベルに落ち着いてそこにとどまるなら、基準を置き直せばいいだけです。「新しいオルト」、あるいは「オルトをサブシステムにしましょう」。
光学のたとえ
視覚で考えてみましょう。オルトは普段の視覚です。裸眼、あるいは普通の視力を取り戻すだけの眼鏡。エンドに行くのは、顕微鏡を手に取ること。より小さなものが、はるかに細かく見えます。メタに行くのは望遠鏡。存在するなかで最も大きなもの、惑星や銀河を見せてくれます。厳密に考えると、このたとえには少し無理があります。どちらの道具も、視野を「狭める」からです。それでも多くの人にとって、望遠鏡は自然と「上がる」感じがします。見せてくれるものが大きいからです。そこが本当のポイントです。抽象のレベルとは、考えている対象のスケールのことであって、一度にどれだけ視野に収まるかではないのです。(拡大をまったく伴わない、純粋に一歩引いた視点なら、畑の上に舞い上がるドローン、衛星写真、あるいは地図を思い浮かべてください。)
なぜわざわざ
予告なしの跳躍には、現実のコストがあるからです。デザイナーが「これは遅すぎる」と言ってワークフロー全体を指しているのに、エンジニアが「このループが遅すぎる」と受け取ったら、二人は別々のことについて10分間言い争うことになりかねません。跳躍の瞬間にひとこと、「メタに行きます」「エンドに行きます」と言うだけで、全員が同じレベルにとどまれます。レベルが絶えず切り替わる分野、つまりソフトウェア、デザイン、エンジニアリング、教育で、いちばんよく効きます。とはいえ、ズームのレベルが大事になる会話なら、どんなものにも当てはまります。
ハヤカワのはしごの上に
私はこの語彙を、有名な先祖がいるとは知らずに考え出しました。言語学者のS・I・ハヤカワは、『Language in Action』(1939年)で抽象のはしごを描いています。彼の例は、ベッシーという名の雌牛です。いちばん下には、ベッシーそのもの、この世に一頭しかないこの動物。ひとつ上の段は「牛」。そして「家畜」「農場の資産」「資産」と続き、最後は「富」です。段を上がるごとに、細部がより多く切り捨てられ、カバーする範囲がより広くなります。
ハヤカワは、同じ段にとどまったままの抽象化(dead-level abstracting)、つまりひとつの段に張りついてしまうことを戒めました。高い段で動けなくなると、何ひとつ現実に触れない空疎な一般論を語ることになります。低い段で動けなくなると、要点のない細部を積み上げるばかりになります。彼の教えは、意識して上り下りすること、そして何より、上ったあとは例を持って降りてくることです。例のない抽象は空っぽで、抽象のない例はただの逸話の山にすぎません。
アルフレッド・コージブスキーの一般意味論の伝統から来た彼のアイデアが、あと2つ、この話のすぐ近くにあります:
- 地図は現地ではない。 どんな言葉も、すでに現実のものの抽象であり、それより一段上にあります。自分がどの段にいるかを知ることが、両者を取り違えないための最初の防御です。
- 二値的思考と多値的思考。 何でも二者択一(よいか悪いか、全体像か細部か)として扱うのか、それとも幅として見るのか。だからこそ、これは「高レベル」と「低レベル」を切り替えるスイッチではなく、「連続体」なのです。段の数は、そのテーマが持つだけあります。
メタ・オルト・エンド連続体がつけ加えるのは、会話の部分です。ハヤカワは、ひとりひとりが自分の思考や文章のなかではしごを上り下りすることを教えました。この言葉は、二人以上の人が一緒に移動するためのものです。上ること(「メタに行きます」)、降りること(「エンドに行きます」)、あるいは帰ってくること(「オルトに戻ります」)を宣言して、誰も別の段に取り残されないように。ハヤカワの原則を、声に出して実践するわけです。(デザイナーのブレット・ヴィクター(Bret Victor)が2011年に発表したインタラクティブなエッセイ「Up and Down the Ladder of Abstraction」は、同じ原則をソフトウェアのツールに当てはめています。上ったり降りたりできるインターフェースです。)
記号
書くときのために、それぞれの状態には記号があります:
- ↖ メタ(U+2196、NORTH WEST ARROW)
- ⌀ オルト(長い斜線の入ったゼロ。U+2300、直径記号)
- ↘ エンド(U+2198、SOUTH EAST ARROW)
まとめて書くと、連続体は↖⌀↘になります。斜線入りのゼロの斜線が伸びて、左上を指す矢印と、右下を指すもうひとつの矢印になった形です。複数のステップは、繰り返し(↖↖)か上付きの数字(↖³)で書けます。手で入力するのは面倒なので、テキスト展開のマクロやAIアシスタントに任せるか、単に言葉で書くのが向いています。
実際に使うには
この語彙は、「たとえば」や「言い換えると」と同じように、軽く使うのがいちばんです。儀式ではなく、切り替わる瞬間の合図として。この言葉を共有する二人なら、「待って、そこはエンドに降りて」とか「ちょっとメタに引いてみよう」と言えば、相手がどこに立っているかがすぐにわかります。そして「オルトに戻ろう」は、脱線をやんわり終わらせる言い方にもなります。脱線が、あてもない寄り道ではなく、はしごを上り下りする意図的な小旅行になるからです。