Привет! Это Роберт из МТС Линк Чатов. Оргструктура компании и сами коммуникации обычно существуют параллельно друг другу: отделы и должности — в онлайн-доске или базе знаний, а общение — в мессенджере. Мы подумали: а что, если связать оргструктуру с коммуникациями и сделать так, чтобы сотрудники сразу начинали в ней работать при входе в мессенджер? Так мы пришли к идее Команд — раздела, где участники распределены по отделам и связаны с рабочими чатами. В статье расскажу, сколько макетов и гипотез отбросили, как шла разработка в целом и что дали Команды первым пользователям. 

Когда идея витает в воздухе

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

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

Оргструктура и рабочие чаты обычно никак не связаны и существуют в разных сервисах
Оргструктура и рабочие чаты обычно никак не связаны и существуют в разных сервисах

Но в рабочих чатах могут быть и другие сценарии, кроме общения с коллегами:

  • коммуникация в проектных группах, когда в одном месте собираются фронтендеры, дизайнеры, UX-специалисты, бэкендеры, тестировщики;

  • взаимодействие по бизнес-юнитам: «Студия дизайна» общается в одних чатах, а «Магазин на диване» — в других;

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

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

Выдержки и цитаты респондентов во время наших исследований
Выдержки и цитаты респондентов во время наших исследований

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

Осталось понять, как реализовать эту возможность. Было два варианта:

  • сделать отдельную админку для групп, но тогда фича была бы спрятана в глубинах мессенджера;

  • добавить группы в интерфейс мессенджера, чтобы они были доступны всем.

Оба варианта рабочие, но мы решили пойти по второму пути.

Ищем место в интерфейсе для нового раздела

В Линк Чатах на тот момент было четыре раздела: чаты, каналы, участники, обсуждения. Мы могли добавить к ним оргструктуру, но проблема управления общением все равно бы сохранилась. 

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

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

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

Мы внедряли новую сущность в уже рабочий продукт, поэтому задумались, как менять его интерфейс. Сначала решили сократить разделы внутри Линк Чатов: взять и объединить новые Команды с каналами и участниками.

Хотели объединить два раздела в одном…
Хотели объединить два раздела в одном…

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

Мы пробовали разные варианты: сворачиваемые, закрепленные, открываемые списки
Мы пробовали разные варианты: сворачиваемые, закрепленные, открываемые списки
Сама вложенность тоже могла быть реализована десятком разных вариантов
Сама вложенность тоже могла быть реализована десятком разных вариантов

Отказываемся от первоначальной задумки и меняем приоритеты

Продолжая тестировать макеты с пользователями, мы быстро обнаружили, что создание каналов внутри Команд мешает работе:

  • каналы дублируются, и участнику рано или поздно приходится отслеживать несколько одинаковых чатов;

  • пользователи, привыкшие к вкладке «Каналы» в Slack, теряются в новой навигации.

   Строгое включение логично, но что делать, если у одного отдела два общих канала?
  Строгое включение логично, но что делать, если у одного отдела два общих канала?

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

  1. Администратор просто добавляет уже действующие каналы в команду или создает новые прямо здесь.

  2. Участники Команды открывают список и переходят к нужным каналам, как по ссылке.

Канал «Проектная группа» может входить как в Команду руководителей, так и дизайнеров
Канал «Проектная группа» может входить как в Команду руководителей, так и дизайнеров

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

Финальный вариант: Команды представлены списком, а внутри — ссылки на каналы
Финальный вариант: Команды представлены списком, а внутри — ссылки на каналы

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

Оптимизируем огромную сторю

Разработка Команд затронула практически весь мессенджер: менялись основные части экрана, а еще возник риск высокой нагрузки. Команды будут создаваться не только для маленьких групп разработки по 10–15 человек, но и для объединения всей компании или отдельных бизнес-юнитов. В организации с несколькими тысячами сотрудников будет отображаться огромное количество сущностей.

Здесь мало участников, но если в каждой команде будет по 1 000 человек, то нужно сохранить такой же быстрый отклик
Здесь мало участников, но если в каждой команде будет по 1 000 человек, то нужно сохранить такой же быстрый отклик

Наш фронтендер Кирилл Горячкин вместе с командой провел нагрузочное тестирование: при 20 000 пользователей в командах не выявили никаких проблем. Это удалось сделать благодаря:

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

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

Собираем мозаику из фич внутри Команд

Команды позволили нам закрыть еще одну потребность у пользователей — групповые теги для упоминаний. Фича была одним из самых частых запросов, и мы решили пойти в этом направлении через новый раздел. Мы связали теги с Командами и дали возможность упоминать группы в чатах и каналах. Как мы работаем с запросами, рассказывали в статье «Ввод текста движением глаз и коробка для Linux? Как мы собираем запросы пользователей и используем их в разработке».

Без оптимизации групповых тегов тоже не обошлось. Когда мы пишем @ в окне ввода, приложение еще не знает, какой тег — групповой или личный — мы хотим ввести. Оно должно выдать все сразу: если у вас 1 000 пользователей и 300 Команд, то без пагинации они попадут в громадный общий список. Сейчас мы загружаем 20–30 элементов — только те, что пользователь видит на своем экране.

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

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

Концепт треков внутри команды
Концепт треков внутри команды

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

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

Концепт дашбордов внутри команды
Концепт дашбордов внутри команды

Наша глобальная задумка

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

В перспективе есть идея сделать Команды единой сущностью для всех продуктов внутри экосистемы МТС Линк. Мы выстраиваем UCaaS-сервис, поэтому Команды могут хорошо лечь в эту концепцию. Внутри МТС Линк Чатов есть Встречи, Курсы и Доски — хочется сделать так, чтобы все взаимодействие с ними происходило именно через Команды.

Концепция в будущем: общий поиск, стрелки для перехода, а внутри Команды — агрегация событий и много полезных вкладок
Концепция в будущем: общий поиск, стрелки для перехода, а внутри Команды — агрегация событий и много полезных вкладок

Мои выводы о разработке 

Команды позволили создать внутри мессенджера новый раздел, который помогает общаться в группах. Руководители теперь видят, кто и над чем работает, а участники — своих коллег и важные чаты. Так это выглядит для новичка, который впервые оказался в рабочем мессенджере:

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

Раздел «Команды» уже появился у всех пользователей. Будем собирать обратную связь, анализировать ее, а потом улучшать наш новый раздел. Если у вас есть идеи или мысли, то пишите в комментариях — обсудим.

Комментарии (1)


  1. muntu
    20.12.2024 19:21

    прикольно) мы когда-то при разработке сразу от команд отталкивались. сначала команда (по факту воркспейс), потом уже внутри деление на группы (административно или функционально) и чаты. и навесили на чаты группировку как в телеге. тоже было ок.
    столкнулись с проблемой — межкомандные групповые созвоны, да даже один на один, тут была засада по архитектуре.
    у вас есть такая проблема и если да, то как вы её решаете?