7 cмертных грехов Slack в большой компании (и как победить их автоматизацией)

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


    Например, вы можете сделать себе бота, который будет будит CTO.

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

    1. Люди спрашивают все подряд и делятся субъективно «важными» вещами в основном канале


    Даже в 2019-м сотрудники компаний все еще массово попадали в почтовые апокалипсисы — это когда одно неосторожное ответить всем в корпоративной рассылке на тысячи человек приводит к хаосу на полдня. Хотя вы всего лишь задали невинный и актуальный, в общем-то, вопрос: «А как получать меньше уведомлений?»

    Все портреты и имена обращающихся сгенерированы, все совпадения — случайны.

    В Slack есть своя версия этого греха — зайти в канал #general и спросить что-нибудь почти личное. Плюс — вишенка на торте — тегнуть всех.

    Cидите вы спокойно, работаете, слушаете что-нибудь любимое фоном, — а тут вас дергает уведомление. «Наверняка это что-то важное» — думаете вы, ведь вы настроили Slack так, чтобы оно приходило, только когда вас отмечают. Но затем вы видите левое сообщение и… ставите ему раздраженное эмодзи. Эмодзи ничему людей не учат, поверьте. А если не остановить поток сообщений, он лишь возрастет — теория разбитых окон, куда без нее.

    Поэтому мы завели каналу ограниченное число модераторов — постить туда прямо могут только они, а для остальных ввели бота-цензора:

    • При попытке написать в #general бот моментально удаляет пост из канала — но для автора это незаметно: кажется, что тебе просто “не дают” опубликовать сообщение. При этом робот сохраняет текст и данные об авторе.
    • Бот напоминает, зачем нужен канал и предлагает подумать, стоит ли писать именно в него.
    • Если автор упорствует, бот отправляет текст на проверку модератору.
    • Дальше модератор — обычно это кто-то из внутреннего PR — или опубликует текст в канале, указав автора оригинала, или напишет автору в личку, объяснит, почему его сообщение нерелевантно каналу, и где лучше публиковать такие запросы или новости.

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

    А для частых вопросов мы завели канал с говорящим названием #faq — кстати, отвечают в нем уже люди, а не боты.

    2. Никто не читает закреп перед тем, как написать в канал


    Окей, мы отбили #general. Но наверняка в Slack осталось еще под сотню-другую важных источников информации — и у некоторых названия сильно совпадают. Например, у нас по каждому продукту существует целая линейка публичных каналов с единым корнем (название продукта или отдела) и суффиксами (каналы подкоманд, например).

    Скажем, вы вбиваете в поиске что-то вроде #mobile, чтобы найти, где поделиться замечанием или предложением по работе одного из приложений. И видите примерно такой список:


    С недавних пор завели правило — неактивные в течение 90 дней каналы архивируются.

    Если у вас несколько каналов с похожими названиями, поверьте, большинство будет задавать вопросы не в том, в котором стоило бы.


    Раньше мы указывали типы запросов, которые можем обработать, в закрепленном сообщении. Но (surprise!) его никто не читал.

    Теперь у нас есть бот, который присоединяется к каналу и при добавлении любого новичка отправляет ему эфемерное (это которое 'Only you can see this message') сообщение с правилами.

    Иногда это работает — по крайней мере, лучше, чем жить просто с закрепом.

    3. Задают вопросы, которые есть во внешнем FAQ. И вообще не любят выходить во внешние информационные системы


    На этот счет мы написали целый «взвод» ботов. Каждый помогает в своем кейсе.

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


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

    Мы поступили просто: если кто-то не идет в вики, то она должна прийти к нему. Так как вопросы часто типовые, написали бота, который:

    • Отправлял запрос из Slack (только ключевые слова, разные «привет», «помогите» легко отсечь) ко внешней вики.
    • Приносил топ ответов — а вероятность, что в первых, скажем, пяти строках выдачи будет нужное, велика. И практика это подтвердила.

    Дальше были боты, которые помогают подготовить и ускорить все для заключения договоров — формирование пакета документов, его согласование и отправка в другие службы тоже решается прямо в мессенджере… И тогда мы замахнулись на Jira.

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


    Общение команд разработки и инфраструктуры идет через канал, в который за день падают по 30-50 сообщений. Ребятам из инфры есть чем заняться, помимо создания тикетов в Jira. Поскольку любое сообщение в канале #infra будет или запросом, или отчетом о проблеме, есть бот, который автоматически создает таски из сообщений вида «привет, вот-что-случилось-или-нужно, помогите, пожалуйста».


    Реакции под сообщениями — это не просто так. Это статусы тикетов в общей системе управления задачами.

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

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

    5. Тратят время на ручную выгрузку и визуализацию данных из внешних систем


    Целый выводок ботов, наоборот, помогает доставать данные из сторонних систем. Так, у тимлидов в ходу три помощника:

    Slack-burndown-bot — берет спринт в Jira и формирует диаграмму сгорания: вот сколько всего задач, вот сколько вы сделали, вот сколько осталось.


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

    Бот Арсений — присылает в канал команды более развернутую статистику: у кого назначены ревью, какие из текущих задач сжирают больше запланированного, кто заполнил ворклоги и т.д.

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


    Если хочешь воздержаться — ставишь “кирпич”, чтобы бот потом не тыркал, что ты не проголосовал.

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


    Иногда бывает такое, что что-то легло. Особенно, ночью.

    Для критичных падений мы завели отдельный канал и подключили к нему бота, который дублирует дежурного. Мы используем сервис Opsgenie для алертинга: говоришь ему следить за набором серверов и, если какой-то упал, то сервис присылает дежурному сообщение на пейджер звонит дежурному на мобильный. Если дежурный не реагирует, спустя 20-30 секунд ему звонит робот — и когда трубка поднята, робот сообщает что-то вроде: «Там лежит, ужас, нажмите 1, если вы это услышали — и чините».


    Процесс на гифке ускорен, но отражает суть.

    Если человек не поднял трубку или не нажал 1, это эскалирует звонок до его тимлида.
    А если и тимлид недоступен, звонок может эскалироваться вплоть до технического директора.

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

    7. А еще все хотят своего бота для слэка


    Когда вы начнете автоматизировать все с помощью ботов, поверьте, к вам постоянно будут приходить с просьбой «А напишите и мне вооот такого». Тогда вам откроется правда: очень часто это будет что-то вроде “бот, который показывает кнопки, а если нажимаешь на одну кнопку, приходит такое сообщение (если на другую — другое)". В общем, бот, реализующий дерево сообщений, популярен и применим во многих кейсах бизнеса.

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

    P.S. Недавно победили еще одну проблему, которая бесила многих: сделали бота, который разворачивает ссылки на внешние скриншотилки в полноценные картинки — не надо никуда переходить и отвлекаться на кучу баннеров и поп-апов, которыми часто обвешаны внешние файлохранилища.
    Skyeng
    Крупнейшая онлайн-школа Европы. Удаленная работа

    Комментарии 19

      +5
      О! Эмодзи! Отличная тема. Хоть кто-то еще пишет о практичности их использования. Считаю механизм сильно недооцененным. Это видно по статье об обновлении YouTrack с новостью «мы подвезли эмодзи» и множеством комментариев «фу-фу, вы еще бы мемасиков завезли». А между тем это отличный механизм избежать флуда в духе +1 и вопросов «а ты сообщение видел?».

      Но это я так, на эмоциях больше. Вопрос такой. Рассматривали ли когда либо вопрос использования того же Mattermost? Особенно с учетом того, что как я понимаю у вас есть go-шники.
        0
        Эмодзи! Отличная тема.

        Да, это очень удобно. Еще один пример: в каналах можно строить на них голосования.



        Скажем, вот голосование за темы сегодняшних внутренних докладов от мобильной разработки.
          0

          А как-то стандартизируйте список? Например так:



          P.S. А есть radio button эмотокены? Как пример для кейса "выполнено" / "не выполнено".

            0
            del
              +2

              У нас они как-то сами стандартизировались, без списков :)


              P.S. Не "эмотокены" а "эмотиконы" (emoticon, emotion + icon) или просто "emoji" :)

                0

                У нас так же. А потом исходя из сложивший практики это список просто утвердили обязательным к использованию уже всеми вновь прибившими. Делали для дальнейшего развития автоматизации. Например для страницы на которой выводятся все незавершенные дела (эмотокен с неактивной галкой) пользователя.

          –3
          Советы хорошие, но анимированная гифка отвлекает от чтения.
          Для сведения: моргающий кусок поста мне пришлось проскролить.
            0
            Такая автоматизация — это реально здорово. Но сколько же такая инфраструктура стоит… Одни только Слак с Ньюреликом встают в нехилую такую копеечку, а ещё время разработчиков на написание ботов. Ну, время ладно — зато потом оно будет сэкономлено (obligatory XKCD pic here) ботами. Релик тоже понятно — при всей его гигантской стоимости он приносит явную пользу, которая может отбиваться. Но вот Слак — неужели он приносит столько пользы, что оправдывает стоимость?
              0

              Тоже самое наворачивается вполне себе на базе mattermost в режиме self-hosting даже силами одного человека.

                +3

                Ну там не такая уж и большая стоимость, чтобы ее необходимо было оправдывать

                  0
                  Если посчитать с точки зрения бизнеса — то Slack стоит копейки.
                  Например, для небольшой компании из 10 человек со средней зп в 100К он будет стоить всего $6.67*10 = $66.7 = 4,630 рублей в месяц. А зарплатный месячный бюджет для этой компании составляет порядка 1.5 миллиона рублей. Согласитесь, сумма в 4,630 рублей — мизерная при таком раскладе.
                    0
                    С точки зрения бизнеса он должен ещё и пользу приносить соразмерную. У нас в компании сейчас 50 человек — за них нужно разом выложить $4000, потому что 6,67 — это при разовой оплате за год. Рубль к доллару у нас имеет тенденцию дешеветь, поэтому через год это может быть совсем уже другая сумма.
                      0
                      Ну ок, Вы можете выложить 50 * 8 = $400(~28 т.р.) в месяц, если $4000 большая сумма для Вас. Для 50 человек зарплатный месячный бюджет(допустим, 100К — средняя) = 5 лямов + еще половина налогов, итого — 7.5 лямов. При такой сумме затрат 28 т.р. размывается, согласитесь?
                  0

                  Насколько понял — боты самописные?

                    +2

                    Да, самописные

                    –1
                    Вау! Вы изобрели сервис-деск (разумеется, я не о прямом значении, но все описанные фичи — то, что применяется десятки лет при работе с пользователями)
                      0

                      А меня в последнее время чаты стали раздражать. Как с этим бороться-то?

                        0

                        Выйти из изоляции.

                          +1
                          С раздражением или с чатами? Если второе — то стараться не плодить и правила для них завести: там, чтобы люди старались максимально в одном, а не 10 сообщениях, выразить мысль; чтобы соблюдали тематику чата, вели дискуссию в тредах, не частили с постингом. В рамках рабочих коммуникаций люди довольно легко принимают такие правила игры, из того, что видел.

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

                        Самое читаемое