人とコンピュータの関係を考えると、二者間には常にインタフェースが存在します。本連載では人とコンピュータを介在するインタフェースに着目し、インタフェースとそれらを世に生み出すプロダクト開発について議論します。初学者の方からプロフェッショナルの方まで、何らかのプロダクト開発のヒントを持って帰っていただけるような連載を目指しています。
はじめまして。Helpfeelの開発部に所属している西山と申します。スクリーンショットツール「Gyazo」のプロジェクトマネージャーとして、人間の思考や創造の可能性を拡げるソフトウェアを追求しています。
工学と社会学を大学で修めた筆者は、ツールを介した人間の行為と、その結果としての社会現象に関心があります。本稿では人間が起こし得る誤りとその訂正可能性について、ユーザーインタフェースの観点から検討し解説したいと思います。
ソフトウェアが「誤りを犯す」?
人は誤りを犯します。私たちが何かをなす限りにおいて、この事実は避けることができません。産業活動においては小さなミスが重大な事故につながることがあり、これらはヒヤリ・ハット事例と呼ばれ重要な指標とされています。人間活動が組み合わさってできる社会もまた、人間が誤りを犯すことを前提として、法や慣例を含むさまざまな制度が考案され、そして実施されてきました。今日の民主主義にいたる文明社会の発展の歴史は、人間にまつわる誤り訂正の歴史と言っても過言ではないでしょう。
このような生身の人間に対して、機械でできたコンピュータは誤りを犯さないと一般には信じられています。しかし、実際はコンピュータも物理的な実体である以上、電磁気的な現象の結果としてエラー(error)が発生します。人間のコンピュータの違いは、コンピュータではこうしたエラーが誤り訂正(error correction)と呼ばれるアルゴリズムによって、私たちが知覚できないレベルにまで取り除かれている点です。この優れた性質は古典計算機以外では自明でなく、量子コンピューティングにおいては最前線の研究領域となっています。
いかにコンピュータが正確でも、それを操作するのは人間です。人間が誤った指示を与えれば、出力される結果もまた誤ったものになります。人間はインタフェースを介して機械やソフトウェアを操作するのですから、誤りはそれらと人間との界面、すなわちユーザーインタフェースで生じます。Webデザインにおいては特に、こうした誤りを意図的に引き起こすものがダークパターン(dark pattern)と呼ばれるようになりました。
これとは反対に、人間に熟考を促すようなインタフェースも追究されてしかるべきです。つまりはインタフェースを改善することによって、人間の誤りを減らせるはずです。人類の可能性を拡張するプロダクトを作っている私たちエンジニアは、常にこの視点を持っていたいものです。誤りの訂正を可能とするユーザーインタフェースにはいくつかの類型が見られることから、以下でそれぞれについて詳しく見ていきます。
①誤りを可視化する
筆者が子どものころ、とある学習塾に通っていました。そこでは間違った答えを書いた問題には採点時にチェックマークが付けられ、それら全てに丸が付くまで、つまり全問に正解して満点になるまで、繰り返し問題を解く必要がありました。
「赤ペン」に代表されるように、赤は一般に注意を促す色です。交通信号の赤信号や禁止を示す交通標識のほか、ソフトウェア開発ではエラーを示す色としてもお馴染みでしょう。
統合開発環境(IDE)においては、より直接的な方法でエラーとその位置を提示します。処理に失敗した箇所には赤の波線(red squiggly line)で下線が引かれ、どこがエラーの原因であるかを示します。
文中の修正すべき箇所に赤色で文字や記号などを書き込むことは、出版・印刷業では校正という名前で古くから行われてきたもので、日本語では「朱(あか)を入れる」とも表現されてきました。かつては紙というインタフェースを介して人々の間で習わされていたものが、現代ではコンピュータの中で即座に実行・描画されているといえるでしょう。
エラーの提示と訂正のプロセスにおいて、入力フォームのバリデーションがユーザーとしては馴染み深いものです。Webにおける入力フォームは、これもまた書面でのやりとりを模したインタフェースですが、不適当な入力に対して赤いスタイルが、そしてその近くにエラーメッセージが表示されます。ユーザーはこれを確認しながら、赤いエラーが出なくなるまで、つまりは塾のテストで満点が取れるまで、フォームの提出を繰り返せばよいのです
②作業内容を確認させる
家庭用ゲームカートリッジの記憶容量が限られていたころ、新しいセーブデータを保存する際、ときにはセーブデータのどれか一つを消去しないといけない場面がありました。セーブデータのような大事なものを消そうとしたときに、みなさんも次のようなメッセージを目にしたことがあるでしょう――「本当に消去しますか?」
問いかけられることではじめて、人は自らの行為を省みることがあります。対話(dialogue)は問いかけを中心とする会話形式であり、ソクラテスが議論で用いたことはあまりに有名です。
ダイアログ(dialog)あるいはモーダルダイアログ(modal dialog)は、このような問いかけの効用をデザインに応用したインタフェースです。ユーザーはいったん立ち止まって、アクションの意図が正しいかどうかを確認する余地を与えられます。
対話型ユーザーインタフェースのこのような拘束的な性質、あるいはそれがモードを持つ(modal)ことは、しばしばスムーズなユーザー体験を損ないます。このインタフェースが真価を発揮する場面は、めったに起こらないと想定されている操作や、データの消去などの後戻りできないアクションにこそあるでしょう。モーダルの存在はまた、誤った操作に対する一種のガードとしても作用します。重要なデータをうっかり消してしまったという悲劇を、ユーザーインタフェースを介することである程度まで防げるわけです。
より手の込んだ確認ダイアログとしては、対象となるデータの名前を入力させるというものもあります。ユーザーは文字列を正しく入力することが求められ、そのうえ自身がタイプした文字列を目で見て確認させられます。プロジェクトの削除など、比較的大きな単位でのデータ消去には、これくらいの安全弁を設けてもやりすぎにはならないでしょう。
③後からやり直せるようにする
第16代アメリカ合衆国大統領リンカーンは多くの逸話で知られていますが、その中に、南北戦争で自らが司令する北軍の将軍を譴責(けんせき)する手紙が、死後に書類箱の底から見つかったというエピソードがあります。リンカーン本人が手紙を送るのを忘れたのでなければ、書類箱にいったん「投函」したあと、やはりそのまま送らないのが賢明と判断したのでしょう。実生活においても、ある行為を形だけ実行しておいて、あとからその必要性を検討することが役に立つ場合があります。
ソフトウェアにおいてアクションはしばしば可逆的であり、それを実行する前の状態に実際に「戻る」ことができます。アンドゥ(undo)と呼ばれるこの機能はその体験があまりに自然すぎて、ブラウザの「前に戻る」ボタンやスマートフォンのスワイプジェスチャーがユーザーインタフェースだと認識すらされていないかもしれません。実際、アンドゥおよびリドゥ(redo)機能は、グラフィカルインタフェースの歴史と同じくらい古くから存在していたものです。コンピュータの記憶容量が許す限り、操作を元に戻すための履歴(history)は維持されます。
ごみ箱もやはり昔のデスクトップからあるアイコンですが、これもまた削除という操作のやり直しを実現するユーザーインタフェースと言えます。そこに投げ込まれたファイルは実際に消去されているのではなく、ごみ箱という名前のフォルダーに移動しているだけです。
従量課金制のクラウドストレージでさえ、ユーザーが削除したと思ったファイルは一旦ごみ箱に移動し、30日などの一定期間後に自動的に消去されます。この場合、削除してから30日間はデータを復元する猶予が与えられていることになります。
現代の手紙であるところの電子メールも、メールクライアントによっては一定時間内であればメールの送信を取り消せる機能を備えています。ユーザーである私たちには、本当のところメールが送られているのか送られていないのか知ることはできません。しかし私たちにとって重要なのは、メールを「確かに送信した」という行為に対する認識であり、それを仮想的にでも実現することもまた、ユーザーインタフェースの大切な仕事のひとつと言えるでしょう。
おわりに
「弘法も筆の誤り」ということわざがあります。弘法大師のような書の達人でも、文字を書き損じることがあるという意味です。筆もまた思想や記録を残すためのインタフェースであり、誤りを減らすための改善にはとどまるところがありません。実は筆をよく吟味して選んでいた大師のように、すぐれた成果をあげるインタフェースの創作に私たち開発者も寄与したいものです。