TA: 異なるユーザーインタフェースを用意するということですね?
AC: そうです。ウィジェット一式を用意しておいて、自分たちで組み合わせて使ってもらうのです。その日自宅に戻ってからプログラムに着手し、頭と手を同時に動かして作りました。これは基本的に、フローティングメニューのことです。そのメニューにはプッシュボタンとリストボックス、チェックボックス、ラジオボタンがあって、それらはすべて Windows のコントロールとして馴染みがあるものでした。
Windows を起動した後、上部の小さなウィジェット [en.wikipedia.org]のパレットが置かれている部分で、メニューボタンの絵をクリックし、それを下のほうにドラッグし、ウィンドウの上でドロップします。すると新しいボタンがウィンドウの中に現れます。そして画面の上部から、今度はテキストボックスをドラッグしてきてウィンドウの上でドロップし、それからボタンの上で右クリックをして、ラバーバンドをテキストボックスまでドラッグしてきて放す。するとプッシュボタンがテキストボックスとつながる。
それからプッシュボタンを押せば、テキストの一部がテキストボックスに送られます。
TA: エンドユーザーのほうがなんとか折り合いをつけて、そういった作業をうまく実行しなければならなかったのですよね?
AC: そうなのです。ワープロを趣味で操作する人など、誰もいませんでした。コンピュータはまだまだ、職場で使うためだけに購入されるものだったのです。
このアイデアは、使う人が自分自身でシェルを視覚的にプログラムできるようになるということを意味していました。当時は OS/2 [en.wikipedia.org] というOSがあって、それが主流でした。OS/2 にはシェルがあったのですが、私が作ったプログラムには、10分程度の操作で OS/2 のシェルを Windows 内に再現できる機能があったのです。
これはすごい機能でした。ドラッグ&ドロップができる Windows アプリケーションは、これが最初でした。私は、何かをドラッグしたときにそれが動いているように見えるようにもしました。Windows の画面上で、まだ誰もアニメーションを見たことがなかった時代です。
出納係であれば、画面上には、自分が日常的に実行する3つのアプリケーションに対応した3つのボタンが与えられます。
中間管理職クラスの人々には、必要な機能をすぐに起動させるためのボタンと、自分がいじっているファイルだけが、小さなディレクトリに提示されます。
アナリストであれば…、そうですね、高度なシステムを開発しているシステムアナアリストであれば、月曜日にはあるユーザーのシェルだったものが、作業を進めるうちに変わっていき、火曜日には全く別のユーザーシェルにできるといった具合です。
TA: コーディングしたことについてずっとお話をされていましたが、今ここで急に、まったく違うやり方で開発した話になりましたね。実はコアとなる要素は、「誰がそのソフトウェアを使うのか」という点にこそあるということを発見されたのでしょうか。
AC: ソフトウェアを実行する人のことについて考え始めたのは、SuperProject でクリティカルパスを扱っていたころからですので、もう少し早かったと思います。何人かに、「プロジェクト管理について、何かご存知のことはありますか?」と尋ね回っていました。
正式なメソッドはなく、ただ日常的に出会う人々に尋ねるだけでしたが、最終的にある広告代理店で業務促進担当をしていたキャシー・リーという女性と話してからは、その後たくさんの仕事を彼女に基づいて進めることになりました。
結果的には、私のプログラムが使えないものだということを発見したのが彼女でしたので、屈辱的な気分も味わいました。つらい経験でした。しかし「キャシーならどうするだろう? ここで何をほしがるだろうか?」と自問したのは正解でした。
これが、ペルソナのアイデアの始まりの始まりでした。キャシー・リーのためにデザインするというミスは犯しましたが、キャシー・リーという人物像の要約のようなものを作り出し、私の頭の中でペルソナとしたのです。
私はプログラマーでもあったので、ユーザーと実際に話をしたくない、ユーザーと話すのは厄介だ、と思っていました。
TA: いろいろなことを考えながら、実際にはコーディングをしていたのですね。
AC: そうです。Tripod という、先ほどお話しした「シェル組み立てセット」プログラムを作ったときも同じでした。それは、バンク・オブ・アメリカで話を聞いたITマネージャのために設計したもので、その時すでに3つのレベルのユーザー(上級アナリスト、中間管理職、高卒の出納係)がいることがわかっていました。
当然、それぞれのレベルがひとつのペルソナになるのです。
TA: それでどうされたのですか?
AC: そのプログラムを売ろうと試みましたが、それは単に、世間にたくさんある製品の1つに過ぎませんでした。素晴らしいソフトウェアですが、それを使って何ができるのかをはっきり示すことが誰にもできなかったのです。その後ロータス社のような大企業も含め、ソフトウェア業界の人々何人かにそのプログラムを見せたところ、「ほおー、これはちゃんとできているソフトウェアだね。一種のシェルとして、マイクロソフトに売り込んだらどうだい?」と言われたのです。
その時点で私はまだ、電話をして「見てほしいものがある」と直接いえるほど、ビル・ゲイツ氏 [en.wikipedia.org]のことを知りませんでした。でもマイクロソフトで仕事をしていた友人は何人かいましたので、彼らに、ビル・ゲイツ氏に会わせてくれるよう頼んだわけです。そうして、ビルの側近の1人から招待を受けることができました。
その人は「こちらにお越しください。あなたが作ったものを私が見てみましょう」と言いました。それで彼に会いにシアトルに行きました。その人の名前は忘れてしまったのですが、そのときカンファレンスルームには彼と私の2人しかいなくて、そこで私が自分のコンピュータを取り出してソフトウェアのデモを始めたわけです。
彼はデモを3分くらい眺めた後に椅子の背もたれに寄りかかり、「ビルがこれを見ないといけないな」とつぶやきました。
TA: いい感じですね。
AC: それからビルと会う時間を設定して、プログラムのデモをしに再びシアトルに行きました。画面上でドラッグのアニメーションを見せたとき、ゲイツ氏は私を見て「これは、いったいどうやっているんだ?」と聞き、Windows 上で動くそのようなアニメーションはかつて一度も見たことがないと話してくれました。「魔法を使っています」と私は言いました。他になんて言えばよかったのでしょう?
私がデモを続けていると、ビルはそこにいた人たちを振り返って、「僕たちこそが、こういうことをやっていないといけないんじゃないか?」と言ったのです。とても嬉しいことでした。
その部屋の中にいた1人、タンディ・トロワー氏 [gatech.edu]は「これを欲しがる人なんているのでしょうか? これが何の役に立つのですか?」と言い、私が彼に売り口上を言おうとして息を吸ったときにビルがまた振り返り、世間の人々がこのプログラムを欲しがる理由を説明し始めたのです。それからビルは私の方を向いて、「これを購入したい。これは、人々がコンピュータを使って仕事をするやり方を変えるだろう」と言ってくれました。
TA: デモをしている人には、何よりも嬉しい言葉ですね。
AC: この上なく嬉しく思いました。そしてビルは、私と私のプログラムを Windows チームのメンバーに引き渡したのです。当時は、ひどい代物でありながらもプレゼンテーションマネージャ [en.wikipedia.org]が主流で、Windows は戦略的に価値のあるソフトウェアだと見なされていませんでした。
TA: これはいつ頃のことでしょうか?
AC: ビルに Tripod のデモをしたのは 1988 年の3月で、マイクロソフト社がまだ IBM と共生関係にあった頃です。先ほど触れたように、私のプログラムでできたことの1つは、OS/2 のプレゼンテーションマネージャを再現することでしたので、政治的な対立が発生しました。私は、マイクロソフトの人々に面と向かって説明したのです。「見てください。私は OS/2 のプレゼンテーションマネージャを今から作りますよ(カチャ、カチャ、カチャ、バーン!)」とね。
もしもあなたが OS/2 の製品管理担当者だったら、激怒するはずです。
TA: マイクロソフトは、そのプログラムを購入したわけですか?
AC: ええ、購入してくれました。ゲイツ氏の言う、これまで見た中で最高の仕様に合わせてコードを拡張し、同じプロジェクト内にいたマイクロソフトの品質監査チームに渡しました。
契約を交わしてすぐに、私たちは Tripod という名称を Ruby に変更しました。なぜなら、私はその製品をすでにロータス社や他の会社に見せてしまっていたからです。これは特に深い意味のないプロジェクト名称でした。いま現在 Ruby [ruby-lang.org] という名の言語が存在していますが、当時の Ruby は、私たちが用いていたコードネームだったのです。