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


206

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

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


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

1
Я ненавижу термин «back-end-кодер» и пытался исключить его из названия
Крис Балланс

20
Графический дизайн! = Дизайн пользовательского интерфейса. Первый способ сделать вещи красивыми. Последнее о том, чтобы сделать вещи полезными и полезными.
Эско Луонтола

2
+1 @ Эско. Часто «симпатичный» означает совершенно непригодный для использования. Но эти два МОГУТ сосуществовать, если обращаться с ними осторожно и продуманно.
Dhaust

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

Ответы:


360

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

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

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

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

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

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

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

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

Какой идиот.

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

Они не.

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

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

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

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

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


8
Отличный комментарий! Вы преодолели одно из основных препятствий в разработке программного обеспечения. Трудный факт, чтобы проглотить закаленных разработчиков (как я), но правда часто.

12
+1. Я рекомендую прочитать «Заключенные бегут в убежище», там подробно рассказывается о различиях в мышлении пользователя / разработчика, а также о некоторых средствах защиты.
Ричард Левассер

9
+1 Честно говоря, любой разработчик, который не заботится о пользователе, является плохим разработчиком!
Гэри Уиллоуби

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

25
+1 Это причина, по которой Linux до сих пор не готов к работе с обычным пользователем.
Брайан Андерсон

215

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

На вопрос:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


8
Это лучший ответ здесь. Замечательные ссылки Кстати!
Бернард Игири

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

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

2
Почему это не помечено как лучший ответ? Это кажется намного лучше, чем ответ Торстена79.
AbdullahC

1
Хотел бы я, чтобы этот ответ мне понравился. :)
Dan J

70

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

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


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

Это тот же подход, что и я.
Эд С.

Можно ли назвать такой подход случайным «тестированием юзабилити»? ;) Да, это подход, который вы должны использовать до, во время и после.
Ates Goral

Это был бы почти мой точный ответ. QA и техническая поддержка потрясающие. Разработчики сосут в UI Design, повторяют и заставляют других часто проверять это.
Билл К

7
Я считаю, что это называется «тест на удобство использования в коридоре»
Кевин,

32

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

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

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

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

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


хорошо сказано. Чаще всего попытки добавить гибкость просто приводят к беспорядку. Проще == лучше.
SquareCog

Можете ли вы поставить себя на место пользователя, если он находится на другой стороне планеты, в культуре, которую вы никогда не испытывали раньше? Интернационализация является основным соображением в дизайне твердого интерфейса. Не будем предполагать, что все живут в США.

Абсолютно; Мой текущий проект нацелен на пользователей по всей планете (в основном в каждой стране, кроме США, где я нахожусь). Без сомнения, это усложняет эмпатию, и тем более важно серьезно и энергично пытаться с ней справиться.
Джейкоб Мэттисон

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

+1, только потому, что я не могу +100 сам! Я добавлю, что приобретение опыта использования совершенно разных приложений, как и было задумано, поможет вам стать разработчиком пользовательского интерфейса. Только использование таких инструментов, как Visual Studio или другие инструменты разработки, будет препятствовать этой способности ...
BQ.

26

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

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

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

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

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

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

  • и т.д

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

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

  • видимость

  • affordance

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

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

  • простота

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

  • структура

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

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

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

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

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

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

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

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

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

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

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

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


+1 за ссылку MIT OCW :) Эти лекционные заметки бесценны
PlagueHammer

Вы правы, пользователи могут сами стать экспертами программного обеспечения, и им нравится, когда кто-то прокладывает им путь через «красивый» интерфейс, чтобы быть быстрее. Вот для чего, например, все сочетания клавиш. удобство использования - очень интересная тема!
Thorsten79

25

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

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

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

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

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


Вот почему я далеко, далеко предпочитаю Office 2007!
Ричард Эв

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

Есть еще одна похожая хорошая цитата А. Эйнштейна: «Сделай все как можно проще, но не проще». Я нашел эти идеи также применимы к дизайну пользовательского интерфейса: www.presentationzen.com. ... и +1
Pyry Jahkola

Сент-Экзюпери был гораздо больше, чем пилот и авиаконструктор; +1 за цитирование его. Его детская книга («Маленький принц») стоит того, чтобы ее прочитать, но я здесь не по теме.
Дэвид Торнли

5
Вы должны были выбрать вид печати ... теперь не можете видеть линейки.
Mussnoon

16

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

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


Спасибо, "Дизайн повседневных мыслей" есть в моем Списке желаний Amazon
Крис Балланс

+1. «Дизайн повседневных вещей» также входит в список рекомендуемых к прочтению «Ужасов кодирования» (хороший список книг для разработчиков). Недавно закончила читать, и также могу очень рекомендовать это.
Mun

Сейчас я читаю «Дизайн повседневных вещей» - это, безусловно, очень хорошо, но, как уже упоминалось в комментариях к другому ответу, «Заключенные бегут в убежище» Алана обращаются именно к этой теме. Как разработчик, книга «меняла жизнь»!
Стюарт Хелвиг

Моя мозоль: многие разработчики (и дизайнеры, и другие) считают, что, поскольку я умею кодировать, я не могу проектировать пользовательский интерфейс. Я не очень хорошо знаю Photoshop, но думаю, что хорошо разбираюсь, что работает, а что нет. (Дизайн повседневных вещей был моей первой библией пользовательского интерфейса.)
Барри Браун

