ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

ユーザビリティを考えるうえでヒントになりそうな『バグトリデザイン』

 みなさん、こんにちは。
 この記事は、「ソフトウェアテスト Advent Calendar 2022」 7日目の記事です。
qiita.com

 「バグトリ」という言葉に惹かれて読んだ、『バグトリデザイン』という本を紹介します。

 最近、「デザイン思考」という言葉をよく聞きます。
 本書にこの言葉はあまり出てこないのですが、良いデザインをするために必要なこととして、「それを使っている人の行動をよく観察する」「それを使う人になりきる」といったことを述べている点では似ていると思います。

 本書の前半で著者は、製品やサービスを使ううえでの「トラブルの元凶は”モノ単体”志向」としています。

すべての事象は、ある特定された場所で「人とモノ」が時間とともに関係性を変化させながら推移しているのが常です。しかし、モノに注目するあまり関係性の片方、つまり人の側を見落とすことがよくあります。モノ単体を観て判断しているため、問題の本質を見抜けずに解決方法を誤ってしまうのです。

 これって、ソフトウェアにおいて「機能としては出来上がってるんだけれど、業務上ではどうにも使いづらい」という話に似ていませんか?

 この本では、ユーザの体験を遮る・損なう要素である「バグ」にはどのようなものがあり、そのバグがいかなる原因で起こるのかを整理しています。
 あくまでも、モノやコトをデザインする方法について述べた本なのですが、この分類は、ソフトウェアにおけるいわゆるシナリオテストやユーザビリティテストの観点として使えるではないかと思いました。

 この記事では、本書で説明されている6つのバグの現象と、それをもたらす7つの原因について紹介したいと思います*1
 自分たちの製品やサービスの使い勝手を考える際に、この6つの視点を眺めてみると、思わぬ欠陥が見つかったりするんじゃないかなと思います。

バグの「現象」

1. 非効率のバグ

定義: 行為の中断や損傷、やり直し、後戻り、無駄があり、次第に行為が非効率になるバグ

 例として、「5千円札や1万円札が使えない、駐車場の自動精算機」が挙げられています。人員削減が目的なのに、係員を呼ばざるを得ない非効率につながっています。

 個人的な体験でいうと、「オンラインバンキングで振込しようとしたら、最後にワンタイムパスワードを求められて、スマホに銀行アプリを入れているうちにタイムアウトに・・・」というのがあります。
 それってユーザ側の準備不足でしょと言われればそうなのですが・・・、「続けて行うべき手続きの途中に突然、事前に済ませておくことが前提になっている作業が割り込んでくる」というのは、見直す必要があるかもしれません。

 レシピをきちんと読まずに料理を始めてしまう料理下手が出会う、「十分に水切りした豆腐」みたいなやつです。

2. 迷いのバグ

定義: ユーザーに迷いが生じて適切な判断・選択ができなくなるバグ

 広いオフィスや会議室などで、「壁面に設定された照明Off/On操作パネルと、実際の照明の対応関係がわからない」といった例が挙げられています。

 Webサイトでいうと、「どこに行けば何ができるのかわからない」というのがありますよね。
 我が家では子ども向け教育サービスを利用しているのですが、そのサイトではログイン中にも関わらず、氏名や住所の入力を求められます。そのため、「今ってログアウト状態なのか?」「手順を間違ったのか?」というストレスにつながっています。

3. 矛盾のバグ

定義: 矛盾をはらんだ結果を生むバグ

 レジ袋のパラドックスが、例として熱く語られています。レジ袋こそ、廃油を再利用したうえで何役も兼ねているアイテムだったのに、それを排して貴重な静製油を使って大量のエコバックを生産していると・・・。

 よかれと思って*2作ったものが、ユーザにはかえって不自由なものになるかもしれない。
 『シニアが使いやすいウェブサイトの基本ルール』では、シニアをターゲットとしてサイトでは、「文中リンクは避ける」ことを勧めています。文中リンクは、ユーザが詳細を知りたい場合に簡単に飛べるように、利便性を目的に入れるものでしょう。ですがシニアにとっては、そのリンクは確認すべきものに見え、集中力を削ぐ要因になることが多いのだそうです。

4. 負環のバグ

