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

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

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

30 ответов


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

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

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

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

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

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

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

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

Что за идиот.

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

Это не так.

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

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

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

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

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


дизайн пользовательского интерфейса is жесткий

на вопрос:

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

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

почему Программирование так трудно для большинства UI designers?

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

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

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

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

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

  1. признать дизайн как отдельный навык. Кодирование и дизайн являются отдельными, но взаимосвязанными. ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС дизайн не является подмножеством кодировки. Это требует другого мышления, базы знаний и группы навыков. Есть люди, которые сосредоточены на дизайне пользовательского интерфейса.
  2. узнайте о дизайне. Хотя бы немного. Попробуйте изучить несколько концепций и методов дизайна из длинного списка ниже. Если вы более амбициозны, прочитайте несколько книг, посетите конференцию, возьмите класс, получите степень. Есть много способов узнать о дизайне. Джоэл Spolky на уй дизайн это хороший праймер для разработчиков, но есть гораздо больше, и именно там дизайнеры приходят в картину.
  3. работа с дизайнерами. Хорошие дизайнеры, если можете. Люди, которые делают эту работу под различными названиями. Сегодня наиболее распространенными названиями являются User Experience Designer (UXD), Information Architect(IA), Interaction Designer (ID) и Usability Engineer. Они думают о дизайне столько же, сколько вы о коде. Вы можете многому у них научиться, и они от вас. Работайте с ними, как можете. Найти людей с такими навыками в вашей компании. Может, тебе нужно кого-то нанять. Или пойти на какие-нибудь конференции, посетить вебинары и провести время в мире UXD/IA/ID.

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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


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

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

  • низкие сцепные

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

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

  • отрасли практики

  • etc

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

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

  • видимость

  • допустимого

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

  • толерантность

  • простота

  • последовательность

  • структура

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

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

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

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

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

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

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

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

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

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

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

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


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

alt текст http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

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

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


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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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

таким образом, из точки A вы можете перейти к A. 1, A. 2, A. 3. Из точки A. 1 Вы можете добраться до A. 1.1, А. 1.2, A. 1.3 и так далее.

как они показывают такой поток задач детализации? Они не знают. Они просто замазывают это.

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

Я для этого я использую свои собственные техники.


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

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

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


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

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

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

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

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



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

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

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


duffymo просто напомнил мне, почему: многие программисты думают "* Design "= = "Art".

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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


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

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


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

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

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

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

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

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


давайте перевернем ваш вопрос -

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

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

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


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

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


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

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

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


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

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

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

эмпатия помогает. Разделение дизайна пользовательского интерфейса и программирования помогает. Юзабилити-тестирование помогает.

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


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

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


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

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

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

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


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

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

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

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

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

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

трюк с символы - это то, что должна быть четкая связь между символом и тем, что он представляет. Вещь, которую он представляет, должна быть существительным, и в этом случае символ должен выглядеть очень похожим на вещь, которую он представляет. Если символ представляет более абстрактное понятие, это должно быть объяснено заранее. См. непостижимые значки unlabled в панели инструментов msword или photoshop и абстрактные понятия, которые они представляют. Необходимо знать, что значок инструмента обрезки в photoshop означает ИНСТРУМЕНТ ДЛЯ ОБРЕЗКИ. нужно понять, что такое урожай. Это необходимые условия для правильного использования этого программного обеспечения. Это поднимает важный момент, остерегайтесь предполагаемого знания.

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

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

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

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

Я рекомендую Discovering Psychology, документальный сериал PBS, организованный Филиппом Зимбардо. В противном случае попробуйте найти хороший учебник физики. Дорогой вид. Не чепуху о самопомощи из Криминального чтива, которую можно найти в "Бордерз", а толстую книгу в твердом переплете, которую можно найти только в университетской библиотеке. Это основа necesesary. Вы можете сделать хороший дизайн без это, но у вас будет только интуитивное понимание того, что происходит. Чтение хороших книг даст вам хорошую перспективу.


Если бы вы прочитали книгу "Почему программное обеспечение отстой", вы бы увидели ответ Платта, который является простым:

  1. разработчики предпочитают контроль над удобством
  2. средние люди предпочитают удобство использования над контролем

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

http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/