Почему хороший дизайн пользовательского интерфейса так сложно для некоторых разработчиков?

Некоторым из нас просто нелегко работать с более мягкими аспектами дизайна пользовательского интерфейса (особенно я). Являются ли "back-end coders" обречены только на разработку бизнес-логики и слоев данных? Есть ли что-то, что мы можем сделать, чтобы переделать наш мозг, чтобы быть более эффективными при проектировании приятных и полезных слоев презентации?

Коллеги рекомендовали мне несколько книг, в том числе "Дизайн сайтов", "Не заставляйте меня думать и почему программное обеспечение отстойно, но мне интересно, что сделали другие, чтобы устранить их недостатки в этой области?"

Ответ 1

Позвольте мне сказать прямо:

Улучшение этого не начинается с рекомендаций. Он начинается с перефразирования, как вы думаете о программном обеспечении.

Большинство разработчиков hardcore имеют практически ноль эмпатию с пользователями своего программного обеспечения. У них no clue, как пользователи думают, как пользователи строят модели программного обеспечения, которые они используют, и как они используют компьютер в целом.

Это типичная проблема, когда эксперт сталкивается с мирянами: "Как на самом деле нормальный человек может быть настолько глупым, чтобы не понимать, что понял эксперт 10 лет назад?

Одним из первых фактов, подтверждающих, что невероятно трудно понять почти всех опытных разработчиков, является следующее:

Нормальные люди имеют совершенно иную концепцию программного обеспечения, чем у вас. Они не имеют никакого понятия о программировании. Никто. Нуль. И им все равно. Они даже не думают, что им нужно заботиться. Если вы их заставите, они удалят вашу программу.

Теперь это невероятно жестко для разработчика. Он гордится тем программным обеспечением, которое он производит. Он любит каждую особенность. Он может точно сказать, как работает этот код. Возможно, он даже придумал невероятный умный алгоритм, который заставил его работать на 50% быстрее, чем раньше.

И пользователю все равно.

Какой идиот.

Многие разработчики не могут работать с обычными пользователями. Они впадают в депрессию из-за своих несуществующих знаний о технологии. И вот почему большинство разработчиков уклоняются и думают, что пользователи должны быть идиотами.

Это не так.

Если разработчик программного обеспечения покупает автомобиль, он ожидает, что он будет работать плавно. Обычно он не заботится о давлениях на шинах, механической тонкой настройке, которая была важна, чтобы заставить ее работать именно так. Здесь он не эксперт. И если он покупает автомобиль, который не имеет тонкой настройки, он возвращает его и покупает тот, который делает то, что хочет.

Многие разработчики программного обеспечения любят фильмы. Хорошо сделанные фильмы, которые зажигают их воображение. Но они не являются экспертами в производстве фильмов, создании визуальных эффектов или написании хороших сценариев фильмов. Большинство ботаников очень, очень и очень плохо играют, потому что все это связано с проявлением сложных эмоций и мало о аналитике. Если разработчик наблюдает за плохим фильмом, он просто замечает, что это плохо в целом. Nerds даже создали IMDB для сбора информации о хороших и плохих фильмах, чтобы они знали, какие из них смотреть и чего следует избегать. Но они не являются экспертами в создании фильмов. Если фильм плохой, они не будут входить в кино (или не загружать его из BitTorrent;)

Итак, это сводится к: Отказ от обычных пользователей как эксперта невежество.. Потому что в этих областях (и их так много), где они не являются экспертами, они ожидают, что эксперты из других областей уже думали о нормальных людях, которые используют свои продукты или услуги.

Что вы можете сделать, чтобы исправить это? Чем более хардкор вы являетесь программистом, тем менее открытыми будут обычные мышления пользователя. Это будет чужой и невежественной для вас. Вы подумаете: я не могу представить, как люди могли когда-либо использовать компьютер с этим недостатком знаний. Но они могут. Для каждого элемента пользовательского интерфейса подумайте: нужно ли это? Соответствует ли это концепции, которую пользователь имеет для моего инструмента? Как я могу заставить его понять? Пожалуйста, прочитайте об удобстве использования, есть много хороших книг. Это и вся область науки.

А, и прежде чем вы это скажете, да, я поклонник Apple;)

Ответ 2

Конструкция пользовательского интерфейса жесткая

На вопрос:

Почему дизайн большинства пользовательских интерфейсов настолько сложный для большинства разработчиков?

Попробуйте задать обратный вопрос:

почему так сложно программировать большинство разработчиков пользовательского интерфейса?

Кодирование пользовательского интерфейса и разработка пользовательского интерфейса требуют разных навыков и другого мышления. Дизайн UI трудно для большинства разработчиков, а не для некоторых разработчиков, так же, как писать код трудно для большинства дизайнеров, а не для некоторых дизайнеров.

