it-swarm.com.ru

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

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

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

206
Chris Ballance

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

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

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

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

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

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

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

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

Какой идиот.

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

Они не.

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

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

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

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

Ну, и прежде чем ты это скажешь, да, я Apple фанат;)

361
Thorsten79

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

На вопрос:

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

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

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

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

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

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

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

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

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

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

Почему дизайн интерфейса сложен?

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

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

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

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

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

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

215
Karl Fast

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

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

70
Kevin

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

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

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

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

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

32
Jacob Mattison

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

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

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

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

  • архитектурные образцы

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

  • так далее

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

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

  • видимость

  • affordance

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

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

  • простота

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

  • состав

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

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

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

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

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

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

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

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

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

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

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

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

26
Vlad Gudim

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

альтернативный текст http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

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

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

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

25
Hoffmann

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

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

16
thursdaysgeek

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

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

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

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

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

14
Uri

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

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

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

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

12
David Thornley

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

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

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

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

10
James B

Существует много причин для этого.

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

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

(3) Еще одна причина - разработчик испытывает недостаток в методах.

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

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

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

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

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

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

8
george kyaw naing

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

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

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

7
Edwin Jarvis

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

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

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

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

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

7
Rex M
7
Marco Luglio

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5
exoboy

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

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

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

5
nailitdown

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

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

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

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

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

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

5
Dhaust

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

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

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

5
user34411

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

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

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

4
Michael Borgwardt

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

4
David Anderson

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

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

4
MSN

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

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

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

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

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

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

3
jwendl

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

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

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

2
chaos

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

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

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

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

2
igouy

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

2
Sean Taylor

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

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

2
MattBelanger

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

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

2
Nada Aldahleh

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

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

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

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

2
Rob Wells

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

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

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

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

2
dotmad

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

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

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

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

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

2
Mihai Nita

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

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

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

2
alchemical

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

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

2
Gregor Brandt

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

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

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

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

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

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

Хитрость с символами заключается в том, что между символом и тем, что он представляет, должна быть четкая связь. То, что он представляет, должно быть существительным, и в этом случае символ должен ОЧЕНЬ сильно походить на то, что он представляет. Если символ представляет более абстрактное понятие, это должно быть объяснено в ADVANCE. Посмотрите на непостижимые значки без надписей на панели инструментов msword или photoshop, а также на абстрактные концепции, которые они представляют. Нужно учиться, что значок инструмента обрезки в фотошопе означает CROP TOOL. нужно понимать, что вообще значит CROP. Это необходимые условия для правильного использования этого программного обеспечения. Что поднимает важный момент, остерегайтесь предполагаемых знаний.

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

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

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

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

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

2
Breton

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

1
User

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

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

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

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

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

1
TM.

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

Это очень отличается от разговора с компьютером весь день.

Я не думаю, что люди всегда осознают это.

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

1
Richard Everett

Левый мозг по сравнению с правым мозгом. У некоторых людей нет художественного смысла.

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

Я думаю, что всегда можно улучшить.

1
duffymo

Создай это для своей мамы.

1
Assembler

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

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

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

Это часто не соответствует их взгляду (и ожиданиям) на задачу.

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

Пилот Palm был спроектирован более сверху вниз:

Говорят, что до начала разработки Pilot Хокинс в течение недели держал в кармане кусок дерева размером с потенциального пилота. ( из этой статьи )

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

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

См. Пункт 1 (Устранение опций) и 3 (Недооценка, чрезмерная перегрузка) здесь.

1
Arjan Einbu

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

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

1
Stephan Eggermont

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

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

1
JacobE

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

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

1
Will Peavy

"хороший дизайн пользовательского интерфейса" на самом деле две проблемы :

  1. получить правильный дизайн
  2. получить правильный дизайн

