Привет, Хабр!
Меня зовут Оксана и я – руководитель продуктовой команды в компании TrueConf.
Мы разрабатываем софт для видеосвязи и совместной работы уже больше 10 лет. Сегодня я расскажу о создании нового поколения десктопных приложений TrueConf: наш опыт переосмысления и трансформации project-команды в старшего и более зрелого брата – product-отдел.
История противостояния: дизайн против функций
Если вы связаны с продуктовой разработкой в IT, то поиск компромисса между идеями инженеров и дизайнеров – знакомая вам головная боль. А ещё она регулярно усложняется учётом потребностей заказчиков и жёстким роадмапом, в сроки которого нужно регулярно попадать, не испортив текущих возможностей вашего продукта новыми багами, а в идеале сделав его лучше.
Чтобы не сойти с ума, около 2 лет назад мы запустили процесс трансформации нашего подхода к разработке десктопных и мобильных решений. Начать решили с базовых ценностей: ещё несколько лет назад для нас было важно запихнуть в приложения как можно больше фич в промежутках между релизами. Сейчас же мы стараемся как можно больше общаться с заказчиками, чтобы сохранять непредвзятый взгляд и фокусироваться именно на тех функциях, в которых остро нуждаются пользователи. Двигаясь по этому пути, мы и сами не сразу заметили, как из проджект-команды постпенно превратились в продакт-отдел. Ну, нам так кажется.
Если обернуться назад лет на 5-6, то можно увидеть как сменилось несколько поколений наших приложений для ВКС – они то обрастали массой дополнительных функций на главном экране, как в 6-й версии (см. на скринах ниже), то прятали эти самые функции по разным меню и вкладкам в версии 7. Мы бросались из крайности в крайность, не до конца понимая, что именно нужно было самому обыкновенному пользователю по другую сторону экрана.
В предпоследней версии — TrueConf 7 — выполнение некоторых базовых действий для новичков было неочевидным. Во время конференции интерфейс приложения не изменялся динамически — например, для перехода в другие разделы использовалось то же боковое меню, что и при обычной работе приложения. Пользователи путали адресную книгу со списком участников конференции, а состояние приложения вне звонка с моментами нахождения в конференции и т.п.
Поэтому 8-е поколение TrueConf стало результатом полного переосмысления всего того багажа ВКС-функционала, который мы накопили, и применения новых продуктовых методологий разработки. Во главу угла теперь стала обратная связь от доверенных пользователей и заказчиков со всего мира. Как правило, это системные администраторы и IT-специалисты, которые ежедневно решают типовые проблемы своих пользователей при организации большого числа онлайн-встреч. Они с удовольствием рассказывают обо всех наших косяках, и заодно могут подсказать как было бы удобнее сделать для них и их пользователей. Кстати, вопрос и техника налаживания такого диалога – это тема для отдельной статьи на Хабре.
В ответ на боль пользователей мы пытались перестроить процессы вокруг TrueConf 8 так, чтобы итеративно, шаг за шагом, полностью обновить дизайн приложения, сделав его понятным даже для самых неопытных. Это наше самое современное, если хотите «флагманское», поколение приложений для Windows, а также версий для macOS и Linux, которые разделяют с ним большую часть интерфейса. О 8-м поколении приложений TrueConf для рабочих мест сегодня и пойдёт речь. А о мобильных решениях мы расскажем в следующей статье.
Часть 1. Вся власть пользователям!
Банальный факт, которым пренебрегают многие IT-компании: пользователю неважно насколько сложно всё устроено «под капотом», ему важно, чтобы оно работало быстро и понятно. Другими словами не тормозило и имело удобный UI.
Замечу, что наши родные пользователи из России и СНГ весьма привередливы к качеству UI, и это хорошо! Тут нужно сказать спасибо Яндексу и Google за воспитание первоклассного вкуса у пользователей к качественному продукту и сервису :) Клон с интерфейсом Zoom они бы точно не приняли – но мы в эту сторону и не смотрели.
Пользователи перегружены массой контента, которую получают одновременно из самых разных каналов: почта, календари, рабочие чаты, телефония, таск-менеджеры и другие корпоративные инструменты, которые хотят немножно нашего внимания. Поэтому для нас было важно переработать дизайн так, чтобы пользователи могли фокусироваться на встречах, не отвлекаться и быть в них максимально продуктивным.
Всё сложное и непонятное мы вынесли в панель для администраторов нашей серверной системы ВКС, а в приложениях оставили только самое понятное. И при этом быстрое – никаких Webview и Electron мы не используем, только старый добрый QT и C++. Кстати, на таком же стеке работает Telegram.
«Мухи отдельно, котлеты отдельно»
А начали мы с того, что визуально отделили интерфейс во время ВКС от интерфейса вне сеанса связи. Если провести аналогию с реальным миром, то постарались передать атмосферу «переговорки»: вы в неё зашли, закрыли дверь и ни на что больше не отвлекаетесь. Интерфейс изменился, под рукой осталось только самое необходимое. Даже если вы отвлечётесь, чтобы почитать чаты или посмотреть, кто из коллег онлайн в адресной книге, то в приложении сверху сразу же появится заметная панель с предложением вернуться назад в конференцию.
Другое важное следствие такого подхода – это удобство для гостевых пользователей, которые используют приложение только для подключения к конференции по ссылке или из календаря. Беседы в других чатах, адресная книга, история вызовов и прочее для них банально не нужны, и поэтому не занимают места в интерфейсе.
Избавляемся от лишних окон и вкладок
У нас давно чесались руки переделать интерфейс внутри конференции так, чтобы пользователи могли полностью погрузиться в переговоры и держать их под своим контролем без необходимости прыгать по разным вкладкам и окнам (передаём привет Microsoft). Т.е. перейдя в полноэкранный режим, по возможности не возвращаться из него до конца встречи.
Поэтому в новом интерфейсе мы разделили функции управления конференцией на две панели, которые всегда находятся перед глазами и не перекрывают видео от участников, а область справа зарезервировали для контекстных элементов. Таких как чат, списки участников, просмотр профилей и добавление новых участников. С учётом того, что в конференциях у нас может быть до 49 человек на экране и до 1000 в сумме.
Верхняя панель — это дополнительные действия для доступа к контексту встречи: чату, списку участников, нотификациям, статистике вызова и т.п. Кстати, можно одновременно просматривать и участников, и чат на всю высоту экрана. Видеоконференция при этом никуда не исчезнет и будет перед глазами.
Нижняя панель позволяет в один клик отключить микрофон или своё видео, быстро сменить камеру, переключиться на гарнитуру или начать показ контента. Также в этой панели слева теперь появляются кнопки для типовых действий, которые зависят от типа встречи и вашей роли в ней, например, выход на трибуну или отправка аудиореплики. Реплика нужна в случае, когда вы в числе зрителей, а не выступающих, но хотите что-то срочно добавить к беседе. А ведь раньше многие пользователи и не догадывались, что такая функция существует.
Здесь же располагается область с подсказками — она помогает освоить работу с приложением новым пользователям. Например, тем, кто пытается выступить с трибуны с выключенным микрофоном или камерой. Запретить мы это не можем, но можем подсказать, что скорее всего у пользователя проблема – опять же, признак хорошего UI.
Участники без видео не занимают место в раскладке
По нашим исследованиям 28% пользователей регулярно отключают свою камеру во время встреч, не смотря на то, что она у них есть, а для особо застенчивых присутствует возможность установить виртуальный фон. Поэтому в TrueConf 8 можно оставить в раскладке только тех, у кого камера включена, и не занимать драгоценное место аватарками тех, кто не хочет показывать себя. Все участники без видео выводятся отдельным списком в правом нижнем углу видеообласти и подсвечиваются рамочкой во время выступления наравне с другими собеседниками.
Святая троица: звук, контент и видео
Именно в таком порядке составляющие видеоконференции определяют её качество. С приоритетом звука всё понятно, а вот то, что картинку с камеры и контент (например, ваш рабочий стол) нужно обрабатывать по разному, не для всех очевидно. В первом случае важно количество кадров в секунду, а во втором – разрешение. Поэтому в групповых конференциях качество видео от каждого участника может достигать 720 строк (от каждого), а вот с контентом повеселее — он может передаваться в конференцию в 2 раза большем по количеству пикселей разрешении – 1080 строк.
Поэтому табличку с тысячей ячеек, детальную CAD-модель или презентацию, набранную 7 кеглем, можно рассмотреть во всех деталях. Если что-то пойдёт не так и канал просядет, то в отличие от видео с камеры, в первую очередь мы начнём снижать количество кадров в секунду, чтобы сохранять детализацию контента как можно дольше. Кстати, в видеозвонках 1-на-1 наши приложения легко выдают полноценные 4K как для видео, так и для показа рабочего стола.
Виджеты для самых многозадачных
Как сказал один из наших заказчиков, «даже если ты уходишь..., тебя настигает маленькое окошко с ВКС» (с). Речь о компактном виджете для тех, кому во время участия в конференции стало необходимо поработать в браузере, документах или на Пикабу Хабре. Виджет автоматически появляется на экране при потере фокуса основным окном приложения с ВКС. И отображает в своём мини-окне выступающего участника в режиме активации по голосу (или контент). Клик по виджету мгновенно погрузит пользователя обратно в мир онлайн-встречи.
Кстати, такой же виджет включается при захвате рабочего стола или отдельного приложения, чтобы вы могли видеть участников встречи поверх захватываемого контента и поддерживать с ними визуальный контакт. Другие участники, естественно, этот виджет поверх вашего контента не увидят. В браузерных решениях для ВКС вы такого удобства не найдёте (в этот раз привет передаём Google).
Ещё один виджет мы добавили для удобства управления показом слайдов из презентаций и PDF-файлов (кстати, новая возможность). Теперь даже если отвлечься от встречи, всегда видно какой слайд мы показываем студентам или коллегам.
Тёмная тема
Ну а что, мы тоже любим тренды. Тема умеет подстраиваться под выбранную в системе.
Групповые операции над участниками встречи
Чтобы пользователям и ведущим было проще ориентироваться в больших конференциях (а у наших заказчиков 100+ человек на связи – это норма), мы разделили список участников на докладчиков (тех, кого видно и слышно), зрителей и ожидающих пользователей. Для каждой категории есть свой набор групповых действий: например, организатор или ведущий встречи может одной кнопкой выключить или включить всем камеры и/или микрофоны, или перевести всех докладчиков в зрители.
В отдельную категории вынесены участники или устройства (SIP и H.323-терминалы у нас можно вызывать как обычных пользователей), которые ещё не приняли вызов или уже отключились. Можно повторно приглашать их как по отдельности, так и всех сразу. Впрочем, сервер ВКС сам позовёт отстающих после начала встречи, когда они появятся в сети.
Виртуальный фон на основе AI
Must-have возможность для тех, кто работает из дома, в командировках или в опенспейсах. Раньше мы могли вырезать фон только при наличии хромакея, которого ни у кого, естественно, не было. Поэтому пришлось научиться готовить нейросети, датасеты, а самое главное оптимизировать их – скорость наше всё.
В текущем релизе уже доступно размытие фона, а в следующем добавится возможность замены реального фона на виртуальный — такую возможность мы продемонстрировали в ноябре во время «Видео+Конференции 2021» в Москве.
На самом деле, тема применения AI в ВКС очень плодотворная, и мы реализовали уже много интересного. Например, оффлайн распознование русской речи или автоматическое кадрирование участников в переговорных комнатах, но об этом будем рассказывать уже в других статьях.
Поддержка горячих клавиш
Стыдно признаться, но вот раньше не было у нас такой возможности. Исправляемся!
Часть 2. Новая гибридная реальность
В следующий раз, когда к вам на встречу кто-то зайдёт с телефона, не смотрите на него с высока – это явно продвинутый пользователь, подтверждающий новый мировый тренд. Количество участников ВКС, подключающихся в дороге с планшета или смартфона, стремительно растёт.
Только 19% опрошенных нами пользователей ни разу в этом году не присоединялись к ВКС с мобильного устройства. Ну, а про работу из дома мы даже спрашивать не стали. Новая реальность уже давно здесь, и одна из главных задач для нас – дать пользователям возможность эффективно работать, где бы они не находились.
Дополнительные статусы у абонентов
Чтобы сделать вашу готовность поболтать с коллегами более прозрачной, мы добавили несколько новых статусов. Помимо очевидного «Не на месте», который выставляется автоматически при бездействии системы, мы добавили «Не беспокоить». И он действительно просит остальных вас не беспокоить.
Статусы для мобильных абонентов
Нам пришлось заморочиться с поддержкой push-нотификаций и актуальных статусов для мобильных устройств. Это может стать для вас сюрпризом, но почти всегда мобильные абоненты находятся в состоянии оффлайн, ведь iOS и Android автоматически выгружают из памяти свёрнутые приложения. Наверное, вы обращали внимание, что мобильные мессенджеры нигде не указывают статус, а только пишут время, когда вы были в сети в последний раз. А каждый вызов – это лотерея.
Для решения этой проблемы мы поддержали два специальных статуса:
1) пользователь недавно был в онлайне с мобильного устройства;
2) тип устройства, на котором пользователь доступен для вызова прямо сейчас; это может быть телефон или ВКС-терминал.
Все зелёненькие, но не закрашенные. Это значительно повышает шанс дозвониться до вас вашим коллегам, пока вы не на рабочем месте, ведь теперь они точно будут уверены, что вы не оффлайн и доступны для вызова.
Про остальную магию, связанную с тем, что вызов мобильного абонента это и не вызов вовсе, а отправка push-нотификаций и call-back в конференцию с кучей разных нюансов (не забывайте, что у наших заказчиков свои сервера, зачастую в своих закрытых сетях), мы здесь рассказывать не будем, чтобы не отвлекаться. Скажу только, что до мобильных пользователей звонки гарантированно доходят и выглядят как обычный входящий.
ВКС + мессенджер = [иконка сердечка]
Как вы уже поняли, мы любим аналитику и давно подсчитали, что пользователи в среднем проводят в ВКС не более трети рабочего времени (а тех кто тратит больше времени, простите, неизбежно ждёт Zoom Fatigue). Оставшееся время, приходящееся на корпоративное общение, обычно распределяется пополам между мессенджерами и почтой, т.е. такие коммуникации проходят в асинхронном режиме.
Задачи заменить почту у нас не стояло. А вот прокачать наши чаты, которые раньше были доступны только для обмена личными сообщениями или для диалога во время конференций, было очень важно. Поэтому прежние чаты в TrueConf 8 заменил полноценный встроенный мессенджер. Ему ещё есть куда развиваться, и на замену Slack мы не претендуем, но уже сейчас можем помочь заказчикам снизить уровень фрагментации общения между различными корпоративными инструментами для общения. Ну и заодно хорошо сэкономить, ведь новые функции для совместной работы загрузятся бесплатно с апдейтом ПО.
Давайте объясним почему мы считаем наш мессенджер полноценным и обозначим некий наибольший общий делитель для подобных продуктов:
Во-первых, пользователь может быть одновременно авторизован на любом количестве устройств и использовать каждое из них независимо. Например, получать сообщения и вызовы сразу и на телефон, и на домашний ПК, и на рабочий ноутбук, а отвечать от туда, откуда удобно сейчас. Можно даже на SIP видеотелефоне быть авторизованным и принимать на нём вызовы параллельно с другими копиями приложения.
Во-вторых, автоматическая синхронизация сообщений, картинок, файлов, истории вызовов и настроек между всеми устройствами. Другими словами мы можем начать диалог за ПК, а продолжить его уже с телефона. Или дома открыть файлы, которые прислали в чат на рабочем ноутбуке.
Поддержка групповых чатов за пределами сеансов ВКС.
Групповые чаты
Первое и основное — теперь можно создавать чаты с несколькими участниками, которые доступны всегда. Сообщения можно выделять, пересылать, редактировать и удалять, в том числе для всех участников. Есть также поиск по чату и ответы на сообщения. А список файлов каждого конкретного чата можно отобразить на отдельном экране. Наглядно показано в ролике.
Не забыли про упоминания собеседников и контроль доставки сообщений — для любителей Passive & Agressive :)
Бонус №1. Для стримеров и операторов ВКС
Мы добавили специальный режим, предназначенный для вывода ВКС на большие видеостены во время ответственных заседаний или захвата раскладки ВКС для вещания. В этих случаях на экране не должно быть лишних элементов управления, нотификаций и видимости действий оператора. Управление конференцией осуществляется в основном окне приложения, а видеообласть выносится на отдельный монитор или видеостену.
Кстати, не все наши пользователи знают ещё один интересный приём: видеоокно любого участника конференции можно мышкой вытащить из раскладки и расположить в отдельном окне или на отдельном мониторе.
Тут же можно изменить стиль подписей, расстояние между окнами участников и даже брендировать фон под раскладкой конференции собственным изображением. Обычно такая потребность возникает у организаторов онлайн-мероприятий, форумов и других торжественных событий.
Бонус №2. Поддержка отечественного ЦП Baikal-M
Я уже говорила, что TrueConf 8 работает с ОС семейства Linux. Но могу добавить и ещё кое-что важное для заказчиков в России – в контексте импортозамещения. TrueConf 8 работает на ARM-процессорах Baikal-M под управлением ОС Астра Линукс Новороссийск. Мы впервые показали это приложение на ЦИПР-2021 в июне 2021 года вместе с ARM-версией нашего аппаратного терминала для переговорных, про который, кстати, можно почитать тут.
Итак, что же нам дал переход от проектного менеджмента к продуктовому? Понимание, что не надо бездумно раздувать функционал без оглядки на реальные потребности пользователей. Что продукт должен не только решать поставленные задачи, но и вызывать эмпатию. Что времена, когда мы могли сказать пользователю RTFM – уже давно прошли. Надеемся, так у нас и получилось. Скачать и проверить в деле новое приложение вы можете уже сегодня (обратите внимание, что все функции доступны только при подключении к последней версии TrueConf Server).