Кодирование сложно. Дизайн тоже тяжелый. Мало кто знает и хорошо. Хорошие дизайнеры пользовательского интерфейса редко пишут код. Они могут даже не знать, как, но они все еще хорошие дизайнеры. Итак, почему хорошие разработчики несут ответственность за дизайн пользовательского интерфейса?

Зная больше о дизайне пользовательского интерфейса, вы станете лучшим разработчиком, но это не значит, что вы должны отвечать за дизайн пользовательского интерфейса. Обратное верно для дизайнеров: знание того, как писать код, сделает их лучшими дизайнерами, но это не значит, что они должны нести ответственность за кодирование пользовательского интерфейса.

Как улучшить дизайн пользовательского интерфейса

Для разработчиков, желающих улучшить дизайн пользовательского интерфейса, я имею 3 основных совета:

  • Распознать дизайн как отдельный навык. Кодирование и дизайн являются отдельными, но связанными. Дизайн пользовательского интерфейса не является подмножеством кодирования. Это требует другого мышления, базы знаний и группы навыков. Есть люди, которые сосредотачиваются на дизайне пользовательского интерфейса.
  • Узнайте о дизайне. По крайней мере, немного. Постарайтесь изучить несколько концепций и методов дизайна из длинного списка ниже. Если вы более амбициозны, прочитайте несколько книг, посетите конференцию, возьмите класс, получите степень. Существует много способов узнать о дизайне. Книга Джоэл Сполки по дизайну пользовательского интерфейса - это хороший учебник для разработчиков, но там гораздо больше, и там, где дизайнеры приходят на сцену.
  • Работа с дизайнерами. Хорошие дизайнеры, если сможете. Люди, которые выполняют эту работу, проходят разные титулы. Сегодня наиболее распространенными названиями являются дизайнер пользовательского опыта (UXD), информационный архитектор (IA), конструктор взаимодействия (ID) и инженер по юзабилити. Они думают о дизайне столько, сколько вы думаете о коде. Вы можете многому научиться у них, и они от вас. Поработайте с ними, но вы можете. Найдите людей с этими навыками в вашей компании. Может быть, вам нужно нанять кого-то. Или зайдите на некоторые конференции, посетите веб-семинары и проведете время в мире UXD/IA/ID.

Вот некоторые конкретные вещи, которые вы можете узнать. Не пытайтесь узнать все. Если бы вы знали все ниже, вы могли бы назвать себя дизайнером взаимодействия или информационным архитектором. Начните с вещей в верхней части списка. Сосредоточьтесь на конкретных концепциях и навыках. Затем двигайтесь вниз и разветвляйтесь. Если вам действительно нравится этот материал, считайте его карьерой. Многие разработчики переходят на управление, но дизайн UX - это еще один вариант.

Почему дизайн пользовательского интерфейса сложный

Хороший дизайн пользовательского интерфейса сложный, потому что он включает в себя 2 совершенно разных навыка:

  • Глубокое понимание машины. Люди в этой группе сначала беспокоятся о коде, люди во-вторых. Они обладают глубокими технологическими знаниями и навыками. Мы называем их разработчиками, программистами, инженерами и т.д.
  • Глубокое понимание людей и дизайн. Люди в этой группе сначала беспокоятся о людях, а ко второй. Они имеют глубокое знание того, как люди взаимодействуют с информацией, компьютерами и окружающим миром. Мы называем их дизайнерами пользовательского интерфейса, информационными архитекторами, дизайнерами взаимодействия, инженерами юзабилити и т.д.

Это существенное различие между этими двумя группами - между разработчиками и дизайнерами:

  • Разработчики делают работу. Они реализуют функциональность на вашем TiVo, вашем iPhone, ваш любимый веб-сайт и т.д. Они делают так, чтобы он действительно делал то, что он должен был делать. Их наивысший приоритет - заставить его работать.
  • Дизайнеры заставляют людей любить его, Они выясняют, как взаимодействовать с ним, как он должен выглядеть и как он должен себя чувствовать. Они разрабатывают опыт использования приложения, веб-сайта, устройства. Их наивысший приоритет заставляет вас влюбиться в то, что делают разработчики. Это то, что подразумевается под влиянием пользователей, и это не то же самое, что опыт бренда.

Кроме того, программирование и дизайн требуют разных менталитетов, а не только разных знаний и разных навыков. Хороший дизайн пользовательского интерфейса требует как менталитета, так и базы знаний, обе группы навыков. И это займет годы, чтобы справиться с одним из них.

Разработчики должны рассчитывать на то, что дизайн пользовательского интерфейса будет жестким, так как дизайнеры пользовательского интерфейса должны ожидать, что написание кода будет сложно.

Ответ 3

Что действительно помогает мне улучшить мой дизайн, так это захватить одного разработчика, одного из парней QA, премьер-министра или любого, кто проходит мимо, и попросит их выбрать конкретный виджет или экран.

Удивительно, что вы поймете, когда будете смотреть, как кто-то еще использует ваше программное обеспечение в первый раз

Ответ 4

