Googleのマテリアルデザイン が アプリケーション設定 のパターンにアプローチする方法が好きです。
設定は適切に構成され、予測可能であり、管理可能な数のオプションを含む必要があります(強調が追加されました) 。
私の質問は、アプリケーションにある設定の数が管理不能になった場合に何が起こるかです。
現在取り組んでいるアプリケーションでは、さまざまなクライアントが新しい機能を要求したときに出てきた1回限りの構成のダンプ場所として、「その他」セクションがいくらか使用されていました。ご想像のとおり、ここ数年でかなり多くの編集可能なフィールドが増えてきました。
私が今持っているタスクは、すべてを一般的なその他のカテゴリに分類しないように、それを調べて再編成することですが、問題の核心は、ユーザーがアプリケーションを構成できる方法の数があまりにも扱いにくいことです。
オプションを分類するほど、セクションが多すぎて見つけて通過できないため、ユーザーがナビゲートしにくくなります。カテゴリーの数を制限し、各グループ内にできるだけ多く含めるようにすればするほど、実際には属さない設定をグループ化するという古い問題に遭遇します。
実際、私たちの問題はすべて、アプリケーションが高度にカスタマイズ可能であり、多数の構成可能な設定が含まれているという事実から生じています。
アプリケーション内で、本質的に大きく、やや管理できない量の設定を管理しようとすることに関する資料はありますか?それは矛盾しているように見えますが、それは私が自分を見つけた現在の状況です。
ありがとう。
...複雑さを軽減します。多くの場合、効果的な設計は、ユーザーベースに合わせて調整された複数のアプローチの適切な組み合わせに依存しています。たとえば、Eclipseユーザー(ここで別の回答を参照)は、複雑さをナビゲートする方法を理解しており、多くの制御を必要とする可能性があるプロ/エキスパートユーザーである傾向があります。 Google Chromeユーザーは異なります...彼らは必ずしもエキスパートユーザーではないため、Googleは設定の多くの複雑さを隠しています。
構成の複雑さを軽減するためのいくつかの一般的な手法を次に示します。
繰り返しますが、ここでの効果的な設計は、ユーザーが誰であるかを十分に理解し、これらのアプローチの1つまたはいくつかをどのように採用するかを慎重に選択することによって決まります。
設定を削除。限目。
理想的には、アプリケーションにはzero設定があります。ユーザーhate設定。ユーザーは、実行しているコアタスクから時間を費やします。たとえば、描画アプリでは、ユーザーは描画に100%費やすのが理想的です。
設定を削除する方法は、設計上の決定を行うことです。アプリに管理できないほどの量の設定がある場合は、設計の決定をユーザーに任せている可能性があります。各設定の適切なデフォルトを決定するのがいかに簡単か難しいかに注意してください。デフォルトを簡単に決定できる場合は、その設定を削除できます。デフォルトを決定するのが難しい場合、たとえば、ユーザーの50%がデフォルトをオンにし、ユーザーの50%がデフォルトをオフにしたい場合などは、その設定をそのままにしておく必要があります。
多数のユーザー設定/設定が適切である、または予想されるアプリケーションもあります。そして、これらの設定をいじるのを楽しむ観客がいます。
この特定のケースの歴史は、あなたがあなたのケースではないことを強く示唆しています:
さまざまなクライアントが新しい機能を要求したときに登場した1回限りの構成。
これは偶発的な設計の悪い例のように聞こえます。ユーザー設定としてそれらをダンプすることにより、設計の決定を延期してきました。特異な顧客の要求または一時的なものは決してUIへの道を見つける必要があります-何かが1人の人にのみ役立つ場合、それを全員に置く理由はありません他の方法。これらを1日中並べ替えることはできますが、それでも、ほとんどの場合はそもそも存在すべきではないという根本的な問題を解決することはできません。
最初のステップは、これらの設定ごとに既存の顧客データを調べ、次のカテゴリに分類することです(「この設定を使用する」とは、「デフォルト値以外の値に設定した」ことを意味します)。
これは頻繁に使用され、広範囲の設定値で-最後に、良いものに到達していますが、これらもサブカテゴリに分類されます。
1つの可能な解決策は、特にユーザーがアプリケーションを使用しているときに調整または変更される可能性がある場合(特に、ユーザーが設定ページに戻ります)。あるいは、同じページに設定を表示したくない場合に、ヒントまたはツールチップとして表示されるリンクにすることもできます。
他にできることは、命名規則について考えて、完全に意味のある設定ではないにしても、設定にラベルを付けて、グループ化または順序付けを簡単にできるようにすることです。そうすれば、少なくともユーザーがそれらを学習して見つけるのが面倒になるのを少し減らすことができます。
最近の question から画像を取得すると、タブを使用して設定をグループ化する方法に関するいくつかのオプションが表示されます。
オプション1は良い解決策ではなく、本質的にはあなた(そして私)が始めた問題です。オプション2と3は、目指すべきものです。オプション3は視覚的には理想的なソリューションだと思いますが、設定の論理的なグループ化が優先され、使用するグループ化は実際の設定と使用方法によって異なります。
考慮すべき最も重要なことは、設定を十分に説明的なラベルで論理的にグループ化する必要があることです。これにより、設定を簡単にナビゲートできます。
前の質問のicc97の answer から:
Jacob Neilsenの タブ、使用済み から:
タブの背後にあるコンテンツを論理的に分割するため、ユーザーは特定のタブを選択したときに何が表示されるかを簡単に予測できます。
設定には何らかのタイプの説明を実装し、関数の名前、その説明、および設定を説明するために使用されるいくつかの一般的な単語を検索する検索機能を用意する必要があります。スタック交換では、これらの一般的な単語はタグと呼ばれます。
リスト、階層構造、またはタブベースの構造のいずれを使用する場合でも、検索機能はユーザーが探しているものを見つけるのに非常に役立ちます。
このための鍵は、優れた検索エンジンを使用して、使用可能な結果を生成することです。適切なタグをバックグラウンドでシードできれば、それほど難しくありません。
フリッパーの答え:
選択肢が少ない。
少ないフリッパーの答え:一般的な使用パターンを探すことで、オプションと設定の数を減らすことができるかどうかを確認します。
なぜそれらすべてのオプションがあるのですか、そしてそれらは何に関係していますか?通常、各オプションが含まれるのは、質問への回答がわからなかったためです。そのため、回答の作業はオプションの形でエンドユーザーに返されます。
設計の問題に対処するのではなく、その問題をユーザーに投げかけることが、最善の解決策になることはほとんどありません。
したがって、この種の質問に対処するには、誰のために構築しているのか、何のために解決または提供しようとしているのかを理解することが重要です。設定は誰のためのものであり、設定は何を提供しますか?
非常に役立つ1つの方法は、事前に設定をマップすることです。
これを行うには、次のことを試してください。
それらのいずれかが列に複数の値を持つ必要がある場合は、行を複製して、各行に1つの値を配置します。
これが完了したら、手順3で作成した列を少し簡略化または正規化して、「Better X」、「Easier Y」、「More Detail but more noise」などが表示されるようにします。
次に、列を列3または4で並べ替えて、どのようなグループが出現するかを確認します。
例1-「詳細はあるがノイズが多い」または「詳細は少ないがノイズが少ない」に関連する設定が30または40ある場合、これらの設定をすべて1つのスライダーに集約できる場合があります。
例2-ペルソナAが常に必要とする一連の値と、ペルソナBが常に必要とする別の一連の値がある場合...提示するのではなくすべて、「(ペルソナA)モード」または「(ペルソナB)モード」を提供するスイッチを提示します。 reallyがその1人のユーザーの数千の微調整を許可する必要がある場合は、それを「詳細設定」ページにパントします。ユーザーが混乱している場合は、通常の使用範囲を超えていることをユーザーに明確に伝えます(chromeの「chrome:// flags」ページのように)。
まとめ:すべての設定を個別に提示しようとしないでください。代わりに、これらの設定を統合して、これらの設定の賢明な組み合わせにアクセスできるようにする小さなコントロールセットにしてください。
追加編集:設定から恩恵を受けるペルソナがない場合は、それを提供しないでください。当たり前のようですが、それでも「これをしない」オプションがあります。
これまでのところ素晴らしい回答です。設定の数を減らし、ユーザーが何を必要としているかを観察します。状況に応じてオプションを提供します。
それらをカテゴリに分割する必要がある場合は、実際には card-sort test を実行する必要があります。これにより、ユーザーが自分の設定をどのように考え、クラスタ化するかがわかります。そこから、ユーザーにとって意味のあるカテゴリを作成できます。