14

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

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

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

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

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


«Мы можем либо использовать игрушечные конструкторы графического интерфейса, такие как старый VB, и иметь дело с уродливым клеевым кодом, либо мы используем API, которые без конца расстраивают нас, например, пытаясь разобраться в макетах в Swing». Вы действительно свели мой опыт с построением GUI. Если я могу добавить: «или сумасшедшая комбинация DOM и CSS»
Хоффманн

Я уверен, что все знакомы с Totally Gridbag? " madbean.com/anim/totallygridbag "
Ури

12

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

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

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

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


+1 за предложение Дизайн повседневных вещей
Оскар Дювеборн

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

Это общее заявление. Не каждый анти-Apple комментарий к Slashdot является критикой его UI или подтверждением отсутствия понимания UI. У Apple хороший интерфейс, как и у многих конкурентов.
Бернард Игири

Другая мысль: Apple не для всех; например, он не предоставляет феноменальную удивительную силу, которую делает CLI.
Дж. Полфер

2
Лично я считаю, что продукты Apple крайне не интуитивно понятны в использовании. Я полагаю, что я не единственный человек, который был расстроен, когда их первый iPod начал перетасовывать песни каждый раз, когда я начинал бегать трусцой, или почему экран iPhone постоянно переворачивается. Я думаю, что вещи должны происходить только от прямых, однозначных действий пользователя.
Lotus Notes

10

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

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

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

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


и как называется этот круг книги
defau1t

@refhat Это было заметно в верхнем сообщении, поэтому я не связывал его в то время, но это одно: librarything.com/work/12322
Джеймс Б.

8

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

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

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

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

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

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

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

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

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

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


7

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

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

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


Я не согласен, что каждый может быть программистом. Некоторые аспекты торговли не могут быть изучены, вы можете либо взломать его, или вы не можете (без каламбура).
Крис Балланс

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

7

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

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

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

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

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


Вы узнаете хороший момент, зная свою аудиторию ... Мне также нравятся «Ты не твой пользователь» (Платт) и «Знай своего пользователя». (Платт) Это не может быть подчеркнуто достаточно
Крис Балланс


5

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

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

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


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

Принципы Solid Basic UI работают не во всех странах. Мы внедряем программное обеспечение во многих регионах, и дизайн интерфейсов для разных частей света огромен. Попробуйте как-нибудь отправить свое ориентированное на США приложение в Китай ...

5

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

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

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


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

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

5

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

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

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

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

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

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


+1 за совет дзен по обучению смотреть и думать. Мало кто задается вопросом, что бросается в глаза.
PlagueHammer

5

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

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

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

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

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

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

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

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

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

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

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

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

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

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


4

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


+1 чтение руководящих принципов разработки платформы - это определенно то, что нужно делать (и узнавать, как часто Microsoft нарушает свои собственные правила;)
Оскар Дювеборн,

И, кроме того, прочитайте Apple (Руководство по интерфейсу пользователя). В них больше основ и принципов. Это позволяет понять, что должно быть универсальным, а что специфичным для платформы
Stephan Eggermont

И пока вы занимаетесь этим, прочтите GNOME HIG. Между этими тремя начинает проявляться то, что является специфической особенностью одной платформы, и что в целом кажется хорошей идеей.
mghie

Большинство из них основаны на IBM, но это уже устарело. Например, стандартными командами вырезания и вставки были Shift + Del и Shift + Ins (кстати, они все еще работают).
Саймон Бьюкен

4

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

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

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


4

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

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


3

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

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

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

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

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

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


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

1
Да, вы правы, Пол. Компьютеры - это математика и логика. Дизайн пользовательского интерфейса включает в себя человеческий элемент, который, как доказано в истории, гораздо менее математичен и основан на логике.
jwendl

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

2

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

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

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

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


2

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

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


Отличное замечание, требует другую сторону мозга
Крис Балланс

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

Ничто не является «интуитивным», все изучено. Интуитивно понятное слово, которое деловые люди используют для того, чтобы программисты вспотели.
Бернард Игири

говорят, как настоящий программист .... и это является корнем проблемы.
Грегор Брандт

@gbrandt Интуитивно понятное сочетание «знакомый» и «простой». Это все еще цель, к которой нужно стремиться. Трудность в юзабилити заключается в том, что то, что интуитивно для одних, не обязательно интуитивно для других. @ Стефан прав, что «интуитивно» - это не какой-то сложный «факт», это относится к пользователю.
ТМ.

2

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

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

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


2

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

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

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

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

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


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

@Jorge, вот теперь это относится: многим разработчикам приходится разрабатывать пользовательские интерфейсы для своих работодателей, даже если они не дизайнеры. В моей компании у нас нет ЛЮБЫХ художников. Наши приложения выглядят не так уж плохо. В этом случае вам нужно иметь групповые обзоры и прочее, чтобы убедиться, что дизайн хороший.
ТМ.

@TM: Дизайн - это не обязательно дизайн UI / UX. Конечно, это может выглядеть хорошо, но это не значит, что это работает хорошо .
Кевин Пено

2

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

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


2

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

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

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

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


2

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

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

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

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

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

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

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

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

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

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

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

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


2

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.