В конечном счете, это действительно касается эмпатии - можете ли вы поставить себя на место вашего пользователя?

Одна вещь, которая помогает, конечно, "съесть свой собственный dogfood" - используя ваши приложения в качестве реального пользователя самостоятельно и видя, что раздражает.

Еще одна хорошая идея - найти способ просмотра реального пользователя с помощью вашего приложения, которое может быть столь же сложным, как лаборатория юзабилити с односторонними зеркалами, захват видеоизображения на экране, видеокамеры для пользователей и т.д., или может быть таким же простым, как прототипирование бумаги, используя следующего человека, который, случается, идет по коридору.

Если все остальное не работает, помните, что почти всегда лучше для UI быть слишком простым, чем слишком сложным. Очень легко сказать "о, я знаю, как это решить, я просто добавлю флажок, чтобы пользователь мог решить, какой режим они предпочитают". Вскоре ваш интерфейс слишком сложный. Выберите режим по умолчанию и сделайте настройку предпочтений опцией расширенной настройки. Или просто оставьте это.

Если вы много читаете о дизайне, вы можете легко повесить на отброшенные тени и закругленные углы и так далее. Это не главное. Простота и открытость - важный материал.

Ответ 5

Вопреки распространенному мифу в дизайне интерфейса буквально нет мягких аспектов, по крайней мере, не больше, чем нужно для создания хорошего конца.

Рассмотрим следующее; хороший дизайн задней части основывается на довольно прочных принципах и элементах, с которыми хорошо знаком хороший разработчик:

  • низкая связь

  • высокая сплоченность

  • архитектурные шаблоны

  • лучшие отраслевые практики

  • и т.д.

Хорошая конструкция задней части обычно рождается через ряд взаимодействий, где на основе измеримой обратной связи, полученной во время тестов или фактического использования, первоначальный план постепенно улучшается. Иногда вам нужно прототипировать меньшие аспекты задней части и пробовать их изолировать и т.д.

Хороший дизайн пользовательского интерфейса основан на звуковых принципах:

  • видимость

  • affordance

  • обратная связь

  • Допуск

  • простота

  • консистенция

  • Структура

Пользовательский интерфейс также рождается посредством тестирования и испытания, итераций, но не с помощью компилятора + автоматизированного тестового костюма, но людей. Аналогично тому, как это происходит на заднем плане, существуют лучшие в отрасли методы, методы измерения и оценки, способы представления пользовательского интерфейса и определение целей с точки зрения модели пользователя, образа системы, модели дизайнера, структурной модели, функциональной модели и т.д.

Набор навыков, необходимый для разработки пользовательского интерфейса, сильно отличается от разработки back-end и, следовательно, не предполагает, что он сможет делать хороший интерфейс, не изучая сначала. Однако, что обе эти действия имеют общий характер, это процесс проектирования. Я считаю, что любой, кто может разработать хорошее программное обеспечение, способен разрабатывать хороший пользовательский интерфейс, пока они проводят некоторое время, изучая, как.

Я рекомендую пройти курс в Human Computer Interaction, проверить сайт MIT и Yale, например, для онлайн-материалов:

Структурная и функциональная модель в понимании и использовании

Отличная ранее публикация Thorsten79 раскрывает тему экспертов по разработке программного обеспечения против пользователей и того, как их понимание программного обеспечения отличается. Эксперты по человеческому обучению различают функциональные и структурные ментальные модели. Нахождение пути к дому вашего друга может быть отличным примером разницы между двумя:

  • Первый подход включает в себя набор подробных инструкций: выполнить первый выход на автомагистраль, затем через 100 ярдов повернуть налево и т.д. Это пример функциональной модели: список конкретных шагов, необходимых для достижения определенной цели. Функциональные модели просты в использовании, они не требуют многого мышления только прямого исполнения. Очевидно, что для простоты существует штраф: это может быть не самый эффективный маршрут, и любая исключительная ситуация (т.е. Отключение трафика) может легко привести к полному сбою.

  • Другой способ справиться с задачей - построить структурную ментальную модель. В нашем примере это будет карта, которая передает много информации о внутренней структуре "объекта задачи". Из понимания карты и относительных местоположений нашего дома и друга мы можем вычесть функциональную модель (маршрут). Очевидно, что это требует больших усилий, но гораздо более надежного способа выполнения задачи, несмотря на возможные отклонения.

Выбор между передачей функциональной или структурной модели через интерфейс (например, мастер и расширенный режим) не так прямо, как может показаться из сообщения Thorsten79. Продвинутые и частые пользователи могут предпочесть структурную модель, тогда как случайные или менее опытные пользователи - функциональные.

Карты Google - отличный пример: они включают как функциональную, так и структурную модель, так что многие сильные навигаторы.

Другим аспектом проблемы является то, что структурная модель, представленная через пользовательский интерфейс, не должна отображаться в структуре программного обеспечения, а, скорее, естественным образом отображать структуру пользовательской задачи под рукой или объекта задачи.

