ночь
en | ru

Как создавался UXCG

В этой статье описывается процесс создания User Experience Core Guide (UXCG) – проекта, который был аннонсирован отдельной статьей, и с которым вы можете ознакомиться кликнув сюда.

Цель статьи: показать мыслительный процесс автора проекта, и то, из каких этапов состоял процесс его создания.

Для справки: UX Core – это бесплатный инструмент запущенный летом 2020 года. В нем посетитель может ознакомиться со 105 научно выведенными когнитивными искажениями (ошибками мозга), и тем же числом примеров использования этих ошибок в разработке программного обеспечения. Одна из целей UX Core – минимизировать порог вхождения в тему понимания мыслительных процессов для всех тех, кто хочет узнать больше о работе мозга, но при этом не может осилить каскады информации в Википедии. Статья-аннонс UX Core, здесь.

Дисклеймер: В некоторых частях этой статьи контент может быть слабо структурирован.
Детализация секций также отличается. Распространение этой статьи не планируется (она будет только на keepsimple.io). Статья была написана в основном для студентов и просто любопытных людей.
Благодарю за понимание.

Ноябрь 2020.
Дано:
Необходимо придумать что-то, что позволит использовать UX Core более предметно.

18 декабря 2020.
Решение:
Создать новый проект под названием UXCG, который дополнит UX Core наиболее популярными, фундаментальными вопросами связанными с продакт менеджментом. Сделать так, чтобы в каждом когнитивом искажении был пример того, на какие вопросы это искажение может ответить, и в каких ситуациях связанных с разработкой продуктов оно может быть полезным.

Шаг 0: Составить план действий.

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

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

/assets/images/geek-content/1.jpg

Шаг 1: Генерация вопросов

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

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

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

Вопрос | Релевантное когнитивное искажение

/assets/images/geek-content/2.jpg

Шаг 2: Объединение вопросов

Многие вопросы были похожими друг на друга, поэтому я их объединил. Так, 80 вопросов уместились в 73. Позже, был проведен еще один раунд объединения. На этот раз, из-за слишком похожих ответов. В финальной версии было опубликовано 63 вопроса.

Шаг 3: Категоризация вопросов

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

  • Team - вопросы связанные с кооперацией команд и лиц, работающих над продуктом;
  • Development - вопросы связанные со стадией разработки продукта (от идеи до публичного релиза);
  • Pre-SignUp - вопросы связанные с продажами, маркетингом, потенциальными пользователями и общей оберткой продукта;
  • Post-SignUp - вопросы связанные с интеракцией пользователей с продуктом и его функционалом;
  • Analytics - вопросы связанные с чтением аналитики по продукту;

Затем я допустил, чтобы один вопрос относился к более чем одной категории.

Так, к примеру, вопрос «Как сделать бонусы и акции более привлекательными для пользователей?» может относиться как к категории Development, так и Pre-Signup и Post-SignUp. Причина в том, что мы можем планировать бонусы и акции на стадии разработки продукта (Development). Также, как мы можем планировать их для потенциальных (Pre-SignUp), или существующих пользователей (Post-SignUp).

Категоризация вопросов была завершена днем, 31го декабря. На тот момент я потратил на проект около 20 часов.

Шаг 4: Сопоставление всех искажений UX Core с вопросами UXCG.

Следующий шаг стал для меня настоящей ментальной пыткой. С 31го декабря 2020го по 8е января я без перерывов сопоставлял каждое искажение из UX Core с каждым вопросом UXCG. Процесс выглядел так: каждое утро я подходил к ноуту, открывал UX Core, выбирал искажение из списка, читал его описание, вспоминал связанные с ним исследования, а затем, держа все это в уме, переключался на excel документ с вопросами UXCG. В нем я проходил по каждому из вопросов, моделируя ситуацию, и оценивая релевантность полезности искажения которое держал в уме, в обсуждении данного вопроса в будущем. Если я считал искажение релевантным, оно записывалось в колонку напротив вопроса, а я переходил к следующему. Этот процесс был совершен 105 X 73 (на тот момент я еще не объединил некоторые вопросы) раз.

