Привет, Хабр! Представь что ты Usability-специалист, разрабатываешь UX для мобильного приложения с 10 000+ активными пользователями в день в час. Тебе необходимо постоянно тестировать его на большом количестве респондентов. Желательно без встраивания скриптов в исходный код приложения (какая служба безопасности тебе его выдаст?). К чему это все? Дело в том, что Oprosso вместе с нашей командой Phystech.Genesis с 16 по 18 апреля провели онлайн-хакатон Hack.Genesis_online_, посвященный поиску подходов к решению задачи UX-тестирования мобильных приложений.  Если ты не знал, то Oprosso создает продукты, которые помогают управлять клиентским опытом и проводить сложные исследования в онлайне, чтобы лучше понимать поведение людей в цифровых каналах, изучать их отношение к брендам, продуктам, сервисам.  Поэтому задача для них особенно актуальна.  На хакатон мы получили 305 заявок из 13 городов и 4 стран! После долгих обсуждений и подсчетов баллов было отобрано 12 лучших команд (52 человека) для решения задачи. К нам пришли специалисты из разных сфер: мобильные разработчики, аналитики, дизайнеры, проектные менеджеры. И всем было интересно пройти этот челлендж! Мы с Oprosso предложили командам создать веб-сервис для удаленного немодерируемого  UX-тестирования мобильных приложений. Можно было выбрать одну из платформ: iOS и/или Android.  Где ТЗ?  На хакатоне мы не даем ТЗ, максимум User Flow. В нашем случае он выглядит следующим образом: «Пользователь (для поставленной задачи — usability-специалист) заходит в онлайн-сервис, указывает идеальный сценарий выполнения задания по своему приложению, сервис формирует ссылку на исследование. Затем пользователь отправляет ссылку респонденту, респондент открывает ссылку с мобильного устройства и видит задание, выполняет его в приложении.  Сервис записывает все действия респондента (видеозапись, тапы, свайпы, переходы, ввод, успешное-неуспешное выполнение задания). Период, в течение которого должна проходить запись должен быть ограничен триггерами, активируемыми через пользовательский интерфейс решения.  Респондент должен явно начать задание и явно закончить его. По окончании данные о проведенном исследовании должны быть сохранены на бекенде сервиса.  Данные должны быть переданы и записаны в таком формате, чтобы из них можно было построить визуализацию переходов пользователя между экранами и отобразить действия на каждом из них».  Какие критерии? Рассказываем: решение не должно требовать дополнительного оборудования для записи действий пользователя, все должно отслеживаться внутри устройства респондента; решение использует устройство респондента для сбора данных о выполнении задания; решение не блокируется политикой безопасности; решение записывает и сохраняет данные исследования; сохраненные данные описывают реальные действия пользователя в период исследования (между триггерами начала и завершения/остановки). Реально ли разработать решение, удовлетворяющее всем этим критериям за 45 часов? Конечно, нет!  Поэтому мы оценивали критерии бинарно, ставили 0 или 1 балл за каждый критерий. В приоритете решения, которые не предполагают внедрение кода в исследуемое приложение. Как нам рассказал Иван Шкварун, директор по развитию бизнеса Oprosso, задача с виду кажется простой, но, как говорится, есть нюансы. Сейчас на рынке нет полноценного сервиса для удаленного немодерируемого UX-тестирования мобильных приложений, и в Oprosso хотят его сделать!  После самостоятельных поисков, анализа и генерации идей внутри, решили обратиться к силе коллективного разума участников хакатона, потому что в атмосфере здоровой конкуренции и технологического креатива рождаются порой потрясающие  идеи. До финальной презентации дошли 8 команд с 3-мя разными подходами к решению:  использование openCV; перевод мобильного приложения в веб; лайфхаки с дебаг режимом приложений и использованием специальных возможностей Android и iOS. Подробнее пройдемся по решениям победителей. 1-ое место взяла команда «Cache Invalidation» Они сделали приложение для UX-тестирования, которое отслеживает действия пользователя и определяет текущий View тестируемого приложения.  Это решение работает с помощью встраивания файловой системы Archlinux в андроид. Поверх этой файловой системы запускается ADB, который и дает всю информацию. Наконечный Максим, технический директор Oprosso, отметил: «У первого места самое интересное и хитрое решение. Прям хакатонское!» 2-е место у ребят из команды «DigitalRats» Они предложили прототип (концепт) комплекса UX-тестирования на основе данных перехвата событий. События перехватываются с помощью сервиса для людей с ограниченными возможностями извне тестируемого приложения. Oprosso решение понравилось своей лаконичностью и простотой.   3-е место получила команда «Название потом придумаю» Они разработали веб-сервис для кастомного UX-тестирования мобильных приложений на модульной структуре, которую легко масштабировать. При этом структура не ограничивает автоматически собираемую аналитику.  Решение работает без установки скрипта в код приложения и не требует знания программирования. А также оно позволяет проводить параллельные тестирования сразу нескольких сценариев в рамках одного приложения, что делает его более мобильным и удобным. «Это решение, которое заточено под узкий сценарий применения нашего продукта, но очень хорошо туда вписывается» — прокомментировал Наконечный Максим, технический директор Oprosso. Подведем итоги. На хакатоне получили 3 разных подхода к решению поставленной задачи — создать веб-сервис для автоматизированного UX-тестирования мобильных приложений. Полученные идеи уже взяли в проработку.  Иван Шкварун, директор по развитию бизнеса Oprosso, об оправданности их ожиданий и дальнейших планах: «Точно оправдались. Видеть горящие глаза ребят — это очень круто! Я лично стал больше верить в хакатоны, особенно если они хорошо и грамотно организованы. Из технологичных решений, которые предложили ребята, уже нашли несколько классных идей. На реализацию идей команд победителей требуется от 6 до 12 месяцев. Думаю мы предложим ребятам следующий этап работы над их проектами перед запуском полноценного продукта. Он будет длиться в районе месяца на нашем финансировании». А вот что говорят по поводу хакатона и дальнейших планов  ребята из команды победителей «Cache Invalidation»:‎ «Мы ожидали, что задача будет безумно сложной, близкой к невыполнимой. Но мы как раз к такому и привыкли! Еще перед хакатоном обдумывали варианаты, как мы могли бы решить этот кейс. Поэтому заранее отсеяли плохие варианты и смогли сосредоточиться на дикой, но очень хорошо работающей идее.  Наши ожидания оправдались. На пути к решению мы столкнулись с большим количеством проблем. Но многие из этих проблем красиво переплетались с концепциями дискретной математики, которую мы очень любим. В дальнейших планах у нас посмотреть какие условие нам готовы предложить в Oprosso и, если контракт будет довольно мягким, продолжить работу. Проект все же связан с огромным количеством R&D, поэтому давать серьезные обещания пока рано. В любом случае, хотели бы развивать идею дальше. Есть ощущение, что она может помочь находить уязвимости в Android, а это общественно полезное дело :)». В общем, все остались довольны. Верим, что у ребят все получится, и их крутые идеи будут реализованы в Oprosso.  Генерите неожиданные подходы к решениям IT-задач и участвуйте в следующих наших хакатонах!