Трудность здесь заключается в том, что многие разработчики будут иметь хорошую структурную модель своих внутренних компонентов программного обеспечения, а только функциональную модель пользовательской задачи, на которую программное обеспечение нацелено на помощь. Чтобы создать хороший пользовательский интерфейс, нужно понять структуру объекта задачи/задачи и отобразить интерфейс для этой структуры.

Во всяком случае, я по-прежнему не могу рекомендовать достаточно формальный курс HCI. Там было много других, таких как heuristics, принципы, полученные из Гештальт-фиология, способы обучения людей и т.д.

Ответ 6

Я предлагаю вам начать с создания своего пользовательского интерфейса так же, как сейчас, без акцента на удобстве использования и т.д.

alt text http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

Теперь подумайте об этом:

Дизайнер знает, что он достиг совершенства, когда нет ничего, что можно было добавить, но когда ничего не осталось отнять. - Сент-Экзюпери

И примените это в своем дизайне.

Ответ 7

Многие разработчики считают, что, поскольку они могут писать код, они могут все это сделать. Проектирование интерфейса - совершенно другое умение, и его вообще не учили, когда я учился в колледже. Это не просто то, что приходит естественным путем.

Другая хорошая книга "Дизайн повседневных вещей" Дональда Нормана.

Ответ 8

Там огромная разница между дизайном и эстетикой, и их часто путают.

Красивый пользовательский интерфейс требует художественных или, по крайней мере, эстетических навыков, которые многие, в том числе и я, неспособны производить. К сожалению, этого недостаточно, и он не позволяет использовать пользовательский интерфейс, как мы видим во многих суперсовременных API на основе флеш-памяти.

Для разработки пользовательских интерфейсов требуется понимание того, как люди взаимодействуют с компьютерами, некоторые проблемы в психологии (например, закон Фитта, закон Хика) и другие темы. Очень немногие программы CS тренируются для этого. Очень немногие разработчики, которых я знаю, выберут книгу для тестирования пользователей по книге JUnit и т.д.

Многие из нас также являются "основными программистами", которые склонны воспринимать интерфейсы как фасад, а не как фактор, который мог бы сделать или сломать успех нашего проекта.

Кроме того, большая часть опыта разработки пользовательского интерфейса чрезвычайно расстраивает. Мы можем использовать конструкторы GUI для игрушек, такие как старый VB, и иметь дело с уродливым кодом клея, или мы используем API-интерфейсы, которые разочаровывают нас до конца, например, пытаясь разобрать макеты в Swing.

Ответ 9

Перейдите к Slashdot и прочитайте комментарии к любой статье, касающейся Apple. Вы найдете большое количество людей, говорящих о том, как продукты Apple ничего особенного и не приписывают успех iPod и iPhone людям, которые хотят быть модными или белыми. Они, как правило, проходят списки функций, и указывают, что они ничего не делают раньше, чем MP3-плееры или смартфоны не делали.

Тогда есть люди, которым нравится iPod и iPhone, потому что они делают то, что хотят пользователи просто и легко, без ссылки на руководства. Интерфейсы настолько же интуитивно понятны, как и интерфейсы, запоминаются и обнаруживаются. Я не так увлекаюсь пользовательским интерфейсом на MacOSX, поскольку я был на более ранних версиях, я думаю, что они отказались от некоторой пользы в пользу glitz, но iPod и iPhone являются примерами превосходного дизайна.

Если вы находитесь в первом лагере, вы не думаете, как это делает средний человек, и поэтому вы, вероятно, создадите плохие пользовательские интерфейсы, потому что не можете сказать им хорошие. Это не значит, что вы безнадежны, а скорее должны четко изучить принципы дизайна интерфейса и как распознать хороший пользовательский интерфейс (так как кому-то с Аспергером может понадобиться явно изучить социальные навыки). Очевидно, что просто наличие хорошего пользовательского интерфейса не означает, что вы можете его создать; например, моя оценка литературы, похоже, не распространяется на способность (в настоящее время) писать публикуемые истории.

Итак, попробуйте развить смысл для хорошего дизайна пользовательского интерфейса. Это распространяется не только на программное обеспечение. Дон Норман "Дизайн повседневных вещей" - это классика, и там есть другие книги. Получите примеры успешного дизайна пользовательского интерфейса и поиграйте с ними достаточно, чтобы почувствовать разницу. Признайте, что вам, возможно, придется изучать новый способ мышления и наслаждаться им.

Ответ 10

Основное правило, на которое я держусь, никогда не пытается сделать оба сразу. Если я работаю над внутренним кодом, я закончу это, сделаю паузу и вернусь с моей шляпой пользовательского интерфейса. Если вы попытаетесь работать с ним, пока используете код, вы подходите к нему с неправильным мышлением и в итоге получаете некоторые ужасные интерфейсы.