定義: 当たり前だと思っているモノやサービス・仕組みについて、実は不便を含んでいるのに気づかず、負のスパイラルから抜け出せないバグ

 運動をしない→太ったまま→体を動かすのが億劫になる→筋力が衰える→運動をしない→ という悲しい例を挙げています。

 わたしはStreaksというアプリを使っています。いわゆる「習慣化」のためのアプリです。
 習慣化したいことを登録し、実行できたらそれを記録していく。すると「何日続いたよ!」とか、「今日も実行すれば、10日連続だよ!」と後押ししてくれる。達成状況を美しいグラフで可視化してくれるのも、モチベーションの源泉になります。

 しかし・・・、一度サボって連鎖が途切れると、かえってStreaksによる励ましがツラくなる。。。
 今日やっても、明日やらなければまた連鎖が途切れる・・・、なら今日はやらなくてもいいんじゃないか・・・。
 そんな驚きの心の弱さが露呈し、「習慣化アプリのせいで、習慣をサボってしまう」という悲しい出来事が発生するんですね。

 いいえ、アプリじゃなくて、悪いのはわたしです。アプリは良いです。お金を払う価値があります。

Streaks

Streaks

  • Crunchy Bagel
  • ヘルスケア/フィットネス
  • ¥800
apps.apple.com

5. 心理のバグ

定義: 不満、苦痛、迷惑、恐れ、不安、怒り、セクハラ、パワハラなどの精神的圧迫のバグ

 スーパーでくりかえされるテーマ音楽が、精神的圧迫につながるという例を挙げています。

 購読を意図したつもりのないメールマガジンをひたすら届けてくるオンラインショッピングサイトや、「ドメインが失効します!」みたいな脅しメッセージを投げまくってくるドメイン取得サービスを思い出します・・・。

6. 誤認のバグ

定義: 勘違いや思い込みなど、誤った認識がトラブルの誘因となるバグ

 ユーザーの動線に沿わせることが考えられていない、駅構内の張り紙やサインを例として挙げています。

 またも、子ども向け学習サービスへの不満をぶつけるのですが、キャンペーンや申し込みの動線がまったくわからず、「このアンケートには回答したか?」「手続きが終わったか?」と迷うことが多すぎます。その結果、「やっていないかもしれないから、一応もう一度やっておこう」とならざるを得ません。何が終わっていて、何を終わらせなければいけないのかがわからず、いつも不安な気持ちにさせられます。

バグの「原因」

 原因の方は、カテゴリーの定義の紹介にとどめておきます。

  1. プロセス因子: 手順の間違いが原因となること。
  2. 属性因子: 個人の性格、性別、人種、年齢、立場の違いなどが原因となること
  3. 慣性因子: マナー、クセ、無意識の行為、スキル、共感反応、拒絶反応など、後天的な経験によって習慣化された行為が原因になること。
  4. 記憶因子: 記憶のしにくさが原因になること
  5. 環境因子: 時空の変化が原因となること
  6. 不適正因子: 不適正なプラン・デザイン・設計・役割などが原因になること。
  7. その他の因子

 属性因子なんかは、ターゲットとする地域や世代を絞っている場合には、特に配慮すべきものでしょう。
 たとえば子ども向けにアプリをデザインする場合の心に留めておくべき事項として、『子どものUXデザイン ―遊びと学びのデジタルエクスペリエンス』では以下のように述べています。

子どものためにデザインすることは、決して、大人を対象としたコンテンツや画像やインタラクションの「レベルを下げる」ことではありません。ユーザーの認識、身体、感情面の現在地を把握し、ユーザーを適切な位置に導けるデザインが求められます。かといって、子ども向けのデザインを、大人向けとはまったく別のものとしてとらえてしまうと、優れたデジタルデザインの根幹をなす重要な慣習やパターンを見失うことになり、やはり望ましくありません。

 先に挙げたシニアでも同様ですが、開発側と利用側で、モノの見え方・感じ方は異なってくる。自分の感覚が絶対的で標準的だと思ってはならないですね。

 他の因子も、「よくないデザインに至る原因」として考えてみると面白そうです。

まとめ

 モノやコトのデザインにおける失敗とその原因の分類を、ソフトウェアやサービスのテストの観点として使えないか?というお話でした。
 本書では、この「現象」と「原因」をマトリクスにすることで、「バグ」の分析を行うことが述べられています。何だかQAの仕事と似ているようですね。

 書いているうちに、ふだん使っているサービスへの日ごろの鬱積をぶつける場になってしまいました。今日はこの辺で・・・。

Project 365 #71: 120317 Box Of Cogs

*1:ここでいう「バグ」は、プログラムというよりは、「ソフトウェアデザインの問題」を意味しています。

*2:エコバックの場合は、よかれとさえ思ってもいないかもしれない。本来必要なかったはずの需要を無理やり創出しているというのが、著者の見立てのようです。