LoginSignup
5
0

オブジェクト指向UIデザインと向き合ってみた

Last updated at Posted at 2023-12-14

はじめに

本記事はAll About Group(株式会社オールアバウト) Advent Calendar 2023の15日目の投稿です。

今回は オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ) を読み、ワークを実践してみて学んだことや感想をまとめた記事になります。
私は現在、弊社が運営するBtoBコンテンツマーケティングプラットフォームであるPrimeAdの開発に携わっています。その際、機能の実装だけではなく、ユーザーの課題を解決するためのHowを画面に落とし込むプロトタイピングから担当することがあります。約1年ほど担当し感覚的には慣れてきましたが、ユーザーが増えつつある現在、より快適なUIを提供できるようになりたいと思い、改めて勉強しようと本書を手に取りました。

オブジェクト指向UIだとなにが嬉しいか

オブジェクト指向のUIは、対象となる物事(オブジェクト)と、それに何をできるかということがユーザーに見えている状態です。対立する概念として紹介されるタスク指向UIは、設計者や管理者がユーザーに行わせたいタスクが前提にあり、それを思い通りに実行させるためだけの動線が用意されている状態です。両者の特徴的な違いとして、オブジェクト指向UIは名詞が先行し、まずオブジェクトを選んでから行動を選ぶこと、タスク指向UIは動詞が先行し、まず行動を選んでからそのパラメータとしてオブジェクトを選ぶことが紹介されています。
タスク指向UIでは、特定のタスクを実現するために、ユーザーの行動の自由度を下げたり、ユーザーにとって複雑な手順になったりする場合があります。オブジェクト指向UIであればユーザーは最初から対象そのものやその性質、状態、できることなどを把握した上で行動できるため、迷ったり無駄な動作をすることが少なくなります。また、タスク指向の場合画面遷移や内部処理が増え保守が困難になるなど、開発者にとってもデメリットがありますが、これらもオブジェクト指向に沿えば改善するとされています。

持ち帰りたいところ

知らなかったことや考えを改める必要があると感じたのはこのようなところです。

良いデザインにはユーザーが自ら合わせられる

ユーザーがそれぞれ抱く具体的な要求に応えようとすると他のユーザーには使いにくくなっていくので、ある程度ユーザーが共通して持っている心理や性質にあわせてデザインをしようということが説明されています。それ自体はなんとなく知っていたのですが、ある程度ユーザーのニーズを切り捨てるようなネガティブな感覚がありました。そうではなく、ユーザーが与えられた道具(UI)に対して適応して望む行動を実践できるのなら、それが良いデザインであるというのが意外なところでした。まずオブジェクトがあり、それに何ができるかをあらかじめ示しておけるオブジェクト指向のUIは、ユーザーに見通しを与えてある程度自由に目的を達成させられるためこのようなデザインに合っているということです。

タスクは変わっていく

これは私自身も担当サービスの使われ方を見て感じるところですが、タスクは進行するうちに増えたり変わったり、実行前の想像とは異なる形になることがあるとされています。タスク指向で作っていけば対応にきりが無いのは明らかですが、オブジェクト指向の場合通常オブジェクトとアクションの組み合わせで表されるタスクが、ときにそれだけでは実現できないところも出てきます。その場合、タスクを反映する方法として次のような方法が紹介されています。

  • 表示形式に反映する
    • 同じオブジェクトでも、強調するプロパティを変えるとそれにフォーカスして行うタスクを実行しやすくなる
    • たとえば、店のリストとして名前の文字列を羅列するか、外観の写真を強調するか、地図にマッピングするかで想像する使い方が変わる
  • 初期値に反映する
    • 入力フォームの初期値を設定することで、入力してほしい内容をある程度限定したり入力を省略させたりする
  • フィルタリンググループに反映する
    • 同じオブジェクトのコレクションでも、フィルタリングされたグループによってタスクが異なる場合があるので、予めフィルタリングされたグループを意識させる
    • たとえば、注文のリストは「未完了」「発送済み」「完了」に最初から分かれていれば、発送したいときどのグループを見ればよいかわかる

ワークをやってみて

いくつかの課題を解決するアプリケーションのUIを設計してみるワークが紹介されています。こちらを実践してみて最も感じた課題は以下のとおりです。

オブジェクトの汎化

実現したいタスクに登場する言葉からオブジェクトを抽象化するのはある程度できているようですが、さらに一段汎化するということがなかなかできませんでした。たとえば、会議室を予約するアプリケーションの例で、オブジェクトを「会議室」ではなく「スペース」と考える、会議室のディスプレイの有無を確認したいというタスクから「ディスプレイ」を「設備」として汎化する、といったことに思い至りませんでした。逆に言えば、会議室の他にホール、ディスプレイの他にホワイトボードなどの例が出せれば気づけたのではないかと思います。
本書にも記述のあるとおり、最初から作るものの理想形を直接イメージすることはできず、目についた問題箇所を直すことでしか理想に到達することはできません。一番最初のプロトタイプの時点から、このオブジェクトを元にしたUIが実装されている世界で、課題を抱えたユーザーなら何をするか、特に課題と思っていないユーザーなら何をするか、というのをある程度具体的にシミュレーションしていくことが解決につながるのではないかと考えます。

最後に

感覚でやっていたところを再確認する部分が多いのかなと考えていましたが、想像以上に新たな発見がありました。この記事を読むエンジニアの方の中でも実務で似たようなことをしている方はそう多くはないかもしれませんが、何かの役に立てば幸いです。

参考文献

ソシオメディア株式会社 (著), 上野 学 (著, 監修), 藤井 幸多 (著). オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ. 技術評論社. 2020年

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0