Таким образом, было проанализировано 7665 возможных связей вопросов с искажениями.

В среднем, на сопоставление одного искажения со всеми вопросами у меня уходило 45 минут. Такое время было обусловлено чрезвычайной сложностью моделирования из-за постоянной смены контекста. Я мог потратить 3 минуты на анализ искажения в двух семантически похожих вопросах связанных с работой с информацией, а затем 10 минут на то, чтобы забыть предыдущие вопросы, и думать об «эффективности релизов», или чем-то совершенно другом. Самым сложным во всем этом было удержание концентрации на задаче. Мозг был готов буквально делать все что угодно, но не делать то, что было нужно. Я миллион раз задавал себе вопрос «зачем я это делаю?» Задача усложнялась тем, что я не позволял себе продолжать работу если чувствовал усталость. Я не хотел чтобы моя лень как-либо сказывалась на качестве выполняемой задачи, поэтому я заставлял себя бегать, чтобы расслабиться, и снова вернуться к работе. Так, с середины декабря по середину января я казуально пробежал около 120 километров : -))

К 7 января я закончил сопоставления, потратив на эту задачу 80 часов, а на проект в целом более 100.

Получилось примерно так:

/assets/images/geek-content/3.jpg

(Вопросы в черновой версии)

Скриншот из основной карточки UXCG в Trello:

/assets/images/geek-content/4.jpg

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

Это был очень интересный момент. Я никогда ранее не считал кол-во возможных углов обзора на некую ситуацию. Если бы мне задали любой из вопросов в UXCG, и попросили назвать число, соответствующее кол-ву возможных точек зрения, я бы назвал 3, или 4. Но в тот вечер я получил среднее число 18.2.

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

Скриншот из расчетов в draw.io:

/assets/images/geek-content/5.jpg

Шаг 5: Написание ответов

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

/assets/images/geek-content/6.jpg

Question: Сам вопрос;

Tags: Лейблы указывающие к какой стадии развития продукта этот вопрос относится (напр. Development, Pre-SignUp, Post-SignUp и т.д.);

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

Answers: Варианты ответов на вопрос;

Related Questions: Похожие по смыслу вопросы из UXCG.

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

В итоге я решил использовать основную структуру «[искажение] %ответ%». Где [искажение] я писал название искажения из UX Core. При этом оно должно было быть кликабельным и по клику в виде tooltip-а подгружать описание искажения из UX Core. Идея была в том, чтобы не выдергивать читателя из контекста, позволяя ему по-быстрому ознакомиться с искажением, и продолжить читать ответ.

Как-то так:

/assets/images/geek-content/7.jpg

Этот шаг занял ровно месяц. В процессе написания ответов я объединил еще 10 вопросов, оставив в финальной версии 63.

По времени я тратил на проект около 4 часов в рабочие дни, и на 2 часа больше в выходные дни. Так к 7 февраля я завершил эту стадию потратив на нее 128 часов (230ч со старта проекта).

Скриншот из основной карточки UXCG в Trello:

/assets/images/geek-content/8.jpg

Шаг 6: Составление секции «Похожие вопросы»

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

Сопоставление 63 вопросов друг с другом требовало анализа 3906 возможных связей. Из-за загруженности на работе, переезда в другую страну и эмоциональной истощенности я тратил на эту задачу не более часа в день. Идея была в том, чтобы не выгореть, не снизить качество работы и не утратить объективность в действиях. Так, эта задача была решена за примерно 20 часов (250ч в сумме), к 26 февраля 2021.

/assets/images/geek-content/9.jpg

Шаг 7: UI-UX дизайн

