私たちの中には、UIデザインのソフト面に苦労している人もいます(自分自身、特に)。 「バックエンドコーダー」は、ビジネスロジックとデータレイヤーのみを設計する運命にありますか?快適で便利なプレゼンテーションレイヤーをより効果的に設計するために脳を再訓練するにできることはありますか?
同僚はThe Design of Sites、考えさせないでくださいandWhy Software sucksが、他の人がこの分野の欠陥を取り除くために何をしたのだろうか?
直接言ってみましょう。
これに関する改善はガイドラインからは始まりません。ソフトウェアについての考え方を再構成することから始まります。
ほとんどの筋金入りの開発者は、実際にソフトウェアのユーザーに共感していますzero。 手掛かりなしユーザーの考え方、ユーザーが使用するソフトウェアのモデルを構築する方法、一般的なコンピューターの使用方法があります。
専門家が素人と衝突するとき、それは典型的な問題です:一体どうして普通の人はそうすることができますか?ダム 10年前に専門家が理解したことを理解しないのですか?
ほとんどすべての経験豊かな開発者にとって信じられないほど把握が難しいことを認める最初の事実の1つは次のとおりです。
普通の人は、あなたとは全く異なるソフトウェアの概念を持っています。プログラミングの手がかりはまったくありません。なし。ゼロ。彼らは気にしません。気にする必要さえないと思います。それらを強制すると、プログラムが削除されます。
これは開発者にとって信じられないほど過酷です。彼は自分が作ったソフトウェアを誇りに思っています。彼はすべての機能が大好きです。彼はその背後にあるコードがどのように機能するかを正確に伝えることができます。たぶん、彼は信じられないほど賢いアルゴリズムを発明し、以前よりも50%高速に動作させたのかもしれません。
そして、ユーザーは気にしません。
ばかみたい。
多くの開発者は、通常のユーザーと協力することができません。彼らは、技術に関する存在しない知識に落ち込んでいます。そして、それがほとんどの開発者が恥ずかしがり屋であり、ユーザーは馬鹿だと思う理由です。
ではない。
ソフトウェア開発者が車を購入した場合、彼はそれがスムーズに走ることを期待しています。彼は通常、タイヤの空気圧を気にしません。それは、タイヤをそのように動作させるために重要だった機械的な微調整です。ここで彼はnotエキスパートです。そして、彼が微調整のない車を買うなら、彼はそれを返し、彼が望むことをする車を買う。
多くのソフトウェア開発者は映画が好きです。 spark=その想像力。しかし、彼らは映画の制作、視覚効果の作成、または優れた映画脚本の作成の専門家ではありません。ほとんどのオタクは演技が非常に非常に悪いです。開発者が悪い映画を見ると、それが全体として悪いことに気づくだけです。オタクは、良い映画と悪い映画に関する情報を収集するためにIMDBを構築しているので、どの映画かを知ることができます。しかし、彼らは映画の作成の専門家ではありません。映画が悪い場合、彼らは映画を見に行かないでしょう(またはBitTorrentからダウンロードしません;)
つまり、通常のユーザーを専門家として排除することは無知専門家ではない(そして非常に多くの)地域では、他の分野の専門家がすでに考えていることを期待しているからです。製品やサービスを使用する通常の人々について。
あなたはそれを改善するために何ができますか?プログラマとしてハードコアになればなるほど、通常のユーザーの考え方にオープンになることが少なくなります。それは異質であなたにとって無知です。あなたは思うだろう:私は人々がどのようにeverこの知識のないコンピューターを使うことができるか想像できない。しかし、できます。すべてのUI要素について、考えてみてください。それは必要ですか?ユーザーが私のツールに対して持っている概念に適合していますか?どうすれば彼に理解させることができますか?このための使いやすさを読んでください、多くの良い本があります。それも科学の全領域です。
ああ、あなたがそれを言う前に、はい、私はAppleファン;)です
質問へ:
ほとんどの開発者にとってUIデザインがそれほど難しいのはなぜですか?
逆の質問をしてみてください:
なぜprogrammingがほとんどのUIデザイナーにとって難しいのか?
UIのコーディングとUIの設計には、異なるスキルと異なる考え方が必要です。 most開発者ではなくsome開発者ではなく、UIデザインはmost開発者にとって難しい一部のデザイナーではなく、デザイナー。
コーディングは難しいです。デザインも難しいです。両方をうまくやる人はほとんどいません。優れたUIデザイナーがコードを記述することはめったにありません。彼らは方法を知らないかもしれませんが、それでも彼らはまだ良いデザイナーです。では、なぜ優れた開発者がUIデザインの責任を感じるのでしょうか?
UIデザインについて詳しく知っていれば、より良い開発者になりますが、だからといってUIデザインを担当する必要があるわけではありません。逆はデザイナーにとっても当てはまります。コードの書き方を知っていれば、デザイナーはより良くなりますが、UIのコーディングを担当する必要があるわけではありません。
UIデザインをより良くしたい開発者のために、3つの基本的なアドバイスがあります。
以下に、学習できる特定の事項を示します。 すべてを学ぼうとしないでください。以下のすべてを知っていれば、相互作用デザイナーまたは情報アーキテクトと呼ぶことができます。 リストの一番上に近いものから始めます。特定の概念とスキルに焦点を当てます。次に、下に移動して分岐します。あなたが本当にこのようなものが好きなら、キャリアパスとして考えてください。多くの開発者は管理に移行しますが、UXデザインは別のオプションです。
優れたUIデザインは、大きく異なる2つのスキルを必要とするため困難です。
これは、開発者と設計者の間のこれら2つのグループの本質的な違いです。
さらに、プログラミングと設計には、異なる知識や異なるスキルだけでなく、異なる考え方が必要です。優れたUIデザインには、両方の考え方、両方の知識ベース、両方のスキルグループが必要です。そして、どちらかをマスターするには何年もかかります。
開発者は、UIデザイナーがコードを書くのが難しいと感じるのと同じように、UIデザインを見つけるのが難しいと思うはずです。
設計の改善に本当に役立つのは、仲間の開発者、QAの人、PM、またはたまたま特定のウィジェットや画面を試してもらう人をつかむことです。
他の人があなたのソフトウェアを初めて使用するのを見ると、あなたが気づく驚くべきこと
最終的に、それは本当に共感についてです-あなたのユーザーの靴に身を置くことができますか?
もちろん役立つのは、「自分のドッグフードを食べる」ことです。アプリケーションを実際のユーザーとして使用し、何が面倒なのかを確認します。
別の良いアイデアは、アプリケーションを使用して実際のユーザーを見る方法を見つけることです。これは、一方向ミラー、スクリーンビデオキャプチャ、ユーザーのビデオカメラなどを備えたユーザビリティラボと同じくらい複雑かもしれません。たまたまホールを歩いている次の人を使ったペーパープロトタイピングとして。
他のすべてが失敗する場合、UIが複雑すぎるよりも単純である方がほとんど常に良いことを覚えておいてください。 「ああ、私はそれを解決する方法を知っています。ユーザーが好みのモードを決定できるようにチェックボックスを追加するだけです」と言うのは非常に簡単です。すぐにUIが複雑すぎます。デフォルトモードを選択し、プリファレンス設定を詳細設定オプションにします。またはそのままにしておきます。
デザインについて多くのことを読んでいると、落とされた影や丸い角などに簡単にハングアップしてしまいます。それは重要なものではありません。シンプルさと発見可能性は重要なものです。
一般的な神話とは異なり、UI設計には文字通りソフトな側面はありません。少なくとも、優れたバックエンドを設計するために必要なものだけです。
以下を考慮してください。優れたバックエンド設計は、優れた開発者が熟知しているかなり堅固な原則と要素に基づいています。
低結合
高い凝集力
建築パターン
業界のベストプラクティス
等
通常、優れたバックエンド設計は、多くの相互作用を通じて生まれます。テストまたは実際の使用中に得られた測定可能なフィードバックに基づいて、初期設計図が徐々に改善されます。バックエンドの小さな側面のプロトタイプを作成し、それらを単独で試用する必要がある場合などがあります。
優れたUIデザインは、次の健全な原則に基づいています。
可視性
アフォーダンス
フィードバック
寛容
シンプルさ
一貫性
構造
UIは、テストと試行、反復によって生まれますが、コンパイラ+自動テストスーツではなく、人によって生まれます。バックエンドと同様に、業界のベストプラクティス、測定および評価手法、UIの考え方、ユーザーモデル、システムイメージ、デザイナーモデル、構造モデル、機能モデルなどの観点から目標を設定する方法があります。
UIの設計に必要なスキルセットは、バックエンドの設計とはまったく異なるため、最初に学習することなく優れたUIを実現できるとは考えていません。ただし、これらの両方のアクティビティに共通するのは、設計のプロセスです。優れたソフトウェアを設計できる人は、時間をかけて学習する限り、優れたUIを設計できると思います。
Human Computer Interactionのコースを受講することをお勧めします。オンライン資料については、MITおよびYaleサイトを確認してください。
理解と使用法における構造モデルと機能モデル
以前の優れた Thorsten79による投稿 は、ソフトウェア開発の専門家とユーザーのトピックと、ソフトウェアに対する彼らの理解の違いについてのトピックを取り上げています。人間の学習の専門家は、機能的なメンタルモデルと構造的なメンタルモデルを区別します。友達の家への道を見つけることは、この2つの違いの優れた例です。
最初のアプローチには一連の詳細な指示が含まれます。高速道路の最初の出口を出て、100ヤード左折した後などです。これは機能モデルの例です。特定の目標を達成するために必要な具体的な手順のリストです。機能モデルは使いやすく、単純な実行だけを考える必要はありません。明らかに、単純さにはペナルティがあります:最も効率的なルートではない可能性があり、例外的な状況(つまり、トラフィックの迂回)は完全に失敗する可能性があります。
タスクに対処する別の方法は、構造的なメンタルモデルを構築することです。この例では、「タスクオブジェクト」の内部構造に関する多くの情報を伝えるマップになります。私たちと友人の家の地図と相対的な位置を理解することから、機能モデル(ルート)を差し引くことができます。明らかにそれはより多くの努力を必要としますが、可能な逸脱にもかかわらずタスクを完了するはるかに信頼できる方法です。
UIを介した機能モデルまたは構造モデルの伝達(ウィザードモードと拡張モードなど)の選択は、Thorsten79の投稿からわかるように単純ではありません。上級で頻繁なユーザーは構造モデルを好むかもしれませんが、時折または経験の浅いユーザーは機能的です。
Googleマップは良い例です。機能モデルと構造モデルの両方が含まれているため、多くの衛星ナビゲーションが含まれています。
問題のもう1つの側面は、UIを介して表示される構造モデルがソフトウェアの構造にマッピングされるのではなく、手元のユーザータスクまたは関連するタスクオブジェクトの構造に自然にマッピングされることです。
ここでの難点は、多くの開発者がソフトウェア内部の優れた構造モデルを持っているが、ソフトウェアが支援することを目的とするユーザータスクの機能モデルのみであることです。優れたUIを構築するには、タスク/タスクオブジェクトの構造を理解し、UIをその構造にマップする必要があります。
とにかく、正式なHCIコースを十分に強く受講することはお勧めできません。 ヒューリスティック 、 ゲシュタルトの生理学 から派生した原理、人間の学習方法など、多くのものが関係しています。
すべてのUIを現在と同じ方法で実行することから始めることをお勧めします。使いやすさやことに重点を置くことはありません。
alt text http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg
これについて考えてみましょう:
デザイナーは、追加するものが何もないときではなく、奪うものが何もないときに完璧を達成したことを知っています。 —サンテグジュペリ
そして、これをデザインに適用します。
多くの開発者は、コードを書くことができるため、すべてを実行できると考えています。インターフェイスの設計はまったく異なるスキルであり、大学に通ったときはまったく教えられませんでした。それはただ自然に来るものだけではありません。
別の良い本は The Daily Design of Everyday Things by Donald Normanです。
デザインと美学の間には大きな違いがあり、しばしば混同されます。
美しいUIを使用するには、芸術的スキルまたは少なくとも美的スキルが必要です。私を含め、多くの人がそれを生み出すことはできません。残念ながら、多くのヘビーウェイトフラッシュベースのAPIで見られるように、それは十分ではなく、UIを使用可能にしません。
使用可能なUIを作成するには、人間がコンピューターと対話する方法、心理学の問題(例:Fittの法則、Hickの法則)、およびその他のトピックを理解する必要があります。このためにトレーニングするCSプログラムはほとんどありません。私が知っている開発者のほとんどは、JUnitの本よりもユーザーテストの本を選ぶでしょう。
私たちの多くは「コアプログラマー」でもあり、UIをプロジェクトの成功を左右する要因としてではなく、ファサードと考える傾向があります。
さらに、ほとんどのUI開発経験は非常に苛立たしいものです。古いVBのようなおもちゃのGUIビルダーを使用し、glueいグルーコードに対処する必要があります。
Slashdotに行き、Appleを扱っている記事のコメントを読んでください。 Apple製品は特別なものではなく、iPodやiPhoneの成功をトレンディまたはヒップにしようとしている人々に帰するものである。機能リストを参照し、以前のMP3プレーヤーやスマートフォンが実行しなかった機能は何もないことを指摘します。
次に、マニュアルを参照せずに、ユーザーが簡単かつ簡単にしたいことをするので、iPodとiPhoneが好きな人がいます。インターフェイスは、インターフェイスが取得し、記憶に残り、発見できるほど直感的です。 MacOSXのUIは以前のバージョンほど好きではありませんでしたが、それらは派手さを支持する有用性をあきらめたと思いますが、iPodとiPhoneは素晴らしいデザインの例です。
あなたが最初のキャンプにいる場合、平均的な人のやり方を考えていないので、良いものと区別できないため、悪いユーザーインターフェースを作成する可能性があります。これは、あなたが絶望的であることを意味するのではなく、優れたインターフェイスデザインの原則と優れたUIの認識方法を明示的に学習する必要があることを意味します(Aspergerの誰かがソーシャルスキルを明示的に学習する必要がある場合など)。明らかに、良いUIの感覚を持っているからといって、それができるというわけではありません。たとえば、文学に対する私の感謝は、(現在)出版可能なストーリーを書く能力にまでは及んでいないようです。
そのため、優れたUIデザインの感覚を養ってください。これはソフトウェアだけではありません。ドン・ノーマンの「日常のデザイン」は古典的であり、他にも本があります。成功したUIデザインの例を入手し、違いを実感できるほど十分に試してください。あなたは、物事についての新しい考え方を学ばなければならないかもしれないことを認識し、それを楽しんでください。
私が握る大体の経験則は、一度に両方をやろうとしないことです。バックエンドコードで作業している場合は、それを完了し、休憩を取り、UIハットをオンにして戻ります。コードを実行しているときに作業しようとすると、間違った考え方でアプローチしてしまい、結果として恐ろしいインターフェイスになってしまいます。
優れたバックエンド開発者と優れたUIデザイナーの両方になることは間違いなく可能だと思います、あなたはそれで働き、トピックについていくつかの読書と研究をしなければなりません(ミラーの#7からニールセンのアーカイブまですべて)、そしてwhyUIデザインが最も重要であることを理解してください。
私はそれが創造的である必要があるとは思わないが、むしろ、バックエンド開発のように、学ぶ必要がある非常に系統的で非常に構造化されたものだ。 UIで「創造的」になっている人々が、最大のユーザビリティの怪物を生み出しています...つまり、100%Flashウェブサイトを最初に見てみましょう...
編集:Krugの本は本当に素晴らしいです...特にWeb用にデザインするつもりなら、それを読んでください。
これには多くの理由があります。
(1)開発者は、ユーザーの観点から物を見ることはできません。これは通常の容疑者です:共感の欠如。しかし、開発者は人々がそうするように異質ではないため、通常は真実ではありません。
(2)別のより一般的な理由は、開発者が自分のものに非常に近く、長い間自分のものにとどまっていたので、彼のものが他の人にそれほど馴染みがない(直感よりも優れた用語)かもしれないことに気付かないことです。
(3)さらに別の理由は、開発者が技術を欠いていることです。
ビッグクレーム:UI、人間の交差点のデザイン、プロトタイピングの本を読んでください。例えば明白なデザイン:Webアプリケーションのデザインに対する常識的なアプローチ、考えさせない:Webのユーザビリティに対する常識的なアプローチ、瞬間のデザインなど。
彼らはどのようにタスクフローを議論しますか?決定点はどのように記述されますか?つまり、どのユースケースでも、少なくとも3つのパスがあります:成功、失敗/例外、代替。
したがって、ポイントAから、A.1、A.2、A.3に移動できます。ポイントA.1から、A.1.1、A.1.2、A.1.3などに到達できます。
このようなドリルダウンタスクフローをどのように表示しますか?彼らはしません。彼らはそれをただつやつやにしています。
UIエキスパートにもテクニックがないため、開発者にはチャンスがありません。彼はそれが頭の中ではっきりしていると思います。しかし、ソフトウェアの実装についてはもちろん、紙の上でも明確ではありません。
これには、私自身の手作りのテクニックを使用する必要があります。
デザインに特化したウェブサイトやテキストと連絡を取り合うようにしています。素晴らしいロビン・ウィリアムズの本も見つけました 非デザイナーのデザインブック これらの研究で非常に興味深いこと。
設計とユーザビリティはソフトウェアエンジニアリングの非常に重要な部分であり、設計を行うべきではないという言い訳をするのをやめ、もっと学ぶ必要があると思います。
誰もがプログラマーでもあるので、たまにデザイナーになることもできます。
UI設計に取り組むとき、ここで私が心に留めておくいくつかの事柄があります(完全なリストではありません)。
モデルの通信。 UIは、メンタルモデルをユーザーに説明する物語です。このモデルは、ビジネスオブジェクト、リレーションシップのセット、あなたが持っているものかもしれません。視覚的な突出、空間配置、およびワークフローの順序付けはすべて、このモデルをユーザーに伝える上で重要な役割を果たします。たとえば、ある種のリストと別のリストは、さまざまなこと、およびリストにあるものとモデルの残りの部分との関係を意味します。一般に、一度に1つのモデルのみが通信されるようにすることが最善であると思います。プログラマーは、同じUIスペースで複数のモデルまたは複数のモデルの一部を頻繁に通信しようとします。
一貫性。人気のあるUIのメタファーを再利用すると非常に役立ちます。内部の一貫性も非常に重要です。
タスクのグループ化。ユーザーは、関連する一連のコマンドを確認または完了するために、マウスを画面全体に移動する必要はありません。この領域では、モーダルダイアログとフライアウトメニューが特に悪い場合があります。
聴衆を知る。ユーザーが何度も同じアクティビティを実行する場合、それらのタスクですぐにパワーユーザーになり、最初の参入障壁を低くしようとする試みに不満を感じます。ユーザーがさまざまな種類のアクティビティを頻繁に行わない場合は、UIが常に手を握っていることを確認することをお勧めします。
Apple Human Interface Guidelines をお読みください。
しかし、あなたはそれをします(そして上記のいくつかの素晴らしい点があります)、それは直感的なものはありません...
私は地平線上でゴロゴロしている議論を聞くことができます...それでは、少し説明させてください。
直観的:無意識の方法や感覚に基づいて、自分が正しいと感じているものを使用します。
(カール・セーガンが仮定したように)あなたが今まで出会ったことのないものとはまったく異なるものを理解できないことを受け入れるなら、そのようなものをリモートで一度も使用したことがないのに、どうやって何かを「知る」ことができるでしょうか?
考えてみてください。子供たちはドアノブがどのように機能するかを「知っている」からではなく、誰かがそれをしているのを見てからドアを開けようとします...しばしばノブを間違った方向に回したり、早すぎたりします。ドアノブの仕組みを学習する必要があります。次に、この知識は、ウィンドウを開いたり、引き出しを開いたり、大きなノブのようなハンドルでほとんどすべての大きなものを開いたりする、異なるが類似した例に適用されます。
私たちにとって直感的に見える単純なものでさえ、他の文化の人々にとってはまったく直感的ではありません。誰かが彼らの前で腕を伸ばし、腕を動かさずに手首を上下に動かした場合....彼らはあなたを追い払っていますか?おそらく、あなたが日本にいない限り。そこで、この手の信号は「ここに来る」ことを意味します。だから誰が正しいですか?もちろん、両方とも独自のコンテキストで。しかし、両方に旅行する場合は、両方を知る必要があります... UIデザイン。
私は、プロジェクトの潜在的なユーザーに既に「なじみのある」ものを見つけて、それらを中心にUIを構築しようとしています。ユーザー中心の設計です。
AppleのiPhoneを見てください。あなたがそれを嫌ったとしても、それに入った思考の量を尊重する必要があります。完璧ですか?もちろん違います。時間が経つにつれて、オブジェクトの知覚された「直観性」は成長するか、完全に消えることさえあります。
例えば。ほとんどの人は、上下に2列の穴がある黒のストリップがフィルムストリップのように見えることを知っていますか?
彼らがそれが何であるかあなたの平均9または10歳に尋ねてください。ハリウッドや映画(映画)に関連するものを表すのに今でも使われているにもかかわらず、現在何人の子供たちがそれをフィルムストリップとして識別するのに苦労しているのか驚くかもしれません。過去20年間のほとんどの映画はデジタル撮影されています。そして、私たちの誰もがどんな種類の映画、写真、映画を最後に開催したのですか?
つまり、私にとって重要なのは、視聴者を知り、「直感的」なものの傾向や変化に追いつくために常に研究し、メインユーザーをターゲットにし、経験の浅い人を罰するようなことをしないようにすることです。上級ユーザー、または初心者を手で保持するために上級ユーザーを遅くします。
最終的に、すべてのプログラムを使用するには、ユーザー側で一定量のトレーニングが必要になります。どの程度のトレーニングをどのレベルのユーザーに対して行うかは、決定する必要がある決定の一部です。
ターゲットユーザーの人間、コンピューターユーザー、学生などの過去の経験レベルに基づいて、多少なりとも馴染みのあるものがあります。
私はベルカーブの最も太い部分を撮影し、できるだけ多くの人を獲得しようとしますが、誰も喜ばないことを理解しています。
duffymoは、その理由を思い出させてくれました。多くのプログラマーは、 "* Design" == "Art"と考えています。
優れたUIデザインは芸術的ではありません。しっかりした原則に従っています。研究を行う時間があれば、データでバックアップできます。
プログラマーがする必要があるのは、時間をかけて原則を学ぶことだと思います。コードでもレイアウトでも、可能な限りベストプラクティスを適用することは私たちの本質だと思います。私たちがしなければならないことは、私たちの仕事のこの側面に対するベストプラクティスが何であるかを自分自身に認識させることです。
UIデザインを改善するために何をしましたか?
それに注意してください!
ニュースや電子バスのサインのチャートを見るたびに、「彼らはどのようにしてそのデータを取得したのでしょうか?彼らは生のSQLでそれをしましたか、それともLINQを使用していますか?」 (または、ここに独自のオタクの好奇心を挿入します)。
あらゆる種類の視覚要素を使用して、それを開始する必要があります。
しかし、新しい言語を学ぶのと同じように、実際に自分自身を投げ込まなければ、それを学ぶことはありません。
別の答え から取った:私は書いた:
あなたの周りの世界を見て、本当に見てください。なぜ私はそのUIが好きなのに、このUIが嫌いなのですか?このレストランのメニューで麺料理を見つけるのが難しいのはなぜですか?うわー、私は言葉を読む前にそのサインの意味を知っていました。なんで?その本の表紙はどうしてそんなに間違っているのでしょうか?すべての種類の視覚要素に自分のやり方を反応させる理由について時間をかけて考え、それを作品に適用してください。
UIデザインの最良のツールは、ユーザーが初めてソフトウェアを使用するのを見るのを見ることです。大量のメモを取り、いくつかの質問をします。それらを指示したり、ソフトウェアの動作を説明しようとしないでください。これがUIの仕事です(そしてよく書かれたドキュメント)。
すべてのプロジェクトで一貫してこのアプローチを採用しています。ユーザーがこれまでに考えたことのない方法でソフトウェアを扱うのを見るのは常に魅力的です。
UIの設計が難しいのはなぜですか?開発者とユーザーが会うことは決してないので、一般的に。
主な問題は、さまざまな才能やスキルセットとは何の関係もないと思います。主な問題は、開発者として、あなたはアプリケーションが何をし、どのようにそれを行うかについてあまりにも多くを知り、その知識を持っている人の観点からあなたのUIを自動的に設計することです。
ユーザーは通常、アプリケーションについてまったく何も知らない状態で開始するので、その内部動作について何も学ぶ必要はありません。
あなたが持っている知識を使わないことは非常に難しく、ほとんど不可能です-そして、それはUIをその背後にあるアプリを開発している誰かによって設計されるべきではない理由です。
マイクロソフトは独自のガイドラインとかなり矛盾していることは知っていますが、Windowsのデザインガイドラインを読むことは本当に助けになることがわかりました。私のウェブサイトにコピーがあります こちら 、Vista UXガイドを少し下にスクロールします。色、間隔、レイアウトなどを支援してくれました。
「画面の両側からの設計」は、プログラマーがUI設計を難しいと感じる理由について非常に単純ですが深遠な理由を提示します。
したがって、どちらか一方のデフォルトのトレーニングがもう一方の世界の正反対である場合、一方の世界から他方の世界に移動することは確かに困難です。
プログラムがUIデザインを嫌うと言うのは、ポイントを見逃すことです。問題のポイントは、ほとんどの開発者が受ける正式なトレーニングが、このテクノロジーに深く関わっていることです。人間-コンピューターの相互作用は単純なトピックではありません。 「yの代わりにxを実行すると、ユーザーがこのアプリケーションをより効果的に使用するようになります」という簡単な1行のステートメントを提供するだけでは、「気に溶け込む」ことはできません。
これは、UIデザインの一部が欠落しているためです。人間の脳。 UIの設計方法を理解するには、人間の心が機械とどのように相互作用するかを理解する必要があります。私はミネソタ大学で心理学の教授によって教えられたこのトピックについて受講した素晴らしいコースがあります。 「Human-Machine Interaction」という名前です。これは、UI設計が非常に複雑な理由の多くを説明しています。
心理学は因果関係ではなく相関に基づいているため、UIデザインの方法が特定の状況で常に機能することを証明することはできません。多くのユーザーが特定のUIデザインが魅力的または効率的であることを相関させることができますが、常に一般化されることを証明することはできません。
さらに、多くの人が見逃しているように見えるUIデザインには2つの部分があります。審美的な魅力と機能的なワークフローがあります。 100%の審美的な魅力を求めるなら、あなたの製品以外の人々が必ずいるでしょう。しかし、美学がユーザーの不満を減らすことは非常に疑わしい。
このトピックと講座に関する良い本がいくつかあります(Bill Buxtonの Sketching User Experiences 、および Cognition in the Wild by Edwin Hutchins)多くの大学には、人間とコンピューターの相互作用に関する大学院プログラムがあります。
この質問に対する全体的な答えは、個人がコンピューターサイエンスをどのように教えているかにあります。ユーザーエクスペリエンスに基づいたものではなく、すべて数学ベース、ロジックベースです。そのためには、一般的な4年以上のコンピューターサイエンスの学位が必要です(ただし、4年のコンピューターサイエンスの学位が心理学でマイナーであり、ヒューマン-コンピューターインタラクションで強調されていない限り)。
有用なフレーミングは、コミュニケーションのプロセスを設計することとして、あなたがしていることを積極的に考慮することです。非常に現実的な意味では、インターフェイスは、ユーザーがコンピューターに何をすべきかを伝えるために使用する必要がある言語です。これは、いくつかのポイントを考慮することにつながります。
本当に、インターフェイスの相互作用をプログラマがどう考えているかを判断するのは少し難しいですが、 その他 コミュニケーションのプロセスよりも、しかしおそらく問題は、それが何かであると考えられないことです。
質問を変えましょう-
「UIデザイナー」は、情報アーキテクチャとプレゼンテーションレイヤーのみを設計する運命にありますか?快適で効率的なシステムレイヤーをより効率的に設計するために、脳を再訓練するためにできることはありますか?
「uiデザイナー」はまったく異なる視点をとらなければならないようです。彼らは箱の内側から外側を見る必要があります。箱の外から見る代わりに。
Alan Cooper's "The Inmates are Running the Asylum" 私たちは両方の視点をうまくとることはできないと考えています。
あなたは私に考えさせないでください本に言及しました。これを読むことを強くお勧めします。
開発者は、(必ずしも)編み物が上手ではないのと同じ理由で(必ずしも)UIデザインが上手ではありません。難しいし、練習も必要だし、そもそも誰かに見せてもらっても害はない。
ほとんどの開発者(私も含む)は、ソフトウェアの作成に必要なUIの「設計」を開始しました。開発者がそれを上手に使う努力をするまで、彼/彼女はそうしません。
UXデザインとソフトウェア開発は、決して排他的なスキルではありません。それどころか、彼らは両方とも常識と論理、細部への注意、全体像を見ることができることを必要とします。したがって、開発者としての可能性が高い場合は、優れたUXデザイナーになることができます!
多くの開発者はUXデザインの経験がなく、その逆もあるため、相互に排他的に見える場合があります。また、UXデザインについて考える前に、アーキテクチャ、フレームワーク、または言語について考え始めると、間違った方向に進む可能性があります。
改善するには、既存のサイトを見て回ってください。すでに提案されている本に加えて、ロビン・ウィリアムズの優れた本「The Non-designers Design Book」もご覧ください( sanitised Amazon link )
The Zen Garden にもあるさまざまな提案を見て、ビジュアルデザインの可能性を見てください。
UIデザインは間違いなく芸術です。Cのポインターのように、それを手に入れる人もいればそうでない人もいます。
しかし、少なくとも 彼らの試みで笑うことができます 。ところで、面白い漫画をOK/Cancelに感謝し、本「The Best Software Writing I」にJoelを入れてくれてありがとう( amatised Amazon link )。
「なぜソフトウェアがダメなのか」という本を読んだら、Plattの答えを見たでしょう。
しかし、あなたの質問に対する別の別の答えは、「なぜ、一部の開発者にとって歯科がそんなに難しいのですか?」 -UI設計は、UIデザイナーが行うのが最適です。
http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/
すでにたくさんの良いコメントがありますので、追加できるものがあるかどうかはわかりません。それでも...
ランダムな「Joe the plumber」が良いコードを書くことができるとは期待していません。では、ランダムな「Joe the Programmer」が優れたUIを設計するのはなぜでしょうか。
共感が役立ちます。 UIデザインとプログラミングの分離は役立ちます。ユーザビリティテストが役立ちます。
しかし、UIデザインは他の技術と同じように学び、実践しなければならない技術です。
それらは非常に異なるスキルセットだと思います。優れたデザイナーは、人間の行動、色やフォントの心理などを知っています。それは、同時にマーケティング担当者と開発者になろうとするようなものだと思います。非常に難しいが、必ずしも不可能ではない。
UIの専門家を何人か見つけて、その研究の推奨事項を確認してみます。あなたがグーグルのような非常にミニマリストなものを設計しているのでなければ、それが重要なプロジェクトであるなら、UIの芸術を主なものとして研究した人を雇うのがおそらく最善です。
とはいえ、非常に実用的なアプリを設計している場合、インターフェイスのシンプルさと明快さに焦点を当てることができると思います-これは少なくともGoogleの成功(およびスタックオーバーフロー)の鍵の少なくとも半分だと思います-つまり直感的で使いやすいです。
良いUIは論理的ではないからだと思います。優れたUIは直感的です。
ソフトウェア開発者は通常、「直感的」に悪いことをします
ユーザーインターフェイスは、ペイントの薄いコートのように、事後に適用できるものではありません。それは最初にそこに存在する必要があるものであり、実際の研究に基づいています。もちろん、多数のユーザビリティ調査が利用可能です。それは最初にそこにあるだけでなく、そもそもソフトウェアを作っているまさにその理由の中核を形成する必要があります:世の中にはいくつかのギャップがあり、いくつかの問題があり、それを作る必要がありますより使いやすく、より効率的です。
ソフトウェアはそれ自体のためではありません。多数のソフトウェアが存在する理由は、人々のためです。誰もがそれを必要とする理由を理解せずに、新しいソフトウェアのアイデアを思い付こうとすることすら絶対にばかげています。しかし、これは常に起こります。
1行のコードを作成する前に、インターフェイスのペーパーバージョンを調べ、実際の人でテストする必要があります。これはちょっと奇妙で馬鹿げたもので、子供や、「コンピューター」として振る舞う人に最適です。
インターフェイスは、自然な認知機能を活用する必要があります。穴居人はあなたのプログラムをどのように使用しますか?たとえば、移動するオブジェクトの追跡が本当に上手になるように進化しました。そのため、iphoneなどの物理シミュレーションを使用するインターフェイスは、変更が即座に発生するインターフェイスよりもうまく機能します。
特定の種類の抽象化は得意ですが、他の抽象化は得意ではありません。プログラマーとして、私たちは最も奇妙な抽象化のいくつかを理解するために精神的な体操とバックフリップを行うように訓練されています。たとえば、難解なテキストのシーケンスは、金属プラッター上の電磁状態のパターンを表し、それに変換できることを理解しています。これは、慎重に設計されたデバイスに遭遇すると、電子機器で光速で発生する目に見えないイベントのシーケンスにつながります回路、およびこれらのイベントは、有用な結果を生成するように指示することができます。これは理解しなければならない信じられないほど不自然なことです。私たちには完全に合理的な説明がありますが、外の世界に対しては、目に見えない知覚力のある霊を召喚して、入札を行うための不可解な呪文を書いているようです。
通常の人間が理解する種類の抽象化は、マップ、図、シンボルのようなものです。シンボルに注意してください。シンボルは非常に壊れやすい人間の概念であるため、シンボルが学習されるまで、意識的に精神的な努力をして解読する必要があります。
シンボルのコツは、シンボルとそれが表すものとの間に明確な関係がなければならないということです。それが表すものは名詞でなければなりません。その場合、シンボルはそれが表すものと非常に似ているはずです。シンボルがより抽象的な概念を表している場合は、事前に説明する必要があります。 mswordまたはphotoshopのツールバーにある不可解なラベルのないアイコンと、それらが表す抽象的な概念を参照してください。 photoshopの切り抜きツールアイコンは、切り抜きツールを意味することを学習する必要があります。 CROPの意味を理解する必要があります。これらは、そのソフトウェアを正しく使用するための前提条件です。これは重要なポイントをもたらします、仮定された知識に注意してください。
私たちは4歳前後の地図を理解する能力しか得られません。チンパンジーが6歳または7歳頃の地図を理解する能力を獲得することを一度読んだことがあると思います。
Guiが最初から非常に成功した理由は、コンピューターへのテキストインターフェイスの大部分を、コンピューターの概念を物理的な場所に似たものにマッピングするものに変更したためです。使いやすさの点でguiが失敗するのは、実際の生活で見られるものに似てしまうところです。目に見えない、予測できない、理解できないコンピューターで起こることは、物理世界でこれまで見たことのないものとはまったく似ていません。現実のシミュレーターを作るだけでは意味がないので、これのいくつかが必要です-アイデアは仕事を節約することですので、少し魔法が必要です。しかし、その魔法は意味を成さなければならず、人間が理解によく適応しているという抽象化に基づいていなければなりません。抽象化が深まり、階層化され、手元のタスクと一致しなくなったときに、物事が崩壊します。言い換えれば、インターフェイスは、基礎となるソフトウェアの適切なマップとして機能しません。
本がたくさんあります。私が読んだのでお勧めできるのは、ドナルド・ノーマンの「日常のデザイン」と、ジェフ・ラスキンの「ヒューマン・インターフェース」です。
心理学のコースもお勧めします。 「毎日のモノのデザイン」ではこれについて少し説明しています。心理学に対する開発者の「民俗理解」のために、多くのインターフェースが壊れています。これは「民俗物理学」に似ています。動いているオブジェクトが動いていると、ほとんどの人にとって意味がありません。 「それを動かし続けるには、押し続ける必要があります!」物理初心者と考えています。ユーザーテストは、ほとんどの開発者にとって意味がありません。 「ユーザーに何が欲しいのかを尋ねるだけで十分です。」心理学の初心者を考えています。
Philip Zimbardoが主催するPBSドキュメンタリーシリーズ、Discovering Psychologyをお勧めします。それに失敗したら、良い物理学の教科書を見つけてください。高価な種類。 Bordersで見つけたパルプフィクションの自己助けではなく、大学図書館でしか見つけられないハードバウンドなもの。これは必要な基盤です。それなしで良い設計を行うことはできますが、何が起こっているのかを直感的に理解するだけです。良い本をいくつか読むことは、あなたに良い展望を与えてくれます。
音楽と同じように:時々、人々は技術的に優れたミュージシャンになることができますが、アーティストにはなれません。私の経験則では、常に必要なUIのみをユーザーに提示します。多くのバックエンド開発者が、UIを実行するときに考えられるすべてのオプションで画面をあふれさせることに気付きます。これらのタイプのマインドは、すべての詳細を最初に持ち、必要のないものをゆっくりと無視するのが好きですが、ほとんどのエンドユーザーには機能しません。
くだらないUIを作成するとき、ほとんどの場合、その特定の部分に「ゾーンイン」しすぎていることがわかります。
特定の機能の開発およびテスト中、私はほとんど常にそれを何度も使用しています。
何十回もチェックアウトした後、私は自分が何をしようとしているか、プログラムを自分のやりたいようにするために何をする必要があるかを正確に知っています。また、この特定の部分の機能を、それが「完了する」まで何度も繰り返し表示します。テスト中に、アプリ/メニュー/ワークフロー/その他のすべてをすばやく突破します。
ユーザーはまったく同じ状況にありません。彼らは、ソフトウェアのこの部分を独立した「チャンク」として見ていません。彼らはいつも何回もそれをしているわけではなく、彼らが頻繁にそれをしているとき、彼らは確かに頻繁にITSELFによってそれをしていません。彼らは残りのプロセスを「スキップ」せず、開発者が行うようにこの部分に焦点を合わせています。
UIを見て、「これで何をするつもりなのか?」と考えることが重要です。明確でない場合は、間違っています。私たちはソフトウェアがどんな入力を望んでいるかを知っている状況にあり、その入力を得る方法を見つけました。ユーザーは、何らかの結果が必要な状況にあり、その結果を得るために何をする必要があるかを知りたいと思っています。
UIデザインは科学よりも芸術であり、ユーザーを理解し、ユーザーに共感する能力が必要です。
これは、一日中コンピューターと話すのとはまったく異なります。
私は人々が常にこれを理解しているとは思わない。
ここに少しのセルフテストがあります: FamFamFam silk icons を見てください。最後に書いたアプリケーションのさまざまな機能を表すために選択するアイコンについて考えてください。これを行うのに10分以上費やすと、目がかすみ始めたら、UIデザインはおそらくあなたのためではありません。
左脳と右脳。芸術的な感覚を持っていない人もいます。
誰もが勉強と勤勉さによってインターフェースを設計するのが上手くなると思います。それはあなたが一流のアーティストやデザイナーになるという意味ではありません。
いつでも改善できると思います。
あなたの母親のためにデザインしてください。
ユーザーはトップダウンを考えますが、プログラマーはUIを作成するステップに到達するとボトムアップを考えることがよくあります。
私たち(プログラマー)は、仕事をし、必要なデータなどを保持するデータモデルを作成することを一生懸命に考えています。UIを作成して、基礎となるモデルにきちんとマッピングします。あまりにも多くの場合、ユーザーが同じタスクにどのように取り組んでいるかを確認することを忘れ、フローや考え方に入らないことがよくあります。
システムのユーザーが私たちと同じように問題について考え、データを保存および処理する方法を期待し、UIがどのように機能するかを理解することは当然です。
これは多くの場合、タスクに対する彼らの見解(および期待)とは一致しません。
解決方法一つの方法は、実際に(潜在的な)ユーザーに、プログラムを表示する前にプログラムがどのように動作するかを実際に尋ねることだと思います。機能を実装する方法についてのヒントを決して与えないでください。彼らと一緒に紙の上でUIをプロトタイプし、彼らがあなたが期待するものを教えて、道のすべてのステップが必要です。当たり前のことを決して受け取らないでください。
Palmパイロットは、よりトップダウンの方法で設計されました。
パイロットの開発を開始する前、ホーキンスはポケットに潜在的なパイロットの大きさの木材を一週間持ち込んだと言われています。 ( この記事から )
彼は木片で何をすべきかをシミュレートし、コードとしてどのように実装する必要があるかを考えませんでした。新しいアイデアが出てくるたびに、彼はそれを木片で「試し」ます。
もちろん、あなたが思いついたアイデアのいくつかに対処する方法についてのいくつかのガイドラインが必要になります。そして、たとえ技術的に可能だとしても、すべてに対処する必要はないかもしれません...
それはすべて練習、少しのトレーニングと回顧です。しかし、ほとんどのバックエンド開発者は、優れたUIデザインが実際に経営陣によって評価されていない環境で働いています。
UI設計に関する文献を少し読んだ後、UI設計に関するコーディング道場をいくつか整理します。
10年前、私は本当にUIデザインを吸いました...私が長年良くなるのを助けたのは、謙ilityおよび完璧を目指して努力する。
結論:過去または現在の成果に満足しすぎることはありません。自分や他人の間違いから学びましょう。
「快適で便利なプレゼンテーションレイヤーをより効果的に設計するために脳を再訓練するためにできることはありますか?」
はい-インターフェイス駆動型アーキテクチャを使用します。 最初ビジネス要件からユーザーフローを設計します--- その後ユーザーフローに基づいてプログラミングロジックとデータベースを設計します。中間層とバックエンドをフロントエンドに対応するように設計されたものとして構成すると、ユーザー中心のアプリになります。
「良いUIデザイン」は実際には 2つの問題 :
両方とも難しい問題です。私の経験では、プロジェクトの後半でい驚きをもたらさないように、2つのことを並行して探索する必要があります(「なぜ私たちのセクシーなドラッグアンドドロップ超スローIE8では??修正不可能というのはどういうことですか?」)
正しいデザインを得るにはポジシライトを探さなければなりません。本はあなたの状況にとって最も意味のあることを試すことにあなたを導くことができます-もちろん、経験はさらに良いです。また、実際のユーザーからのフィードバックが絶対に必要です-デザインがすでに正しいことを他にどのように見つけますか? (you確かにわかりません..読んでください!)
「デザインを正しく取得する」は、次の問題です。これは、適切なデザインを実装する必要があることを意味します。
正しい答えを見つけるには人間が何を望んでいるかを理解する必要があるため一方、あなたは「外側」から見つけることができません。これは、(経験)ガイド付きの試行錯誤のアプローチが唯一の方法であることを意味します。
より明確にあなたの質問に答えるために:
なぜ良いUIデザインはいくつかの開発者にとって難しいのですか
筋金入りの開発者にとって大きな問題は、ソフトウェアがどのように機能するかについての理解が、ユーザーがそれがどのように機能するかを考える方法とは非常に異なることです(たとえば、URL「www.stackoverflow.com」は「com.stackoverflow.com」 、DNSの仕組みについて何か知っていれば、そのようなURLを期待するブラウザを販売してみてください:))。
補足として:「ユーザーインターフェイスデザイン」ではなく「エクスペリエンスデザイン」を検討することをお勧めしますが、それは別の話です。
答えの一部は、コーディングがデザイナーにとって見た目よりはるかに難しいのと同じように、UIデザインは見た目よりもはるかに難しいということです。 2つは非常に異なることについて非常に異なる程度に心配しており、これは、必要なアプローチとスキルの明らかな違いは別として、お互いに見えない問題に焦点を合わせます。
私は、視覚的なツールを一切使用せずに、自分のアプリを説明し、誰かにそれを使用する方法を説明するのに役立つことがわかりました。実際に必要で重要なことに焦点を当てるのに役立ち、他の人がすぐに理解できることをフィードバックします。これは、1行のコードを作成する前でも実行できるので、実行するのは非常に安価であり、芸術的なスキルは必要ありません。もう1つの利点は、アプリを言語化することで、脳の一部が動作するようになります。
あなた自身のドッグフードを食べることは、実際には全く最良の方法ではありません。ユーザーの懸念に焦点が当てられていないことは真実ですが、それはすべての話ではありません。あなたの専門知識が成長するにつれて、通常のユーザーの懸念から遠ざかることも同じです。私が知っているほとんどの開発者は、問題を解決するソフトウェアを作成する上で良い仕事をしたいと思っています。
切断が発生するのは、想像力の欠如です。人間としての私たちがすべての可能性と組み合わせを考えることができない。 「より良い」方法論でこれを克服しようとします。
動作することがわかった唯一の方法は、ユーザーからのフィードバックを受け取る際に自分自身を一列に並べることです。このようにして、私が解決しようとしている問題について、一度だけではなく、ユーザーがソフトウェアを使用するにつれて継続的に学習します。
これは簡単な解決策ではありません。優れたプログラマーであるだけでなく、Xが得意である必要があります。 Xが得意であれば、可能性と限界を理解するために必要な経験をすることができます。コードでそのことを説明し始めると、提供する機能とUIのデザインの両方で、より洗練されたソフトウェアになります。
脳を再訓練することではなく、問題を効果的に解決するために必要な経験を積むことです。これは、ユーザーフィードバックのラインである場合にのみエクスペリエンスが得られるStack Overflowのようなまったく新しいものに行く場合に特に当てはまります。
Grandmawテストと呼ばれるものを使用します。
ユーザーインターフェイスとその重要性に関する多くの考えを提供する優れた本は、 最初はコマンドラインでした Neal Stephensonによるものです。誰もがGUIを必要とするわけではなく、プログラミングをしない多くの人々だけが必要です。これは、ディズニーワールドのアニマルキングダムと実際のアマゾンの違いのようなものです。
そのdifferentスキルのセット。 Webデザイナーになるために必要なスキルISプログラマーになるために必要なスキルと同じではありません。HTML、CSS、Javascriptなど、重複するスキルはほとんどありません。 Webデザインは優れたWebデザインであり、その逆も同様です。
RWendi
私は、質問によって表明されたものと同様の欠陥があると言うことから始めます。それにもかかわらず、私は誰かが何かをするのを吸う唯一の理由は次の理由だと思います:
したがって、私のアドバイスは、まず主題を説明する必要な本やウェブページを入手し、それらを研究することです。これらに関する多くの良い答えがあります。リストに Tog On Interface を追加します。また、Mac、iPhone、Googleのような すばらしいと考えられている のUIも見てください。
2番目のステップは、UIの作成を開始することです。これは簡単に聞こえますが、これが職務記述書の一部でない場合は、自分の時間にこれを行う必要があるかもしれません。 UI開発者としてWeb開発プロジェクトに参加してください。あなた自身のプロジェクトか他の誰かのプロジェクトかもしれませんが、ウェブページの作成が上手くいけば、あなたに必要な経験を与えることができ、難しくするべきではありません。幸運を!
私はソーシャルサークル外の人々のためのプログラムを設計し、彼らの行動を観察しました。これを行うことで、私はもはや友人の偏見や自分のプライドとエゴの影響を受けなくなりました。アプリを改善する中で、私はより謙虚になり、デザインの問題に敏感になりました。タスク指向の設計、シンプルさの重要性を学びました。機能が多すぎることのコストを学びました。経験があれば、あなたもそうです。
私が強くお勧めする参考文献:
いくつかの参照と哲学を無視することを強くお勧めします:
プログラマーは一般的にUIデザインを嫌います。使いやすさとUIデザインを専門とするデザイナーがいますが、商用ソフトウェア/ウェブサイト/エンターテインメントなどを開発するときは、尊重されるべきです。
ほとんどのプログラマーが抱えている問題は、自分の鼻を通り過ぎて、物事を理解し、消化しやすくするものを理解できないことです。
UI設計の最良の原則の1つは、常にターゲットに簡単にアクセスできるように設計されたインターフェイスを用意することです。
素晴らしく簡単な例はエレベーターです。通常、ボタンを押してドアを開閉し、建物の床を横断します。代わりに、1階から2階に行くためにひっくり返さなければならないノブとスイッチがあると想像できますか?パネルをスライドさせて3色のキーを持つ3つのキースイッチにアクセスしなければならない場合、特定の階に到達するには特定の順序で回さなければなりません。
悪いインターフェースがどれほど難しいか、良いインターフェースがどれほどシンプルで使いやすいかをすぐに確認できます。
UIデザインはまったく異なるスキルです。それは視覚芸術に密接に関連するものであり、視覚的な対称性と美しさを評価し、創造することができます。そして、なんらかの理由で、通常、コーダーは視覚芸術に不向きです。私は例外があることを知っています-しかし、一般的なルールとして-それは保持します。
だから本当に(あなたがこの奇妙なルールの例外でない限り)-それはあなたが自然に才能のない他の分野のように扱われるべきです。あなたが得たチョップで十分にうまくいくことができるかどうかを評価する必要があります-または、チャンスがある場合は、おそらく少しのエネルギーの改善を費やすこともできます。ただし、能力のある分野を開発し、おそらくあなたが持っていない分野に強い人々と一緒に働きたいと思っている方が良いでしょう。
このアイデアをカバーする優れた本は次のとおりです。今、マーカス・バッキンガムによるあなたの強みを発見してください...それは読みやすいです。
UIデザインとプログラムデザインにはしばしば矛盾する目標があるためだと思います。プログラミングするとき、私はよく「これを行う最も簡単な方法は何ですか?」と考えます。 UIを設計するとき、最も簡単な方法は常に最もユーザーフレンドリーではありません。両方を行うと、ユーザーの使いやすさに悪影響を与える最も簡単な実装を選択する傾向があります。
また、プログラマーは製品に近すぎて、ユーザーの観点から製品を見ることができないと考えています。アプリケーションをプログラミングする人にとって非常に簡単で直感的に見えるのは、ユーザーにとってではないかもしれません。ユーザーの入力を取得する必要があります。
UIデザインも常に正しいものでも間違ったものでもありません。 UIの評価方法は人によって異なります。たとえば、Officeの新しい「リボン」UIが嫌いな人もいれば、気に入っている人もいます。 AppleのOSX UIは素晴らしいと考える人もいれば、気にかけず使いにくいと感じる人もいます。どのUIを思いついても、それを気に入らない人がいるでしょう。
Usability Designでは、開発者が特定のパスとルールに沿って考える必要があるため、すべてのCSプログラマーが優れた使用可能なデザインを作成できると考えています。一方、一部のプログラマーにとって、優れた「魅力的な」デザインを開発することはほぼ不可能です。これは、両方が容赦なくリンクされているという意味ではありません。モーツァルトのように美しい音楽を書くことができ、サッカーがあまり得意ではありません。
簡単です。
開発者はデザイナーではありません。彼らはデザインについての訓練も学習もしていないので、なぜUIデザインのようなものが得意なのでしょうか? 「なぜ一部の開発者にとって会計がそれほど難しいのか」と言うのとほとんど同じです。
UIデザインは基本的にデザインであり、デザインはルールを視覚的に表現したものです。設計に長けているということは、何かが特定の方法で見られ、行動し、振る舞う理由を理解することを意味します(たとえば、リンクが強調表示される理由、ヘッダーがページの上部にある理由など)。
設計と開発はまったく異なる2つの獣ですが、どちらも背景知識と実践的な作業が必要です。これらのテーマの1つに間に合わない場合は、プログラムやWebサイトの1つをいかに見栄えの良いものに変えたとしても、あまり得意ではありません。
uIの設計とソフトウェア開発は、脳の2つの異なる側面で機能します。設計者が開発を怠るのではなく、逆もまた同じです。彼らは脳の間違った側でそれをやろうとしているのです。真面目な人は同意しません。
ユーザーのフィードバックについては、Silverback( http://silverbackapp.com/ )はMacを使用している場合に最適なツールです。するべきことのリスト(この映画を見つける、予告編を見る、この俳優と一緒にこの映画を見つける、購入するなど)を作成し、ユーザーをそこに座らせてリストに載せることをお勧めします。
最も重要なことは、それを行う方法を伝えるのではなく、タスクをどのように達成するかを確認することです(2番目のシーンでは、俳優によってブラウズするか、アルファベット順にシーンを見つけますか?)。会社の技術に詳しくない人から始めて、Craigslistにアクセスするか、街頭に出てランダムな人に支払い、テストすることができます。
開発者はUIを考えるとき、通常、このタスクまたはこのタスクに使用できる完璧なウィジェットを考えます(ウィジェットとは、テキスト領域、コンボボックス、つまりインタラクティブなAjax検索フィールドを意味します...)。 UI、特にHCIは、下位レベルで検討する必要があります。 UIに関する反射を4つのステップに分割するのは興味深いことです。
誰も提案していないが、非常に役立つのは、人間工学のコース(通常は大学院レベル)を受講することです。コースを受講したくない場合は、少なくとも教科書を見つけて読んでください。
「この分野の欠陥を取り除くために他の人が行ったことは何ですか?」
—クリス・バランス
十分な新鮮で不慣れなユーザーが製品を使用できるようになったら、あなたは自分の仕事をしたことを知っています。
(また、お使いのソフトウェアはおそらくMicrosoftのように見えるでしょうし、おそらくそれを使うことを楽しむことはないでしょう...)
こちらもお読みください この投稿 この分野で参考になりました。基本的に、ユーザーが望んでいるように見えるものに屈する必要があると述べています。
別の言い方をすれば...
ユーザーが何をしているのかを見る必要がありますすでにやろうとしている...
私が大学に通ったキャンパスのクラスに出入りする学生によって作成されたトレイルがありました。学校が歩道に気づいたとき、彼らは人々がすでに歩いていた場所にフェンスを設置しました。学校は間違ったことをしました。 生徒がすでに歩いている場所に歩道を設置したい!
別の例を挙げると、最近のビデオ店の歴史について考えてみてください:昔、たくさんのビデオ店がありました:ブロックバスタービデオなど...人々はそれらのビデオ店について好きではなかったのですか?延滞料。 Netflixは、クライアント/エンドユーザーが望んでいたものよりも多かったため、延滞料を取り除いた。
現在、Block Busterは、他のすべての有料チャリングビデオストアとともに、破産を回避しています。
これを行うのはもっと難しいですか?あなたの脳をオフにし、彼らが望むものを人々に与えるには?もちろん...自分の意志を曲げることです...それは常に難しいことですが、最終的にはエンドユーザーに欲しいものを提供するという目標に到達しています。
おそらく、一部の開発者がDosから始めて、コマンドラインOSで部分的に作業を続けているためです。
または私たちの一部がソフトウェアを書いているため、コンピューターには通常のロジックがあるため、人間のようではありません。 :-)
一部の開発者にとってUIデザインがそれほど難しいのはなぜですか?
それは、バスケットボールがフットボール選手にとって難しい理由を尋ねるようなものです。
快適で便利なプレゼンテーションレイヤーをより効果的に設計するために脳を再訓練するためにできることはありますか?
はい。ソフトウェアを使用しようとしているユーザーを監視します。ユーザビリティテストとも呼ばれます。
ユーザビリティテストの基本的な考え方は、ターゲットオーディエンスと同様のバックグラウンドを持ち、ソフトウェアをまだ見たことがない人を連れて、典型的な一連のタスクを実行するよう依頼することです。理想的には、彼らが考えていることを大声で話して、彼らの思考プロセスについてより多くの洞察を得られるようにするべきです。次に、彼らが何をするかを見てください。批判的に、あなたはその衝動がどれほど魅力的であっても、彼らを支援しません。結果は非常に驚くべきものであり、非常に明らかにすることができます。使いやすさのテストは、一方向ミラー、ビデオカメラなどでは非常に凝ったものになりますが、ほとんどの利点を得るために実際には必要ありません。 クリュッグの優れた本、考えさせないでください:Webユーザビリティの常識ガイド 。彼のアドバイスのほとんどは、デスクトップアプリケーションのテストにも同様に適用できます。
一般的に彼らはUIデザイナーではないからです。その異なるスキル。それでおしまい。
UIを設計できない理由は、私たちは完璧主義者であり、いつ十分なのかを判断できないからだと思います。私は個人的にUIの設計に耐えられないことを知っています。なぜなら、私は常に自分自身を疑い、「いや、それでは十分ではない」と言っているからです。