第1章


デザイン工程


本章はどのようにしてあなたのソフトウェアに最高のデザインを選択するかについて、いくつかの基本的な秘訣を提供します。優れたソフトウェアデザインには、あなたのユーザの要求に対する慎重な分析を伴います。結局のところ、あなたの製品を実際に使用するのは彼らなのです。彼らの要求を見分け、これらの要求に合致する手段を見つけることは、デザイン工程における重要な最初の一歩となります。

デザイン工程にユーザを関わらせる

あなたの製品を、目標とする視聴者の要求にしっかりと合致させるための最善の方法は、あなたのデザインをユーザの精査にさらすことです。デザイン工程のすべての段階においてこれを行うことで、あなたの製品の機能は正しく動作し、改良の必要があるのかという点を明らかにする指針となります。

人々にあなたの製品(の試作品)を試用する機会を与えるとき、あなたはデザイン段階の初期では予想もしなかった使い勝手の問題を発見するでしょう。こうした問題は発見と解消が早いほど、後であなたの時間と予算を節約することになります。

あなたのユーザの要求を明確に見分けることは、効果的な解決方法をもたらす製品を開発するために役立ち、一般的に、その製品を学んで使用することを簡単にします。これらの改良は製品の競争力、売り上げの増加、そして顧客満足度の向上につながるでしょう。

あなたの視聴者を熟知せよ

あなたが目標とする視聴者を見分け、理解することは、あなたの製品をデザインする際の重要な第一歩です。

同じく重要なのが、関連市場における類似製品の解析です。その製品が視聴者の何を目標としており、あなたの製品と競合するのか、もしくはうまく共存するのかを見極めるためです。他製品のデザイナーによって行われた取り組みを理解することは、あなた自身が目標とするユーザの要求への洞察を与えてくれることでしょう。

あなたがデザインする種類のソフトウェア製品を使用する人の、典型的な一日を記述したシナリオ【筋書き】を作ることは役に立ちます。この人物が扱うであろう、さまざまな環境、道具、制約について考えてください。できれば、実際の現場を訪れて、あなたが自分の製品で手助けしようと考えている作業を、人々がどのように行っているかを学びましょう。

デザイン工程の全体を通じて、あなたの試作品を試験するための、あなたが目標とする視聴者にうってつけな人たちを見つけましょう。彼らの反応を聞き、彼らの関心を記述するようにしてください。人々とその能力—コンピュータではなく、彼らの能力です—を念頭において、共にあなたの製品を開発しましょう。

この点を意識することで、アプリケーション開発者もしくはインタフェースデザイナー、つまりあなたは、莫大な知識という財産と、顧客が理解しているであろう水準よりも、ずっと込み入ったあなたのアプリケーションへの理解を手に入れるでしょう。

あなたはその知識を、最適なデフォルト設定を選択するためや、最適な情報の提示のしかたを決定するために用いるべきです。しかし、あなたは自分自身のためにプログラムをデザインしているのではない、という点を忘れてはいけません。あなたがデザインするのはあなたの要求や慣習のためではなく、あなたの(潜在的な)視聴者のためなのです。

ユーザの作業を解析せよ

あなたの視聴者を定義したら、あなたのユーザが行うであろう作業を定義し、解析する必要があります。

あなたの製品が助けとなるであろう作業で関連付けられた、精神的な、もしくは概念的なモデルとなる人々を発見しましょう。精神的なモデルとは、絵に描いた作業であり、作業の構成要素、その構成、そして作業の流れ全体についての想定事項を定義します。

あなたの製品が行う作業で関連付けられた、精神的な模範となる人々を発見する助けとなるのが、彼らはどのように、同様の作業をコンピュータ無しで行うのか、ということを観察することです。

彼らはどんな技術を用いるのか?どんな概念、もの、そして仕草でユーザはこの作業と結びついているのか?あなたの製品にこうした事柄を反映させるためにデザインしてください。

ただし、ユーザがコンピュータ抜きで作業を行うときの手順を、いちいち模倣することにこだわってはいけません。すべての工程をより簡単に、もしくは効率化するために、コンピュータ環境ならではの利点を活用しましょう。あなたのデザインにどのようにユーザの心のモデルを取り入れるべきかの詳細については、「ユーザの心のモデルを反映せよ」(40ページ)を参照してください。

試作品を製造せよ

初期デザインを作成するために、作業とその構成要素についての情報を使用し、次にあなたのデザインの試作品を作成しましょう。試作品の作成はあなたのデザインの方向性を試験して、それがユーザのために、どの程度よく動作するのかを検証するためのよい方法です。

あなたは試作品を構築するために様々な技法を用いることができますが、そのすべてがコードの記述を伴うわけではありません。たとえばあなたは、ユーザが特定の作業の手順を辿っていくような、あなたの製品の外見を視覚的に表すストーリーボードを作成することができます。また、あなたの製品の一部の機能を模擬実験したり、それをどのように操作するのかを実演するために、試作ソフトウェアを用いるのもよいでしょう。