Я думаю, что это определенно возможно быть хорошим разработчиком и отличным дизайнером пользовательского интерфейса, вам просто нужно работать над ним, читать и анализировать эту тему (все от Miller # 7 до архивов Nielsen), и убедитесь, что вы понимаете, почему дизайн пользовательского интерфейса имеет первостепенное значение.

Я не думаю, что это случай, когда нужно быть креативным, но, скорее, как разработка на заднем плане, это очень методичная, очень структурированная вещь, которую нужно изучать. Это люди, которые становятся "креативными" с пользовательскими интерфейсами, которые создают некоторые из самых больших юзабилитиных чудовищ... Я имею в виду, посмотрите на 100% веб-сайты Flash, для начала...

Изменить: книга Krug действительно хороша... прочитайте ее, особенно если вы собираетесь разрабатывать для Интернета.

Ответ 11

Есть много причин для этого.

(1) Разработчик не видит вещи с точки зрения пользователя. Это обычный подозреваемый: отсутствие эмпатии. Но обычно это не так, поскольку разработчики не так чужды, как люди делают их.

(2) Еще одна, более распространенная причина заключается в том, что разработчик, который так близок к своим вещам, так долго оставался с вещами, не понимает, что его вещи могут быть не настолько знакомы (термин лучше, чем интуитивный) другим людям.

(3) Еще одна причина заключается в том, что разработчику не хватает методов.

МОЙ БОЛЬШОЙ ПРЕТЕНЗИЯ: прочитайте любой пользовательский интерфейс, дизайн интерьеров человека, прототипическую книгу. например Проектирование очевидного: подход с общим смыслом к ​​дизайну веб-приложений, не заставляйте меня думать: подход с общим смыслом к ​​веб-юзабилити, разработка момента, что бы то ни было.

Как они обсуждают потоки задач? Как они описывают пункты принятия решений? То есть, в любом случае, существует не менее 3 путей: успех, отказ/исключение, альтернатива.

Таким образом, из точки A вы можете перейти к A.1, A.2, A.3. Из пункта A.1 вы можете перейти к A.1.1, A.1.2, A.1.3 и т.д.

Как они показывают такой поток развернутых задач? Они этого не делают. Они просто блестят.

Так как даже у UI experst нет техники, у разработчиков нет шансов. Он думает, что это ясно в его голове. Но это даже не ясно, на бумаге, не говоря уже о том, чтобы явиться в реализации программного обеспечения.

Я должен использовать для этого свои собственные ручные методы.

Ответ 12

Я стараюсь поддерживать связь с конкретными веб-сайтами и текстами. Я нашел также отличную книгу Робин Уильямс Нестандартная дизайнерская книга, чтобы быть очень интересной в этих исследованиях.

Я считаю, что дизайн и удобство использования - очень важная часть разработки программного обеспечения, и мы должны больше узнать об этом и перестать давать оправдания, которые мы не должны делать.

Каждый может быть разработчиком время от времени, так как каждый может быть программистом.

Ответ 13

При приближении к дизайну пользовательского интерфейса, вот несколько вещей, которые я помню во всем (далеко не полный список):

  • Связь модели. Пользовательский интерфейс - это рассказ, который объясняет пользователю ментальную модель. Эта модель может быть бизнес-объектом, набором отношений, что у вас есть. Визуальное прозвище, пространственное размещение и упорядочение рабочих процессов играют определенную роль в передаче этой модели пользователю. Например, определенный вид списка против другого подразумевает разные вещи, а также отношение того, что в списке к остальной части модели. В общем, я считаю, что лучше всего проверять только одну модель. Программисты часто пытаются передать более одной модели или части нескольких в одном и том же пространстве пользовательского интерфейса.

  • Согласованность. Повторное использование популярных метафоров пользовательского интерфейса помогает. Внутренняя согласованность также очень важна.

  • Группирование задач. Пользователям не нужно перемещать мышь полностью через экран, чтобы проверить или завершить соответствующую последовательность команд. Модальные диалоги и всплывающие меню могут быть особенно плохими в этой области.

  • Знать свою аудиторию. Если ваши пользователи будут делать одни и те же действия снова и снова, они быстро станут полномочными пользователями в этих задачах и будут разочарованы попытками снизить начальный барьер входа. Если ваши пользователи нередко выполняют множество различных видов деятельности, лучше всего обеспечить, чтобы пользовательский интерфейс держал их руку все время.

Ответ 15

Я считаю, что лучший инструмент в дизайне пользовательского интерфейса - это смотреть на пользователя, пытающегося использовать программное обеспечение в первый раз. Возьмите множество заметок и задайте им несколько вопросов. Никогда не направляйте их или не пытайтесь объяснить, как работает программное обеспечение. Это задание пользовательского интерфейса (и хорошо написанная документация).

Мы последовательно применяем этот подход во всех проектах. Всегда увлекательно наблюдать за работой с программным обеспечением пользователя таким образом, который вы никогда не рассматривали ранее.

Почему дизайн пользовательского интерфейса так сильно? Хорошо, потому что разработчик и Пользователь никогда не встречаются.

Ответ 16

duffymo просто напомнил мне, почему: Многие программисты думают "* Дизайн" == "Искусство".

Хороший дизайн пользовательского интерфейса абсолютно не художественный. Он следует твердым принципам, которые могут быть скопированы с данными, если у вас есть время для проведения исследований.

Я думаю, что всем программистам нужно сделать, это потратить время, чтобы изучить принципы. Я считаю, что в нашей природе применять наилучшую практику, когда мы можем, будь то в коде или в макете. Все, что нам нужно сделать, - это осознать, какие лучшие практики для этого аспекта нашей работы.

Ответ 17

Что я сделал, чтобы улучшить дизайн пользовательского интерфейса?
Обратите внимание на это!

Ему нравится, как когда-нибудь вы увидите диаграмму новостей или электронный знак автобуса, и вам интересно: "Как они получили эти данные? Делали ли они это с помощью raw sql или используют LINQ? (или вставьте здесь свое собственное общее любопытство).

Вам нужно начать делать это, но с визуальными элементами всех видов.

Но так же, как изучение нового языка, если вы на самом деле не бросаете себя на него, вы никогда не узнаете его.

Взято из другого ответа Я написал:

Научитесь выглядеть, действительно выглядеть, в окружающем вас мире. Почему мне нравится этот интерфейс, но ненавижу этот? Почему так трудно найти блюда из лапши в меню ресторана? Вау, я знал, что означал этот знак, прежде чем я даже прочитал слова. Почему? Почему эта книжная обложка выглядит так неправильно? Научитесь тратить время на размышления о том, почему вы реагируете так, как вы делаете, на визуальные элементы всех видов, а затем применяете это к своей работе.

Ответ 18

Однако вы это делаете (и есть несколько замечательных моментов выше), это действительно помогло мне, как только я согласился с тем, что НЕТ ТАКИХ В КАЧЕСТВЕ ИНТУИТИВНОГО....

Я слышу споры, грохочущие на горизонте... так позвольте мне немного объяснить.

Интуитивно понятное: использование того, что кажется правильным или истинным на основе бессознательного метода или чувства.

Если (как постулировал Карл Саган) вы соглашаетесь с тем, что не можете понять вещи, которые абсолютно не похожи на все, что вы когда-либо встречали, то как вы могли "знать", как использовать что-то, если вы никогда не использовали ничего отдаленно?

Подумайте об этом: дети пытаются открыть двери не потому, что они "знают", как работает дверная ручка, а потому, что они видели, как кто-то это делает... часто они поворачивают ручку в неправильном направлении или слишком быстро вытягивают. Они должны УЧИТЬСЯ, как работает дверная ручка. Затем это знание применяется в разных, но похожих случаях: открытие окна, открытие ящика, открытие почти чего-либо большого с помощью большого ручка, выглядящего в ручке.

Даже простые вещи, которые кажутся нам интуитивными, не будут интуитивно понятны людям из других культур. Если кто-то держал их руку перед собой и отказывался от руки вверх и вниз по запястью, держа руку все еще... они отказываются от вас? Наверное, если вы не в Японии. Там этот сигнал может означать "сюда". Так кто же прав? Оба они, конечно, в своем собственном контексте. Но если вы путешествуете к обоим, вам нужно знать, как... дизайн пользовательского интерфейса.

Я пытаюсь найти вещи, которые уже "знакомы" с потенциальными пользователями моего проекта, а затем создавать пользовательский интерфейс вокруг них: ориентированный на пользователя дизайн.

Взгляните на Apple iPhone. Даже если вы ненавидите это, вы должны уважать количество мысли, которое входило в него. Это прекрасно? Конечно нет. Со временем объект, воспринимаемый "интуитивностью", может расти или даже полностью исчезнуть.

Например. Большинство людей знают, что полоска черного цвета с двумя рядами отверстий сверху и снизу выглядит как полоса для фильма... или они?

Спросите у вашего среднего 9 или 10 лет, что они думают. Вы можете быть удивлены, сколько детей прямо сейчас будет трудно идентифицировать это как полосу фильма, хотя это то, что все еще используется для представления Голливуда или любого фильма (фильма). Большинство фильмов за последние 20 лет были сняты в цифровом виде. И когда в последний раз кто-то из нас держал кусок фильма ЛЮБОГО вида, фотографии или фильм?

Итак, для меня все это сводится к следующему: знайте свою аудиторию и постоянно проводите исследования, чтобы идти в ногу с тенденциями и изменениями в вещах, которые являются "интуитивными", нацелены на ваших основных пользователей и стараются не делать то, что наказывает неопытных в пользу продвинутых пользователей или замедлить продвинутых пользователей, чтобы сдержать новичков.

В конечном счете, для каждой программы потребуется определенная часть обучения в пользовательской части. Сколько обучения и для какого уровня пользователя является частью решений, которые необходимо принять.

Некоторые вещи более или менее знакомы на основе вашего конечного пользователя, прошедшего опыт, как человек, или пользователь компьютера, или студент, или что-то еще.

Я просто стреляю за самую толстую часть криволинейной кривой и пытаюсь собрать как можно больше людей, но понимаю, что я никогда не буду радовать всех...

Ответ 19

Я знаю, что Microsoft довольно не согласна с их собственными рекомендациями, но я обнаружил, что чтение их рекомендаций по дизайну Windows действительно помогло мне. У меня есть копия на моем сайте здесь, просто немного прокрутите руководство Vista UX. Это помогло мне в таких вещах, как цвет, интервал, макеты и многое другое.

Ответ 20

Я считаю, что основная проблема не имеет ничего общего с разными талантами или наборами навыков. Основная проблема заключается в том, что как разработчик вы слишком много знаете о том, что делает приложение и как оно это делает, и вы автоматически разрабатываете свой пользовательский интерфейс с точки зрения того, кто имеет эти знания.

В то время как пользователь обычно начинает совершенно не зная о приложении, и ему никогда не нужно ничего узнавать о его внутренних действиях.

Очень трудно, практически невозможно, не использовать знания, которые у вас есть, и почему пользовательский интерфейс не должен разрабатываться кем-то, кто разрабатывает приложение за ним.

Ответ 21

"Проектирование с обеих сторон экрана" представляет собой очень простую, но глубокую причину, по которой программисты находят сложный дизайн интерфейса: программисты обучаются мыслить с точки зрения краевых случаев, в то время как дизайнеры пользовательских интерфейсов обучаются мыслить с точки зрения общих случаев или использования.

Таким образом, переход от одного мира к другому, конечно же, затруднен, если стандартная перестройка в любом случае является прямой противоположностью другой.

Ответ 22

Сказать, что программирование сосать в дизайне пользовательского интерфейса - это пропустить точку. Суть проблемы заключается в том, что формальная подготовка, которую большинство разработчиков получает, выходит за рамки технологии. Human - Computer Interaction - не простая тема. Это не то, что я могу "разуметь" для вас, предоставляя простой оператор одной строки, который заставляет вас понять: "О, пользователи будут использовать это приложение более эффективно, если я сделаю x вместо y".

Это связано с тем, что у вас есть одна часть дизайна пользовательского интерфейса. Человеческий мозг. Чтобы понять, как создать пользовательский интерфейс, вы должны понять, как человеческий разум взаимодействует с машиной. В университете Миннесоты есть отличный курс, который я прочитал профессором психологии. Он называется "Человеко-машинное взаимодействие". Это объясняет многие причины того, почему дизайн пользовательского интерфейса настолько сложный.

Поскольку психология основана на корреляциях, а не на причинности, вы никогда не сможете доказать, что метод дизайна пользовательского интерфейса всегда будет работать в любой конкретной ситуации. Вы можете сопоставить, что многие пользователи найдут конкретный дизайн пользовательского интерфейса привлекательным или эффективным, но вы не можете доказать, что он всегда будет обобщаться.

Кроме того, в дизайне пользовательского интерфейса есть две части, которые, по-видимому, пропустят многие люди. Существует эстетическая привлекательность и функциональный рабочий процесс. Если вы пойдете на 100% эстетическую апелляцию, уверенные люди будут, но ваш продукт. Я очень сомневаюсь, что эстетика когда-нибудь уменьшит разочарование пользователя.

Есть несколько хороших книг по этой теме и курсу (например, Билл Бакстон Набросок пользовательских опытов и Познание в дикой природе Эдвина Хатчинса). Существуют программы выпускников по человеко-компьютерному взаимодействию во многих университетах.

Общий ответ на этот вопрос, однако, заключается в том, как люди учат информатике. Все это основано на математике, основано на логике и не основано на опыте пользователя. Чтобы получить это, вам нужно больше, чем общая 4-летняя степень компьютерной науки (если только у вас 4-летняя степень информатики не была несовершеннолетней в психологии и была подчеркнута в человеко-компьютерном взаимодействии).

Ответ 24

Поверните свой вопрос вокруг -

Являются ли "дизайнеры ui" обречены только на проектирование информационной архитектуры и слоев представления? Есть ли что-то, что они могут сделать, чтобы переделать свои мозги, чтобы быть более эффективными при проектировании приятных и эффективных системных слоев?

Похоже на то, что "дизайнеры ui" должны были бы придерживаться совершенно иной точки зрения - им пришлось бы смотреть изнутри коробки наружу; вместо того, чтобы смотреть извне.

Алан Купер "Заключенные забегают в убежище" заключается в том, что мы не можем успешно перенести обе перспективы - мы можем научиться носить одна шляпа хорошо, но мы не можем просто переключать шляпы.

Ответ 25

Я думаю, что это потому, что хороший пользовательский интерфейс нелогичен. Хороший пользовательский интерфейс является интуитивным.

Разработчики программного обеспечения обычно плохо себя чувствуют на "интуитивном"

Ответ 26

Полезным обрамлением является активное рассмотрение того, что вы делаете, для разработки процесса коммуникации. В очень реальном смысле ваш интерфейс - это язык, который пользователь должен использовать, чтобы сообщить компьютеру, что делать. Это приводит к рассмотрению ряда точек:

  • Пользователь уже говорит на этом языке? Использование очень идиосинкразированного интерфейса - это общение на языке, о котором вы никогда не говорили. Поэтому, если ваш интерфейс должен быть идиосинкратическим вообще, он лучше всего представил себя с простейшими терминами и несколькими отвлечениями. С другой стороны, если в вашем интерфейсе используются идиомы, к которым пользователь привык, они с уверенностью получат доверие с самого начала.
  • Враг общения - это шум. Шумовой шум мешает разговорной речи; визуальный шум мешает визуальной коммуникации. Чем больше шума вы можете вырезать из вашего интерфейса, тем легче будет с ним общаться.
  • Как и в человеческом разговоре, часто это не то, что вы говорите, это то, как вы это говорите. Способ общения большинства программ является грубым до степени, которая могла бы получить ее в лицо, если бы это был человек. Как бы вы себя чувствовали, если бы вы задали кому-то вопрос, и они сидели и смотрели на вас в течение нескольких минут, отказываясь отвечать каким-либо другим способом, прежде чем отвечать? Многие элементы интерфейса, такие как индикаторы выполнения и автоматический выбор фокуса, имеют фундаментальную функцию вежливости. Спросите себя, как вы можете сделать пользовательский день немного приятнее.

Действительно, несколько сложно определить, что программисты думают о взаимодействии интерфейса как о other, чем о процессе общения, но, возможно, проблема в том, что он не воспринимается как что-либо в все.

Ответ 27

Уже есть много хороших комментариев, поэтому я не уверен, что могу добавить много. Но все же...

  • Почему разработчик ожидает, что сможет разработать хороший пользовательский интерфейс?
  • Сколько тренировок у него было в этой области?
  • Сколько книг он читал?
  • Сколько всего он рассчитал на сколько лет?
  • У него была возможность увидеть реакцию этого пользователя?

Мы не ожидаем, что случайный "Джо сантехник" сможет написать хороший код. Итак, почему мы ожидаем, что случайный "Джо программист" разработает хороший интерфейс?

Эмпатия помогает. Разделение дизайна пользовательского интерфейса и программирование помогают. Тестирование юзабилити помогает.

Но дизайн пользовательского интерфейса - это ремесло, которое нужно изучать и практиковать, как и любое другое.

Ответ 28

Я думаю, что они очень разные наборы навыков. Хорошие дизайнеры знают о человеческом поведении, психологии цветов и шрифтов и т.д. Я думаю, что это похоже на попытку стать маркетинговым человеком и разработчиком одновременно. Очень сложно, но не обязательно невозможно.

Я бы попытался найти некоторых экспертов по пользовательскому интерфейсу и посмотреть, каковы будут их рекомендации по исследованию. Если вы не разрабатываете что-то очень минималистское, как google, если это важный проект, вероятно, лучше всего нанять кого-то, кто изучил искусство UI в качестве своего главного.

Тем не менее, если вы разрабатываете очень практичное приложение, я думаю, вы могли бы попытаться сосредоточиться на простоте и ясности в интерфейсе - я думаю, что это, по крайней мере, половина ключа к успеху Google (и переполнение стека) - - т.е. это интуитивно и приятно использовать.

Ответ 29

Разработчики не являются (обязательно) хорошими в дизайне пользовательского интерфейса по той же причине, что они (обязательно) хороши при вязании; это сложно, это требует практики, и не мешает, чтобы кто-то показал вам, как в первую очередь.

Большинство разработчиков (включая меня) начали "создавать" пользовательские интерфейсы, потому что это была необходимая часть написания программного обеспечения. Пока разработчик не попытается добиться успеха, он/она не будет.

Ответ 30

Чтобы улучшить внешний вид на существующих сайтах. В дополнение к уже предложенным книгам вам может понравиться замечательная книга Робин Уильямс "Книга дизайна дизайнеров без дизайна" (санированная ссылка Amazon)

Посмотрите, что возможно в визуальном дизайне, взглянув на различные материалы в The Zen Garden.

Дизайн пользовательского интерфейса определенно является искусством, хотя, как указатели на C, некоторые люди его получают, а некоторые не делают.

Но по крайней мере мы можем посмеяться над их попытками. BTW Спасибо ОК/Отмена за забавный комикс и спасибо Джоэлю за то, что он поместил его в вашу книгу "Лучшее программное обеспечение для написания я" (санированная ссылка Amazon).