Позвольте пользователям сесть за руль: как клиенты скорректировали нашу последнюю функцию

Nov 25 2022
Практический пример упреждающего решения проблем клиентов с помощью их поведения Функция, которая недавно появилась в нашей дорожной карте продукта на Visibuild, — это возможность экспорта нескольких PDF-файлов для Visis через любую страницу местоположения проекта, удачно названная Bulk PDF Exports. Учитывая наши предыдущие обновления, которые давали пользователям возможность фильтровать Visis на основе выбранного местоположения, следующим логическим шагом было предоставить пользователям возможность экспортировать эти данные.

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

Функция, которая недавно появилась в нашей дорожной карте продукта на Visibuild, — это возможность экспорта нескольких PDF-файлов для Visis через любую страницу местоположения проекта , удачно названная Bulk PDF Exports. Учитывая наши предыдущие обновления, которые давали пользователям возможность фильтровать Visis на основе выбранного местоположения, следующим логическим шагом было предоставить пользователям возможность экспортировать эти данные.

Примечание. Visi — это широкий термин, который мы используем для описания задач, проверок или проблем в рамках продукта».

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

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

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

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

  • Пора торговать.
  • Проверка функции.
  • Циклы обратной связи от конечного пользователя.

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

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

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

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

Мы разделили итерации этой функции на две части:

  1. Первая итерация представит пользовательский интерфейс, ориентированный на клиента, в веб-приложении и будет использовать уже имевшийся у нас серверный поток для отправки по электронной почте экспорта PDF для одного Visi в качестве вложения электронной почты.
  2. Вторая итерация будет сосредоточена на замене zip-файлов, отправленных по электронной почте, на PDF-файлы, удаленном хранении этих zip-файлов и замене вложения электронной почты ссылкой на загрузки.

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

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

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

Статистика раннего принятия

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

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

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

Статистика использования в течение первой недели после релиза.

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

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

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

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

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

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

Переходим ко второй итерации

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

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

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

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

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

Окончательное решение

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

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

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

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

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

Щелчок по ссылке для скачивания предоставит пользователю страницу загрузки для загрузки PDF-файла.

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

Наряду со ссылкой для скачивания мы указываем время до истечения срока действия ссылки. Было принято решение установить для ссылки статус «истекший» через 14 дней, учитывая, что экспортированные PDF-файлы обычно устаревают вскоре после экспорта.

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

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

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

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

Некоторые из этих состояний были представлены в пользовательском интерфейсе следующим образом:

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

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

Обновленный жизненный цикл нашего нового потока с течением времени можно упростить и резюмировать следующим образом:

Жизненный цикл экспорта Visi PDF для одиночных запросов на экспорт в PDF и запросов на массовый экспорт в PDF.

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

Пересчет, исход и результаты

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

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

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

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

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

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

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

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

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