注:試作は素早く行い、デザインの向上だけを目的とすることを心に留めておいてください。試作品のためにコードを記述するのであれば、そのコードを最終的なあなたの製品に流用することは避けましょう。

ユーザを観察せよ

試作品を手にしたら、目標とするユーザに試用させて、それに対する反応を観察しましょう。ユーザを注意深く見聞きして、あなたが試作品に定義した、特定の作業を通じて作業を行う、彼らの反応をビデオテープに撮影してみてください。ユーザ観察はデザイン作業がどの程度うまくいっているか、問題があるのかを判断する指針となるでしょう。

製品デザイナーと技術者が可能であれば、試験を見るように奨励しましょう。ただし試験結果に影響を与えないように、ユーザとのやりとりは避けてください。

ユーザ試験の間、あなたの試験範囲の限度を、あなたの製品の鍵となる領域にしっかりと定めましょう。作業の分析において、あなたが識別した作業に焦点を当ててください。

あなたの参加者に対する指示は明確かつ完全なものにしましょう。ただし、あなたが試験しようとしている事柄を、どのように評価するつもりなのかは説明すべきではありません。

あなたのデザインを分析するために、そしてあなたの試作品を見直すために、ユーザ試験を記録した情報を利用しましょう。

二番目の試作品が手に入ったら、あなたのデザインに対する変更点の効果を試験するために、第二回目のユーザ観察会を実施しましょう。あなたは目標とする視聴者の要求に応えて、そして優れたソフトウェア(「優れたソフトウェアの特徴」(31ページ)を参照)の特徴がみられる、使い勝手の高い製品を作り出したと確信が持てるまで、好きな頻度でこの工程を繰り返すことができます。

ユーザ観察会実施のガイドライン

デザイン工程の間にユーザから反応を得る方法はたくさんあります。これには使い勝手の試験、認識ウォークスルー、グループウォークスルー、オンサイト観察、発見的ウォークスルーが含まれるでしょう。

あなたは以下のガイドラインをユーザ観察会の実施の際に利用できますが、より一般的な別の性質の試験に対しても、同様に適用できることを心に留めておきましょう。

試験は実験ではないということを忘れないでください。あなたは統計的な解析に足るだけの、量的なデータを得ることは無いでしょう。ですが、人々があなたの製品を使用することが難しいかどうかを知ることはできるので、この情報を、あなたの製品を改良するために利用してください。

もし時間と予算が許せば、この種の試験を実施するための、専門的な、使いやすさ試験の施設で作業することを検討してください。これが実行できそうに無いのであれば、あなたの社内の同僚の部門間で、あなたの製品の試作品を試用させて、彼らの反応を集めることができないか試してみましょう。これだけでもあなたの製品の使いやすさは向上するでしょう。試験をまったく行わないことに比べれば、こうした試験ははるかに優れているのですから。

もしあなたが、自分のユーザを観察する試験を実施することを選んだのであれば、これらのガイドラインに従うことが、最も有意義なデータを採取する役に立つでしょう…

  • まず自己紹介を行い、観察の目的を説明しましょう(ごく一般的な用語で)。多くの場合、あなたが何を観察しようとしているかについて触れるべきではありません。あなたが試験するのは自分の製品であって、参加者に対してではないことを、彼らに明確にしてください。
  • 参加者に対して、試験はいつまでかかるのか、そして、いつでも、どんな理由でも終えてかまわないということを伝えてください。ユーザは試験を最後まで終えるためのプレッシャーを感じるべきではありません。他にも、試験の中断は根底にある作業が難しすぎるか、複雑なので単純化すべきであることを示しているのかもしれません。
  • 一般的な試験の方法論として、考えを口に出すという方式があります。この方式を用いるのであれば、どのように行うかを説明します。観察の間、参加者に思ったことを声に出すように、作業中に心の中に何が現れたかを言うように頼みましょう。

    参加者の考えとやりかたを聴くことで、彼らの意図と問題解決の方策だけでなく、製品に彼らが期待することを調査することができるでしょう。作業中のユーザからの聞き取りは、莫大な量の有意義な情報を与えてくれることに気がつくはずです。特に、ユーザが持っている作業の精神的なモデルの詳細について発見があるでしょう。

    あなたはどのようにしてコーヒーを一杯用意するか、といった単純な作業を説明させることで、ユーザが考えを口に出すことの練習をさせることができます。

  • 参加者が行うことを一般的な用語で述べましょう。参加者が用いる用具や手順を全て説明してください。研究施設を利用しているのであれば、部屋にある設備の各部の目的を説明して(ハードウェア、ソフトウェア、記録装置、その他)、試験の中でどのように用いるのかを説明してください。もしユーザ観察を始める前に、あなたの製品の実演が必要であれば、あなたが試験しようとしている事柄は決して実演してはいけません。
  • 非常に重要な点として、参加者があなたの製品で作業を行う際に、補助者や分析者、その他の何者も、一切の干渉および余計な手助けを加えてはいけません。これが、どのように人々が実際に製品とやり取りするのかを見るための最善の方法です。

    たとえば、参加者が難しそうにみえた途端にあなたが回答を与えてしまったら、ユーザ観察において獲得できる、もっとも価値ある情報を失うでしょう。すなわち、どこでユーザは躓いたのか、そしてどのようにして解決方法を見つけるのか、それを明らかにしていくという点です。