оба являются трудными проблемами. по моему опыту, две вещи должны быть изучены параллельно , чтобы не допустить неприятных сюрпризов в конце проекта ("почему наше сексуальное перетаскивание слишком медленное" в IE8 ?? что ты имеешь ввиду это не исправимо ??? ")

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

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

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


чтобы более четко ответить на ваш вопрос:

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

для хардкорных разработчиков большая проблема в том, что их понимание того, как работает программное обеспечение, очень сильно отличается от того, как пользователи думают, что оно работает (например, URL "www.stackoverflow.com" должен быть написан как "com.stackoverflow.com"). Если вы знаете что-нибудь о том, как работает DNS, но попробуйте продать браузер, который ожидает URL-адреса, вот так :)).

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

1
oberhamsi

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

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

1
Steve Weller

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

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

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

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

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

1
RS Conley

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

  • Если ваша дорогая старая бабушка не может использовать это, есть проблема.
  • Предполагая, что она знает, о чем программа, например, знает, как делать налоги, и пытается использовать Quicken.
1
Paul Nathan

Хорошая книга, в которой много размышлений о пользовательском интерфейсе и его важности, "В начале была командная строка" Нила Стивенсона. Не всем нужен графический интерфейс, просто много людей, которые не программируют. Это похоже на разницу между Царством животных ДиснейВирл и настоящей Амазонкой.

1
J. Polfer

Потому что набор навыков . Навыки, необходимые для работы веб-дизайнером IS НЕ совпадают с навыками, необходимыми для программиста. Да, некоторые навыки могут совпадать, например, HTML, CSS, Javascript, но по своей природе программисты ничего не знают о том, что делает веб-дизайн хорошим веб-дизайном, и наоборот.

RWendi

0
RWendi

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

  • Они этого не понимали и никогда не изучали теорию о том, как и зачем это делать.
  • Они никогда не практиковали это достаточно, чтобы стать экспертом

Поэтому я советую сначала найти нужные вам книги и веб-страницы с описанием предмета и изучить их. Здесь много хороших ответов, я бы добавил Tog On Interface в список. Также посмотрите на те пользовательские интерфейсы, которые считаются великолепными как Mac, IPhone и Google.

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

0
Andrew Cowenhoven

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

Некоторые рекомендации, которые я настоятельно рекомендую:

  • джоэл Раскин "гуманный интерфейс"
  • робин Уильям: "Руководство для дизайнеров по дизайну"
  • большинство статей пользовательского интерфейса на alistapart
  • блог JWZ по программированию
  • Apple руководство по интерфейсу пользователя

Некоторые ссылки и философия я настоятельно советую вам игнорировать:

  • "тема"
  • приложения для рабочего стола в целом, если вам не нужен доступ к драйверу/файловой системе
  • идея о том, что "чем больше, тем лучше"
0
200found

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

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

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

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

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

0
Syntax

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

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

Хорошая книга, охватывающая эту идею: "Теперь, открой свои сильные стороны" Маркуса Бакингема ... ее легко прочитать.

0
user13276

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

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

Дизайн пользовательского интерфейса также не всегда является правильным или неправильным. Разные люди будут оценивать пользовательский интерфейс по-разному. Например, некоторые люди ненавидят новый пользовательский интерфейс "Лента" в Office, некоторые любят его. Некоторые люди думают, что Apple OSX UI отличный, другие не заботятся об этом и считают его трудным в использовании. Независимо от того, какой интерфейс вы придумали, у вас будут люди, которым это не нравится.

0
dtc

Я считаю, что все программисты CS имеют возможность создавать хорошие, удобные в использовании проекты, потому что Usability Design требует от разработчиков продумывать определенные пути и правила. Принимая во внимание, что разработка хорошего "привлекательного" дизайна может быть практически невозможной для некоторых программистов. Это не значит, что оба неразрывно связаны. Это как Моцарт, который умеет писать прекрасные музыкальные произведения и не очень хорош в футболе.

0
Lee Treveil

Легко.

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

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

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

0
Mike B

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

0
theman_on_vista

