最初の頃に手がけた案件で、ある SIer が開発中の、画像データに特化したアセットマネージメントのシステムがありました。このシステムの、要件定義段階のモックアップがあり、それに対してエクスパートレビューと改善デザインを行うという仕事でした。
要は、管理対象の画像データのデータベースがあり、そのデータベースに対して CRUD(Create, Read, Update, Delete)を行うためのユーザーインターフェースが必要とされていました。
エンジニアが作ったモックアップのポンチ絵を見て、僕は強烈な違和感を覚えました。このシステムの基本要件は、画像(メタ)データの照会、追加、変更、削除、他システムへの送信といったものだったのですが、モックアップでは、初期画面において、「照会」「追加」「変更」「削除」「送信」というボタンがそのまま並んでいるのです。そして例えば「照会」ボタンを押すと、画像データのサムネール一覧が検索機能などと共に表示され、そのうちひとつを選ぶと画像の内容が表示されます。初期画面に戻って今度は「変更」ボタンを押すと、同じように画像のサムネールが表示され、ひとつを選ぶとメタデータ変更フォームが表示されます。いずれも同じ対象データを同じように一覧表示するのですが、そこでできることは初期画面で選んだ項目(タスク)に依存していて、別なことをやろうとしたら一度初期画面に戻らなければならないのです。
担当のエンジニアは、このインタラクションについてこれといった課題意識は持っていませんでした。恐らく発注者側もそうだったのでしょう。むしろ、定義されたユーザー要件を適切に画面設計に落とし込んだと思っているようでした。また、一覧画面においてサムネールをドラッグ&ドロップできるようにするといったアイデアを自慢げに語っていました。
僕の感じた違和感というのは、当然、その基本的なシンタックスについてでした。このモックアップのシンタックスは、「動詞(タスク選択)→ 目的語(対象画像データの選択)」となっています。しかし、同じオブジェクトの集合に対して操作をするのに、あらかじめタスクごとにモードを生成する必要があるでしょうか。タスクによってビューの表現が全く違うのであればまだ分かりますが、これでは単にユーザーの自由を無意味に制限しているだけです。
そこで僕は、まず最初にサムネールを一覧させて、そこで選んだものに対してアクションを選択するという、「目的語 → 動詞」のシンタックスに作りかえたデザイン案を作成しました。それが GUI の自然なインタラクションだと思ったからです。
その後、僕はいろいろな案件で沢山の業務アプリケーションを目にすることになりました。それらのほとんどは、何らかの形でデータベースに CRUD する要件を持っていましたが、驚くことに、かなりの割合でシンタックスの問題があったのです。僕にとってこれはもうカルチャーショックみたいなもので、改善デザイン案を出すのに躊躇してしまうほどでした。しかしいざ提案してみると、操作が合理的でかつ画面数が減るということで、それなりに「なるほど」と言ってもらえるのでした。どうやら彼等の多くは、日々様々な画面を設計しながらも、シンタックスについては考えたことがなかったようです。