注:あなたが介入して手助けをすべき状況は存在しますが、試験を始める前にこういった状況が起こりうるか判断しておくべきです。たとえば、手助けする前に最低3分は試行させるように決めておくとか、助けを出すつもりの問題の明確な組み合わせを決めておくといった具合です。とはいえ、もし参加者がひどく難儀しているようなら、参加者に完全にあきらめるよう、助け船を出した方がよいでしょう。

  • あなたが発見しようとしていた事柄を説明し、参加者の質問があればそれに答えることでお開きにしましょう。
  • 結果を利用しましょう。観察において、あなたはユーザが予想もしていなかった行動をとるのを見ることでしょう。参加者が間違うとき、あなたの最初の直感は彼らの不慣れと理解力の不足のせいにしようとするかもしれません。これはよくない反応の受け取り方です。ユーザを観察する目的は、あなたの製品のどの部分が使いづらいのか、不完全な製品デザインのために効果的でないのかを学ぶためなのを忘れてはいけません。
  • パターンをよく見てください。あるユーザが何か問題を抱えているからといって、それは全てのユーザがそうなることを意味するわけではありません。なぜ一人のユーザが問題を抱えたのかを注意深く検討し、その理由が簡単に説明できるようであれば無視し、さもなくばソフトウェアが不完全かもしれない点を認識することを検討してください。
  • すべての結果を製品管理、市場調査、技術者、ヒューマンインタフェースデザイン、文書作成、品質保証の代表者から構成される、機能間チームで評価してください。これらの各参加者は、各自の専門知識のレンズを通して結果を見ることで、ユーザの試行錯誤から、さまざまな使いやすさの論点への、価値ある見識を与えることができます。

デザインの決定を行う

あなたのアプリケーションにおいて主眼とする機能のデザインを決定するときに、大切なのはコストを計ることです。金銭面だけではなく、将来的な効果に対してのです。

毎回あなたのアプリケーションに機能を追加すると、以下のことが起こるでしょう…

  • あなたのアプリケーションの肥大化
  • あなたのアプリケーションの低速化
  • あなたのアプリケーションのヒューマンインタフェースの複雑化
  • あなたは既存の機能の改良よりも、新機能の開発に時間を費やすことになる
  • あなたのアプリケーションの説明書とヘルプはより広範になる
  • あなたは既存の機能に悪影響を与えるかもしれない変更を取り入れるという危険を冒すことになる
  • あなたのアプリケーションの動作検証に必要な期間を増加させることになる

適切な機能を選択し、それを実現するために必要なリソースを正しく割り当てることは、後々あなたの時間と労力を節約することになるでしょう。不適切な機能の組み合わせを選んだり、適切なデザイン、エンジニアリング、試験、説明書のリソースの割り当てに失敗することは、致命的な不具合が発見されたり、ユーザがあなたの製品の使いかたを理解できないといったときに、後になってからしばしば重い代償を招きます。

以下のセクションは、あなたの製品に機能を追加を行う前の検討に取り入れてほしい、追加の検討材料を示します。

機能の雪崩を避けよ

あなたが単純なアプリケーションを開発しているのであれば、プログラムの当初の意図とまるで関係のない機能を追加したくなるという誘惑にかられるかもしれません。

この「機能の雪崩」は、遅い上に複雑で使いづらいという、膨張したインタフェースをもたらします。あなたのプログラムの当初の意図にこだわって、主な作業の流れに関連性のある機能だけを搭載するように心がけてください。

最良の製品とは、一番多くの機能を備えたものをいうのではありません。

最良の製品とは、各々が提供する解決策で、互いの機能を緊密に結びつけることによって、最も有用となるものなのです。

80%の解決策を適用せよ

デザイン工程において、もしあなたの製品デザインに問題を発見したら、80%の解決策を適用することを検討するとよいでしょう。すなわち、あなたのソフトウェアを、あなたのユーザのうち少なくとも80%の要求に応えるようにデザインするということです。このデザインの手法は、一般的に単純化のために適しており、問題へのよりエレガントな取り組み方といえます。

もし、あなたが目標の視聴者のうち、20%のパワーユーザのためにデザインしようとすると、あなたのデザインはユーザの残り80%にとって便利ではなくなるかもしれません。少数派のパワーユーザは、機能に対する深い理解を持っていると考えられますが、あなたのユーザの多数派は同じようには考えないでしょう。

あなたのデザイン工程に広い範囲のユーザを伴うことは、あなたが80%の解決策を発見する助けとなるでしょう。


←第1部:アプリケーションデザインの基礎
→第2章:優れたソフトウェアの特徴