Что касается отзывов пользователей, Silverback ( http://silverbackapp.com/ ) - отличный инструмент, если вы работаете на Mac. Я предлагаю создать список того, что нужно сделать (найти этот фильм, посмотреть трейлер, найти этот фильм с этим актером, купить его и т.д.) И попросить пользователей сесть и пойти вниз по списку.

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

0
Jarin Udom

Когда разработчики думают о пользовательском интерфейсе, они обычно думают о идеальном виджете, который они могли бы использовать для той или иной задачи (под виджетом я подразумеваю текстовую область, поле со списком, поэтому интерактивное поле поиска Ajax ...). Интерфейс, и особенно HCI, следует рассматривать на более низком уровне. Интересно разделить рефлексию об интерфейсе на 4 шага:

  • Модель задачи и концепции: это наиболее сложно понять с точки зрения разработчика. Вы должны абстрагироваться от своих представлений о том, что вы могли бы думать о будущей платформе, о языке, который вы могли бы использовать. [ Paterno, 97 ] является ссылкой в ​​этой области. Вы определяете свои задачи как дерево, где задачи имеют подзадачи. Вот пример для задачи экспорта.

  • Затем вы определяете абстрактный интерфейс: речь идет о групповых задачах и подзадачах в рабочих пространствах.
  • Конкретный пользовательский интерфейс: теперь вы можете решить, какие интеракторы использовать. Теперь вы должны подумать о платформе (большой экран, КПК, мобильный телефон ...). Вот ключ. Ваша модель задачи и абстрактный пользовательский интерфейс могут быть разбиты на несколько платформ.
  • И финальный интерфейс, реализованный на выбранном языке программирования.
0
Jérôme

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

0
HLGEM

"Что другие сделали, чтобы устранить свои недостатки в этой области?"
- Крис Балланс

  1. Работайте с наименьшим компьютерным пользователем, которого вы можете найти.
    (Свежий, который никогда не видел вашего программного обеспечения).
  2. Получите отзывы от них о том, что заставляет их отстой.
  3. исправить эти проблемы, передать его другому компьютеру-unsavy-пользователю,
  4. Повторите процесс еще раз ..

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

(Кроме того, ваше программное обеспечение, вероятно, будет очень похоже на программное обеспечение Microsoft, и вам, вероятно, не понравится его использование ...)

Но это не главное! Дело в том, что конечные пользователи могут использовать его и наслаждаться им!


Не разработчики!


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

Другими словами ...

Вы должны посмотреть, что пользователи уже пытаются сделать ...

Тротуар и студенты

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

Видео магазины и Netflix

Чтобы привести другой пример, подумайте о недавней истории видеомагазинов: давным-давно было много видеомагазинов: Block Buster Video и т.д. Что людям не нравилось в этих видеомагазинах? Поздние сборы конечно. Итак, Netflix пришел и убрал просроченные платежи, так как это было больше, чем хотел клиент/конечный пользователь.

Теперь Block Buster разоряется за банкротство вместе со всеми другими магазинами видеоплат.

Это сложнее сделать? Чтобы выключить свой мозг и дать людям то, что они хотят? Конечно, это ... это подчинение вашей воли их ... это всегда сложнее, но в конце концов, оно достигает цели дать конечным пользователям то, что они хотят.

0
leeand00

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

0
Avram

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

Это все равно, что спросить, почему баскетбол труден для футболистов.

0
Rik

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

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

Основная идея юзабилити-тестирования заключается в том, что вы берете кого-то с опытом, аналогичным вашей целевой аудитории, который раньше не видел вашего программного обеспечения, и предлагаете ему выполнить типичный ряд задач. В идеале они должны пытаться говорить вслух, что они думают, чтобы дать вам больше понимания их мыслительных процессов. Вы тогда смотрите, что они делают. Критически, вы не помогаете им, независимо от того, насколько непреодолимо желание. Результаты могут быть довольно удивительными и весьма показательными. Юзабилити-тестирование может быть очень интересным с использованием односторонних зеркал, видеокамер и т.д., Но для получения большинства преимуществ в этом нет необходимости. Хорошее описание того, как проводить юзабилити-тесты, можно найти в отличная книга Круга "Не заставляй меня думать: руководство по здравому смыслу для юзабилити в Интернете" . Большая часть его советов в равной степени применима к тестированию настольных приложений.

0
Andy Brice

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

0
Klelky

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

0
BBetances