Предупреждение о спойлере: UX - это нечто большее, чем просто создание отличного программного обеспечения

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

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

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

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

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

UX и back-end инжиниринг

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

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

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

UI и UX - это не одно и то же

Пользовательский интерфейс (UI) и Пользовательский интерфейс объединяет только одно: слово «пользователь». Это так же много общего, как и между Software Engineering и Software Testing, и я думаю, мы можем согласиться с тем, что эти дисциплины сильно отличаются друг от друга.

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

UI, с другой стороны, касается того, как данные представляются пользователю и собираются от него. Традиционно это включает в себя визуальный дизайн продукта, а также оформление сообщений об ошибках и предупреждениях, представляемых пользователю. С появлением интерфейсов, управляемых голосом (например, Siri или Google Assistant), они развиваются, чтобы охватить более широкий диапазон, но в конечном итоге это все еще конечный интерфейс между пользователем и продуктом. Примерами рассмотрения пользовательского интерфейса являются типографика, цвет и язык дизайна.

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

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

Причина №1: неиспользованный код - пустая трата времени

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

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

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

Причина №2: Общий язык - ключ к эффективности

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

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

Причина № 3: Соображения по архитектуре программного обеспечения

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

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

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

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

Как узнать больше о UX

Как обычно, в Интернете есть ряд ресурсов, от видео на YouTube до программ Udemy и Coursera, и, конечно же, соответствующих публикаций и публикаций на Medium. Вот несколько ресурсов, которые помогут вам начать работу:

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

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

Введение в принципы и процессы взаимодействия с пользователем - 20-часовой курс Мичиганского университета на Coursera, посвященный интересным темам, например, как люди воспринимают информацию и как соответствующим образом проектировать. Это также часть специализации UX Research and Design, которая включает в себя более подробные темы по этой практике.

The Interaction Design Foundation - Этот веб-сайт представляет собой кладезь информации по UX, включая отличное введение и множество бесплатных ресурсов (статьи, электронные книги и т. д.).

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

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

До следующего, продолжайте делать отличные вещи!