管理画面設計者のための安全設計ガイドラインを作りました
はじめに
こんにちは。freee株式会社で税務申告ソフトのデザインをやっているはるたんです。
最近、ユーザーエラー防止のためのデザインというものに興味があり、いくつか書籍を読んだり、日々の業務での知見を元に社内で安全設計ガイドラインというものを作りました。
世の中にはヒューマンエラーを頻発させるようなシステムがまだまだたくさん存在するので、少しでも誰かのために役立てればと思い、一部内容を修正して、noteで公開することにしました。
本記事では、「設計時に気をつけること」「8つの安全原則」「具体的な防止策」についてまとめています。
設計時に気をつけること
1. 設計時には、最悪のシナリオを想定し、そこから逆算してリスクを潰すことが大切である。
そのために以下の2つの方法が有効である。
1. ヤコブ・ニールセンのユーザビリティ・ヒューリスティックやフォルトツリー分析等を有効に活用する。
2. ゴール、ノンゴール、アンチゴールのリストを作成する
・ゴール : 現在の作業で目指しているもの
・ノンゴール : 現在の作業で目指していないもの
・アンチゴール : 絶対に起こって欲しくないことを書き出す
2. 設計時に「検証可能であるかどうか」を意識する。
設計時にはテスト計画まで考えておけると良い。ざっくりした進め方を書いておくと以下の3つを意識すれば良いと思う。
1. 設計時に潜在的なリスクを洗い出す
2. どういう状態になればリスクが潰せていると言えるかを定義する
3. それを確認するためのテスト計画まで考える
安全設計における8つの原則
1. 利用者にストレスを感じさせてはいけない
ミスが最も起こりやすい状況は利用者がストレスを感じている時である。日常生活において、私達は作業を早く押し進めるような様々な圧力がかかっており、そのような圧力はストレスの原因になる。
また、利用者が操作しているシステムのユーザビリティが悪いと、ストレスを悪化させミスを引き起こしやすくなってしまう。
ユーザーにストレスを感じさせないシステムを提供するため、ユーザー調査やユーザビリティテストを積極的に実施していくと良いだろう。
2. 系列は異なるようにデザインする
作業に熟練している人ほど、無意識的に作業を行う傾向がある。本来、Bという行為をする必要があるのに、先ほどやっていたAという行為をしてしまう、というミスも頻繁に起こりうる。
このような問題が起きる原因は、2つの同質な行為が同じ系列に含まれており、1つの行為が他方よりも馴染み深い時にうっかりミスを起こしやすいからだ。
この問題に対する対策として、出だしの段階が同質でその後分岐するような手順を避ける必要がある。具体的には、同質の操作を複数の対象に実行する必要がある時は、対象を別のページで表示する。どうしても1つのページ内に操作対象を表示しなければならない時は、操作対象の違いがはっきりと分かるようにデザインする。
3. 異なる目的の操作は全く違う見た目にする
正しい対象と間違ったものの共通点が多い時、対象に対して類似したものに対してエラーを起こしやすい。
この問題に対する対策として、異なる目的の操作は全く違う見た目にする必要がある。
4. 作業の割り込みに耐えられるデザインにする
Aという行為をするつもりが、その行為自体を忘れてしまうことでミスを引き起こすことがある。ある行為を忘れてしまう原因のほとんどが、作業の割り込みである。
作業の割り込みが発生し、作業に復帰した時に、元の作業に戻れるようにするには次の3つの対策が有効である。
1. ステップ数を最小にすること。
ステップ数が多いほど、作業の割り込みが発生した時に思い出せない。
2. 完了に必要なステップ数をリマインドする。
忘れても思い出させてあげる。
3. 強制選択機能を活用する。
その作業をしないと他の作業に移れないようにする。
5. 操作対象中のものをはっきりと伝える
ユーザーはマルチタスクをしていたり、作業の割り込みが頻繁に起こる状況下で我々のシステムを操作している。このような状況下では、作業内容を忘れてしまい、対象に対する注意が散漫になり、類似した対象を間違えて選択してしまう可能性がある。
この問題を引き起こさないために、作業対象をユーザーにはっきり伝えるようにしよう。
6. モードはできるだけ使わない、どうしても必要な時はどのモードにいるかをきちんと明示する
特定のモードに入っている時、ユーザーは自分がどの状態にいるかを理解するのが難しくなる。モードにいる状態で作業の割り込みが発生してしまったら、作業内容を忘れてしまう可能性が一気に高まる。
できるだけモードをなくすようにすることが望ましいものの、どうしてもモードを使うことを避けられない場合は、どのモードにいるかをユーザーにはっきりと明示する必要がある。
7. ユーザーにとって必要な情報だけを表示する
ユーザーが利用しない情報を表示しておくと、情報漏えいのリスクや誤操作を起こす可能性が高まる。
また、ユーザーにとって良くわからない機能を表示しておくことで、ユーザーが処理する情報量が増え、操作中に迷いを生んでしまう。そのため、ユーザーが利用する機能だけに絞って表示することが望ましい。
8. 生じたエラーを発見しやすく、修正しやすくする
上記7つの原則に則ってデザインされたとしても、エラーが起き得ないシステムは存在しない。大切なのは「エラーが生じた時に、それをユーザーに認知させ、すぐに修正しやすいようにシステムを設計すること」である。
例えば、ユーザーが行なった操作に対するフィードバックをきちんと伝えることで、意図しない操作を行なった時にすぐにエラーに気がつくことができる。
理想はアンドゥ機能によって、エラーの内容をすぐに元に戻すことがだが、それが難しい場合でも、エラーを修正する手段を用意しておく必要がある。
リスク別のエラー防止策
リスク高の防止策
※中以下 + 以下の防止策
1. 承認フローを用意
リスク中の防止策
※リスク小 + 以下の防止策
2. 簡単に実行できないようにする
3. 明らかにおかしい操作を実行しそうな時にアラートを表示する
4. 実行した作業を元に戻せるようにする
リスク低の防止策
5. 情報の冗長性を高める
6. 作業対象をはっきりと明示する
7. 必要ない機能は表示しない
参考書籍
おわりに
いかがでしたでしょうか?ここで書いた内容は、上記の参考書籍を読めばほとんど書いてあるので興味を持った方は読んでみてください。
また、本ガイドラインは運用しながら改善していくつもりですので、フィードバックも積極的に募集中ですー!お気軽にコメントください!!!
この記事が気に入ったらサポートをしてみませんか?