Закончив шестой шаг, я решил взять недельный отдых от проекта. Затем, будучи полностью уверенным в том виде проекта, который следует получить, я попросил моего друга Dee, создавшего дизайн UX Core, помочь мне в визуализации UXCG. В сумме мы проработали около 10 часов, из которых 7 ушло только на то, чтобы создать главную страницу UXCG и поп-ап вопросов, а остальные 3 на обсуждение и имплементацию интеграционных элементов UXCG <-> UX Core.

Шаг 8: Редактирование

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

Этот шаг занял две недели. Редактирование велось по вечерам с понедельника по пятницу, по 3 часа в день, и было закончено 30го марта. На этот момент я проработал на проекте 290 часов.

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

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

Шаг 9: Английская версия

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

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

/assets/images/geek-content/10.jpg

Шаг 10: Написание вводной статьи

К этому времени мои друзья уже начали техническую имплементацию проекта, а я занялся написанием вводной статьи. С самого начала я планировал опубликовать ее английскую версию на Medium, русскую на Habr, а на keepsimple оставить ее копию как архивный материал. Написание вводной статьи было завершено 3го мая.

Шаг 11: Общее редактирование английского контента

Следующие десять дней ушли на первичное крупное редактирование английской версии контента UXCG, а также составление SEO материалов (ключевые слова, описания) для UX Core и UXCG.

/assets/images/geek-content/11.jpg

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

Шаг 12: Финальное редактирование русского контента

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

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

/assets/images/geek-content/12.jpg

Шаг 13: Финальное редактирование английского контента

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

/assets/images/geek-content/13.jpg

Шаг 14: Техническая имплементация

К 25 июля была завершена первая стадия технической имплементации проекта. Была готова админка через которую нужно было загрузить все вопросы UXCG, алиасы для их поиска, все ответы, а также заполнить секцию «похожие вопросы» для каждого вопроса. Т.к. я не хотел допускать ошибок, я решил избежать использования скриптов автоматизирющих этот процесс. Поэтому, мне понадобилась неделя для ручного ввода всех данных. Единственное, что мы решили автоматизировать, это заполнение секции «Встречается в вопросах UX Core Guide на страницах описания искажений в UX Core.

/assets/images/geek-content/14.jpg

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

У нас ушло 9 дней на исправление ошибок каждого из трех проектов (keepsimple.io , UX Core, UXCG). 11 июля, убедившись в когерентности созданного продукта, мы решили перейти к установке аналитический модулей (GTM + bias and question-based “usefulness” analysis). На это нам понадобилось еще 2 дня, и к 13му июля я решил дописать эту статью и подготовиться к релизю. На данный момент пока я пишу этот текст Trello карточка проекта выглядит так:

/assets/images/geek-content/15.jpg

Сейчас 13 июля 2021, 10.24pm (Abu Dhabi time). Единственная оставшаяся задача связанная с проектом выглядит так:

/assets/images/geek-content/16.jpg

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

В завершение этой статьи я хочу поблагодарить моих дорогих друзей, без которых сложность этого проекта вырасла бы в десятки раз. Большое спасибо Ваану за то что вовремя подчеркнул важность бэкенд системы для проекта, и взялся ее написать. Огромное спасибо Артему за то что в очередной раз поддержал меня и взялся за имплементацию фронтенда. Спасибо тебе за твое терпение и выдержку с которой ты терпел мою ущербную раздраженность и нытье на разных этапах проекта. Спасибо Карену за прекрасную визуализацию и поддержку проекта просто потому что это было для меня важно (хотя я надеюсь что ты тоже проникся духом создания околонаучного проекта). И конечно спасибо Лусинэ за то, что помогла с редактированием текстов. Моим близким людям известно как болезненно я воспринимаю работу с текстом, словами и смыслами. И я благодарен тебе за то, что мы не поссорились из-за моей чрезмерной реакции на каждое словарное изменение в проекте. Отдельная благодарность Сако, за помощь по части DevOps работ, и Наринэ за очередное напоминание, что текст в речи и в письме – это разные вещи.

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

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

Спасибо.