私は、多くの古いUNIXベースのアプリケーションを新しいWebベースのアプリケーションに近代化する必要があります。 UNIXアプリケーションは完全にキーボードベースです(つまり、「04」で4番目のアプリケーションを選択、「Enter」で次のフィールドに移動、「M」でメニューに戻るなど)。これらのレガシーアプリケーションのユーザーは、これは、ショートカットを知っているため、これらのアプリケーションの操作が非常に高速です。
彼らが新しいウェブベースのバージョンを見たとき、彼らはしばしば延期されます。彼らはたくさんのクリックを目にし、すぐに彼らはそれほど生産的ではないように感じます。問題の一部は頑固さ、一部はトレーニング、一部は新しいインターフェイスが直感的ではない可能性があることです。
ユーザビリティの観点から、これらのユーザーをガイドするために実行できることは何ですか?スピーディーなデータ入力を可能にするために、どのような種類のショートカット、機能、およびオプションをWebアプリケーションに組み込むことができます/組み込む必要がありますか?
(たぶん、それはユーザーに「Tab」キーと「File> Print」を紹介することの問題です。)
哲学的背景
ユーザーにとって、システムはユーザーインターフェイスです。これは実際にはプログラマーのインターフェースの定義です。インターフェースがユーザーが気付かない同じままである限り、他のすべての部分を好きなように変更できます。ただし、ユーザーインターフェイスを変更するとすぐに、ユーザーの生活に影響します。
DA01は、データ量の多いアプリケーションに適していますが、学習曲線は非常に大きくなりますが、キーボードが最良のインターフェイスです。
ただし、直感的ではありません。それらは実際にどのように使用されるべきかをユーザーに伝えません。彼らは通常、ハンドブック、社内ヘルプ、および多くのトレーニングを必要とします。
つまり、すべてのユーザーが使用しているのと同じ古いキーボードショートカットを使用して、新しい/訓練を受けていないユーザーに直感的なインターフェイスを提供しながら、クリック可能なアプリケーションをどのように作成できますか?
研究背景
次のことについてできる限りのことを学んでください。
多分それは少し一方的なもので、すべてラスキンのものですが、それでも効果的なキーボードベースのユーザーインターフェイスを作成する方法が示されています。これは、最新の「iPhoneのようなタッチスクリーンの設計方法」にはないものです。 iPadやAndroidのような本。
ユーザー調査
次は、画面+キーログを取得し、システムの使用方法を学びます。このための効果的なツールは、UNIX script コマンドであり、「typescripts」を作成して再生できます。うまくいけば、隠し文字のショートカットはありません。それ以外の場合は keymon も必要になることがあります。
オリジナル機能のストーリーボードを作る
次に、フロー図を描き、各キー画面を矢印で接続します。各矢印について、実際にアクセスできるキーを書き留めます。例は次のとおりです。
機能強化
ここにトリックがあります:それぞれのキースクリーンを同等のグラフィックで再設計し、キーボードショートカットがそれらの間で同じままであることを保証します
確認は必要ありませんが、代わりに元に戻すを希望する場合があります。この場合、確認の「y」がエラーを引き起こさずに使い果たされることを確認してください(たとえば、yが1秒以内に来た場合-フィードバックの認知バリア時間-無視してください)
メニューが全画面表示されていない可能性もありますが、これも問題ありません。Mが表示されたときにメニューをハイライト表示するだけで、適切な場所にいることがわかります。通常と同じように、( ノーマンブック に基づいて)フィードバックを提供します。それでも、キーボードレベルの一貫性を維持します。
また、すべてのキースクリーンですべての情報を全員が入手して、正しい決定を行えるようにします。たとえば、フォームを保存するときは、フォーム自体が表示されている必要があります。これは古いインターフェイスでは不可能だったかもしれませんが、今回は、操作するピクセルがあります。
ユーザーインターフェイスをクリック可能にします
前のルールを守りながら、つまりシステムの一貫性を保ちながら、GUIでも操作性を向上させます。 GUIフローは少し代替である可能性がありますが、システムは同じキーボードシーケンスに同じように応答する必要があります。
キーボードのヒントを与える
新しいユーザーが機能を習得できるように、キーボードショートカットを処理する視覚的な手掛かりをデザインします。例は次のとおりです。
(見た目は必ずしも美しくはありませんが、テキストのみのインターフェースよりも優れています)
完璧な解決策は、これらを状況に応じて処理することです。つまり、状況で実際に使用が許可されている場合にのみ有効にすると、これが可能になる場合とできない場合があります。たとえば、「保存」ボタンはclickで有効にできますが、フォーカスがある別のフィールドがある場合はshortcutで無効にできます。無効化されたボタン(現在の状態ではキーボードとクリックの両方で無効化されている)を使用して彼らに表示するかどうかは、あなた次第です。
また、ユーザーが好みに基づいてこれらを非表示にできるようにすることもできます。これは、古い人だけでなく、それをまったく学びたくないが、おそらく移行を助ける人を苛立たせます。
キーボードベースのコントローラーを設計します(開発者タスク)
プログラマーにオリジナルの Krassner&Pope MVC がキーボードも使用できるような方法でMVCを考えたと伝えてください。これは実際には、Design Patternsブックで引用されているMVCです。それは彼らが今日慣れているものとは異なるモデルかもしれませんが、それは人生です。繰り返しになりますが、これは実際には課題です。文字通り使いやすいインターフェースで、サポートするユーザーがたくさんいます! :)
ユーザーによるプロトタイプのテスト
ユーザーのグループは2つあります。キーボードショートカットを筋肉反射/筋肉記憶として知っているユーザーと知らないユーザーです。両方でテストします。いつものように、ストーリーの目標は、システムを通過してストーリーの目標を達成しようとします。どのように感じましたか、うまくいきましたか、大声で考えました、大丈夫だと感じました、いつどこで失ったか... UXリサーチもの。
実装アプリケーション
それでおしまい。面倒なプロセスですが、今日のユーザビリティでは考えられない方法で使用できるインターフェースを構築するという独特の課題があります。私はそれは価値があると思います、これはかなり良い冒険になるでしょう、私はそれが大好きだと確信しています。それからも、90年代にコマンドラインUNIXを使い始めて、私自身の筋肉の思い出があります。それでも、当時は唯一の方法だったので、映画を見ることさえもOS Xでコマンドラインを使用しています...
または
古いユーザーが死ぬか会社を辞めるのを待つだけです。それも解決策です。
これがお役に立てば幸いです。真剣に乗って楽しんでください。これはユニークで楽しいものです。UXは、輝きではなく、ユーザーに最高のエクスペリエンスを提供することです。
NIXアプリの優れた効率
UNIX UIには、学習可能性よりもユーザー効率を優先するという伝統があります。たとえば、UNIXの設計者は「代わりに「mv」とすばやく入力できるのに、なぜ「名前の変更」と入力するのでしょうか。それを覚えるのが難しいかどうか、誰も気にしませんか?」 UNIXバージョンのアプリでは、ユーザーは非常に少ない時間と労力でタスクを実行できます。それは、使用可能であることの重要な部分です。
たとえば、GOMS KLMオペレーター時間を使用すると、「04」のような2つのキーを入力してメニュー項目を選択するのに平均でわずか1.6秒かかります。対照的に、マウスでリンクを選択するには平均2.5秒かかります。ユーザーがキーボードからマウスに手を移動する必要がある場合は2.9秒です(他のほとんどの入力がテキストの場合)。このような選択肢が多いと、Webアプリの速度が著しく遅くなります。
各リンクの選択に1秒以上かかる完全なブラウザーページの読み込みが含まれている場合、Webアプリは実に不格好な感じになります。対照的に、平均的なUNIXアプリでは、0.1秒未満で新しい行またはまったく新しい画面を表示できます。ユーザーを監視している場合、エキスパートユーザーが1つの単語を入力しているような記憶された入力のチェーンを発射しているのをおそらく目にするでしょう。つまり、ユーザーにはポイントがあります。つまり、ユーザーが現在使用しているものよりも(効率の点で)使いにくいユーザーインターフェイスを提供している可能性があります。なぜ彼らはそれを喜ばなければならないのですか?
Webアプリの優れた学習能力…またはそうでないかもしれない
理論的には、Webアプリには優れた learnability があり、効率性とは異なるユーザビリティの側面があります。簡単なポイントアンドクリック入力と画面上の説明とヒントがユーザーにあるので、ユーザーは「man」と一度入力することなく、アプリを初めて使用できます。
しかし、あなたが示唆しているように、新しいWebアプリは学習しにくいかもしれません。 UNIXアプリに、オプションを選択するためのキーと一緒にオプションをリストするメニューが含まれている場合(たとえば、「01ネットワーク編集」、「02トラブルシューティング、03展開、Mメインメニュー」)、それは直感的に十分です。 TabはEnterよりも簡単に学習できますか?それはあなたが慣れていることの問題です。アプリに基本的なフォームとメニューのUIがある場合、UNIXからWebだけに移行しても、学習しやすくなることはありません。それがあなたを得るすべてはプロポーショナルフォントときれいな色です。大きな一口。現代であるためだけに現代であることはそれをカットするつもりはありません。
また、Webアプリに誤って選択されたフィールドオーダー、アイコンまたはリンクラベル、またはIAの選択肢が2つだけ含まれている場合、ユーザーのユーザーにとっては、UNIXアプリよりも少ない簡単に学習できます。
ソリューション
したがって、状況によっては、ユーザーに、慣れているものよりも使用が遅い何かを(退屈なトレーニングで、または不満で自分で)学習する努力をしてもらいたい場合があります。彼らが気に入らないのは当然のことです。
学習可能性
まず最初に、特定のユーザーができる限りWebアプリを学習可能にする必要があります。したがって、「03」などのキーボードショートカットを入力して3番目のメニュー項目を選択し、「M」を入力してホームページ/メインメニューに移動します。 Enterを次のフィールドに進めます。それが標準的ではない場合、誰が気にかけますか?標準は、ユーザーがそれを知っている場合にのみ有効です。レガシーユーザーと新しいウェブに精通したユーザーの両方がいる場合(現在または将来)、 both TabとEnterキーを押して次のフィールドに進みます。または、UNIXユーザーが他の目的でTabを使用する場合、または他のユーザーがEnterによるダイアログの実行(GUI標準)を期待している場合は、レガシーショートカットを使用するレガシーユーザー向けのレガシーモードを検討してください。
必要に応じて、Webアプリの使用方法に関するテキストのヒントとリマインダーを含めます。しかし、覚えておいてください。簡単なドキュメントを読むだけでも時間がかかり、ユーザーがタスクの邪魔になります。人を使用するよりは良いですが、何も必要としないほど良くはありません。画像とメタファーを使用して、UIをより迅速に文書化することを検討してください(たとえば、タスクフローを通じてユーザーに指示する線と矢印)。
学習能力以上
レガシーユーザーが UNIXアプリをすでに知っているため、学習可能性を最大化するだけでは不十分です。 UNIXに固執するということは学習がゼロであることを意味しますが、Webアプリに行くことは少なくともいくらかの学習を意味することになりますが、それがどんなに小さくてもです。学習能力だけで勝つことはできません。レガシーユーザーの承認を得るには、自分のゲームでレガシーアプリを打ち負かし、ウェブアプリをレガシーアプリよりももっと効率的にする必要があります。効率を向上させ(以下で説明する手法を使用)、UNIXアプリとWebアプリを公に競争させて、自分とユーザーに新しいアプリが習得したらより速く納得させます。
ウェブアプリをより効率的にすることができない場合は、他のいくつかの利点を提供する必要があります。エラーの削減、エラー回復の高速化、利便性の向上(リモートで、またはモバイルの場合など)-何か。あなたはそれが学習努力の価値があるほどウェブアプリを十分に良くする必要があります。
これを行う一環として、レガシーシステムを調査し、専門家がそれを使用するのを観察して、以下を見つけます。
キーボードショートカットやクイックポップアップなど、新しいシステムに含める利点。
デフォルトが存在しない、入力が保存されていない、メニューを使用できる場合のテキスト入力など、新しいシステムで回避すべき弱点。
ユーザーが気にしていること-新しいアプリでユーザーに提供できること。
ナビゲーションと生の時間を最小限に抑える
おそらく、UNIXアプリがそれらすべての年前に設計されたものよりも多くの画面領域を持っているという事実を利用し、それを使用してナビゲーションのオーバーヘッドを最小限に抑え、より明確な情報階層を提示します。 AJAXまたはその他のツールを使用して、ナビゲートの「エクササイズ」をさらに最小限に抑え、応答時間を0.2秒以下にします。確認ページとエラーメッセージを避けてください。代わりにページ上のフィードバックを使用してください。入力1フィールドを検証してください一度にこの種のフィードバックを使用して、ダイアログを避けて、その場で編集するフォームとテーブルを使用します。
スイートの一貫性
Webアプリが内部的に一貫していることを確認してください。ユーザーが停止して、特定のコンテキストにどのルールが適用されるかを考える必要がある場合、効率が低下します。アプリのスイート全体で同じアクションが同じ効果を持つことを確認してください。同じコマンドは、スイート全体で同じラベル、同じアイコン、同じショートカット、同じ相対位置を持つ必要があります。同じフィールドでは、スイート全体で同じ名前、グラフィックコード、単位、形式を使用する必要があります。
その他
効率/速度を向上させるための一般的な設計要素は次のとおりです。
キーボードショートカット、既に述べた。
メニュー項目へのスルー時間を短縮するコンテキストメニュー。
特にダイアログの代わりとしてドラッグアンドドロップします。
簡潔ですが明確なラベル(Webアプリに一般的な詳細ラベルよりもスキャンと読み取りが高速です)。
ユーザーの注意をそらす可能性のある、めったに使用されない機能に慎重に使用される段階的な開示。
最も一般的なものから最も一般的でないものまでメニューを注文します(必要な場合は意味的に意味のある順序を保ちます)。
良いデフォルト。
レガシーユーザーとエキスパートの一般的な取り扱いについて、詳しく パワーユーザーのために最近何をしましたか ?
これらは主にデータ入力の多いアプリケーションのようです。そのため、キーボードは、ユーザーがデータを入力するための最も迅速で簡単な方法です。そのままにしておくことをお勧めします。アプリが完全にキーボードナビゲート可能であり、適切なキーボードショートカットが含まれていることを確認します(おそらくエンドユーザーオプションとして)。