優れたUIとは何なのか、それは体系化できるものなのか?を考える。
導入
先日、先輩から聞いた話で、
「最高のUIは飛行機のコックピットだ。熟練すれば、状態を確認するのも、何か動作させるのも一瞬でできる。」
というものがありました。
普通は使いやすいUIといえば、iPhoneのようなできる限りのシンプルさを指すことが多いように思いますが、コックピットの例は少し毛色が異なるように思います。
この問題を考えるときに切り口は2つあるように思います。
- コンシューマー向きかプロ向きか
- クリエイティブな作業か単純作業か
コンシューマー向きかプロ向きか
例として挙げられるのが、instagramとphotoshopでしょうか。
前者は簡単に画像のイメージを変えられるのに対し、後者は豊富な選択肢から顔の輪郭すら細かく調整できます。
ニーズとしての違いは、大まかな操作ができればいいのか、細かいところまで自分でコントロールしたいかだと思います。
後者はどうしても選択肢が多い分複雑になります。
クリエイティブな作業か単純作業か
例として挙げられるのが、数式の証明とただの計算でしょうか。
証明においては、答えがなくコンピュータや下請けに投げても処理できないようなものです。
ニーズとしての違いは、やることが決まっているか未定かでしょう。
先のphotoshopの例でも輪郭の調整は自分でコントロールしたいしたいけど、それがグラデーションとして自然か、影の配置は妥当か、などの調整は答えが決まっているのでコンピュータに任せられます。
プログラミングも同じ
プログラミング言語でも、Javaなどのチューリング完全と謳われている汎用言語から、SQLなどのDSLまであります。 また、汎用言語については様々なライブラリがあり、それらを組み合わせることで用途をしぼって簡単にしていく、というのが一般的になっています。
まとめ
要は、どこまで顧客のニーズを抽象化できるか・自動化できる(誰がやっても同じ)とみなせるかどうか。
優れたUIの例として、
「ニーズ」→「UIの例」
を考えると、
「実行のタイミングだけ制御したい、後は単純作業」→「実行ボタンだけ用意してあとは裏で処理する」
「一つ一つの項目について目視で確認して確定させたい」→「一つ一つの項目の承認をボタンででき、押すと次の項目に飛べる。」
「各項目について、都合の悪いものは文言を変えたり非表示にしたい」→「パターン化して自動処理させる。できなければ、各項目で文言編集・非表示などを選択できるようにする。」
などが挙げられると思う。