先日の社内勉強会では、「オブジェクト指向のUIデザイン」について共有があった。このテーマは、ディレクターやデザイナー、エンジニアと職種を問わず関係してくるものだ。
UI設計には大きく分けて「オブジェクトベース」と「タスクベース」の2通りの考え方があり、前者は対象物(オブジェクト)を優先的に選択するもので、GUIはこの考え方になる。後者では、ユーザーはまずタスク(やること)を選択し、次に対象物やパラメーターを指定するものだ。操作手順が「名詞→動詞」なのか、「動詞→名詞」なのかと捉えると理解しやすい。
世の業務アプリケーションのおよそ8割は、UIがタスクベースになっているという話があったが、自分の身近な経験の中でも、チェーン店にある食券販売機で食べたいメニュー(オブジェクト)を選択すると、「先にお金を入れてください」とタスクを優先するアラートが出てきて、かなり不親切で使いにくい設計だなと思ったことがある。
食券販売機がないお店であれば、食べたいメニューを店員さんに伝えて、その結果として代金を支払うことになるので違和感はないが、システム開発の世界ではとくに、タスクベースで作られたものが多いと感じる。
UIの改善事例としてあがっていたビデオカメラの液晶パネルの例なども、対象となる動画を選択する前に、「再生」や「編集」といったタスクからたどっていくケースも多く、なかなか目的の操作を実行できないという不便さにもつながってくる。
前職でも経験があるが、社内で利用するイントラネット向けポータルサイトや販売管理システムなどは、デザイナーが介在することなく、社内からあがった要望のみを取りまとめてエンジニアが開発して完結してしまうケースが多く、タスクベースのUI設計でわかりにくい画面になってしまうことが多かった。
システム開発の現場では、業務上の複雑なニーズを満たすために「ユーザーの要求事項」をまとめるが、要求内容を単純化して設計をしてしまうと、「編集する」「削除する」といったタスクが優先され、「何を?」の部分が十分に考慮されないという弊害が発生してしまう。
自分たちが仕事で携わっているwebサイトや業務アプリケーションの設計においては、このようなユーザーの要求を単純に実現することに向かうのではなく、ユーザーが自然に目的を達成できる設計はどうすべきか?という観点を失ってはいけない。
オブジェクトベースで考えることの利点は、設計時に対象物(オブジェクト)を明確に定義していくことで、タスク優先の思考になることを防いでくれることだろう。タスクベースからオブジェクトベースに置き換えることは画面数の軽減にもつながり、その結果、従来の操作手順よりもシンプルになる。
特定の手順に縛られることがなくなることで、ユーザーが自分なりの方法で操作ができるという自由度の向上にもつながるだろう。開発する画面が少なくなることで、メンテナンスの運用コストが下がる点も期待される効果だ。
もちろん、タスクベースの設計が一概に悪いわけではなく、ユーザーの行動をあえて制限することで、無駄な混乱を避けて目的を早く達成できるといった合理的な理由から設計されているケースもあるだろう。
券売機や銀行のATMといった日常的に触れる機会があるUIにおいても、それがオブジェクトベースとタスクベースのどちらなのかを観察することは、客観的な視点を持ってUIの良し悪しを判断する参考にもなる。いずれにしても、それぞれのメリットとデメリットを理解したうえで設計することが重要だろう。身近なところで感じる違和感を放置せず、設計時にフィードバックしていくようにしておきたい。