Когда открыл рабочий чат...
Когда открыл рабочий чат...

Специалисты, поработавшие много лет в IT, иногда чем-то напоминают людей преклонного возраста, которые встретившись, начинают рассказывать о наболевшем.

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

рабочие чаты.

Симптомы

Большая часть болевых симптомов у нас сошлись буквально 1 в 1:

  • Огромное число чатов

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

  • Постоянные и частые переключения между обсуждениями в чатах

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

  • Неструктурированная переписка

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

  • Культура общения

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

И мы сошлись на том, что:

  • Переписка в чатах сжирает огромное количество рабочего времени.

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

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

И тут я припомнил:

А был же проект, где эти боли удалось победить.

Да, это был жаркий проект. У меня в нём от чатов не то что болело - подгорало! Да так сильно, что я рассматривал увольнение - как решение сложившихся проблем на проекте.

Но я остался и нашёл решение.

Все изменения не от хорошей жизни

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

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

Я катастрофически не успеваю делать свои задачи, как по руководству разработкой, так и задачи на сам коддинг.

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

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

Сначала сократил свой обед, буквально до 5-10 минут, чтобы только проглотить еду и потом снова окунуться в рабочий круговорот. Потом стал задерживаться на работе и сидел до позднего вечера. И только тогда, хоть как-то, со скрипом, я стал справляться со своими рабочими задачами.

В таком режиме я проработал где-то с полгода ровно до одного случая:

Вечер, около 9. Я ещё в офисе, работаю. Звонок на мобильный. Абонент: папа. Снимаю трубку.

Я: Алло.
П: Алло. Привет.
Я: Привет.
П: У тебя всё нормально?
Я: (я заволновался после такого вопроса) Да-а. А что?
П: Ты помнишь, что у Катьки (прим. автора: моя сестра) сегодня день рождения?
Я: (меня как холодной водой окатило "Блин, забыл поздравить! А собирался же в обед позвонить!") Заработался и забыл поздравить.
П: Мы сейчас сидим за праздничным столом. Передаю ей трубку.

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

Я как сейчас помню, жутко раздосадованный сел в рабочее кресло и осмотрел пустой open space офиса, а в голове только и крутилось:

- Как я мог забыть?! Если б папа не позвонил...

А затем ко мне пришло осознание:

  • Я уже 12 часов как на работе.

  • И хочется кушать... обед был уже 7 часов назад.

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

Так причём здесь чаты?

Ещё немного терпения, как раз к ним подошли вплотную.

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

Я начал с этим бороться: стараться уходить вовремя.

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

Что лучше:

признаться своему руководителю, что не тяну

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

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

Я нашёл такой выход из этой дилеммы:

Это просто очередная задача, которую просто надо решить.

И эта "просто задача" настолько заняла меня, что я постоянно про неё думал в т��м числе до/после работы и даже на выходных. И никак не мог понять - почему я не успеваю. Ведь я буквально упахиваюсь на работе так, что вечером еле волочу ноги домой, хотя моя работа целиком состоит из умственного труда.

И тогда я не придумал ничего лучше, чем просто логировать, то чем занимаюсь в течении рабочего дня.

Примечание

Именно тогда зародилась моя профессиональная привычка: логировать свои действия на работе. Она до сих пор сопровождает меня и помогает в работе.

Через две недели логирования я провёл свой первый анализ лога и результат меня ошеломил:

  • ежедневно от 4 до 6,5 часов рабочего времени я трачу на коммуникации с коллегами.

  • порядка 30 минут в день уходит на естественные нужды (сбегать в туалет, заварить чаю/налить воды из кулера)

  • непосредственно на мои рабочие задачи уходит от 1 до 3,5 часов в день максимум

И вот что получается:

  • На планировании своих задач я исходил, что буду посвящать им весь свой 8-ми часов день, но по факту получалось от 1 до 3,5 часов день.

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

...на коммуникации с коллегами.

Беспорядочные коммуникационные связи

После того как увидел на что тратится моё рабочее время, я в первый раз обратил внимание на следующие процессы проекта:

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

Например:

  • В нескольких общих чатах проекта ведётся не прекращающая переписка (от 2-3 до 10) людей, при чём в одном чате обсуждается сразу несколько тем с разным составом участников

  • Были чатики с ограниченным числом лиц по какой-то определённой проблеме/задаче

  • Был чатик отдела по направлениям

  • Много коллег писали прям в личку, причём могли писать по нескольким вопросам сразу и начиналась такая же перекрёстная переписка по нескольким темам, как в общем чатике, только в меньшем масштабе

  • Была ещё корпоративная почта, в неё писали в основном руководители и изредка менеджеры.

  • Была ещё переписка в комментариях в задачах, которой в основном пользовались менеджеры проекта.

И это только переписка!
Не говоря уже про живые встречи по проекту (планинги, дейлики и т.п.)

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

Например

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

Поэтому постоянно приходится держать в голове где и с кем ты обсуждал тот или иной вопрос. И основное обсуждение по проекту было...

...в корпоративном мессенджере.

Поиск решения

Думая над тем, как уменьшить количество коммуникаций, я решил сделать классификацию своего общения. И оказалось, что от 70% до 90% моё общение с коллегами состояло из консультаций. Другими словами, люди приходят ко мне за помощью, советом, кивком "да, давайте так и сделаем" и т.п.

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

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

Так я стал искать решение.

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

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

  • Воспитание культуры общения.
    Мы повесили в отделе обучающие плакаты с описанием, как обращаться с вопросом к коллеге, про ценность своего и чужого времени.

  • Готовили лекции и проводили обучение коллег в отделе по продукту и его функционалу.

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

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

И в общем, из перепробованного ничего толком не помогло:

  • Документация - отвечала на одни вопросы, но порождала новые, плюс требовала постоянной доработки и актуализации

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

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

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

Решение

По всем пришедшим мне в голову решениям, я везде потерпел фиаско. Пришло отчаяние: неужели так и придётся с этим жить на проекте? И как ни странно, в этом отчаянии, уже в порядке бреда, ко мне пришла идея:

А что если перенести всё общение в issue-трекер и вести переписку в комментариях в рамках тикета (задачи).

На первый взгляд, она принципиально ничего не меняла - такое же асинхронное общение, только в комментариях в задаче. Но есть пару "но", которые я заметил, когда общался в issue-трекере с менеджерами и изредка с сотрудниками тех.поддержки и тестировщиками:

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

  • В issue-трекере обсуждение сразу идёт в чётко очерченом контексте - тикете (задаче), которая автоматически формирует отдельный поток обсуждения. И эти потоки не пересекаются между собой в отличии от чата.

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

  • Тебя нельзя добавить в обсуждение в задачу, как это происходит в чате, поэтому позвать тебя "на всякий случай" уже не получится. Но можно обратиться в комментарии к человеку, когда его участие действительно потребуется.

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

  • Обсуждения в задаче остаются видны всем, даже тем кто не участвовал в них и тем, кто ещё в будущем только придёт на проект. И это правило распространяется на все задачи автоматически. В чате доступ к истории может предоставить тебе только участник чата с соответствующими правами.

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

И не буду тянуть, скажу - да, идея действительно сработала!

Результаты

Что было сделано:

  • Написан bash скрипт, который для пользователя добавлял на почтовый сервер три папки (упомянули меня, подписан, остальное) и правила фильтрации почты, которые раскладывали входящие письма с уведомлениями от issue-трекера в эти папки.

  • Протестирован скрипт и размещён на общем ресурсе, доступный каждому сотруднику в отделе.

  • Написана инструкция, как выполнить скрипт (требовалось выполнить единожды)

  • Составлена таблица со списком всех сотрудников и пометкой выполнен/не выполнен скрипт.

  • Руководителям групп проекта дано задание проконтролировать выполнение скрипта у подчинённых сотрудников.

  • Настроены единые уведомления на группу пользователей проекта в issue-трекере
    (уведомлять при упоминании, уведомлять при подписке)

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

  • Проведена встреча с коллегами по проекту, где ещё раз всё проговорили и объяснили, ответили на вопросы.

  • Сократили чаты проекта до 3-х:
    - Остался общий (для уведомлений, оперативного обсуждения инцидентов на ПРОМе и уточнений в какую задачу перевести обсуждение вопроса),
    - Чат уведомлений о выпуске релиза
    - Чат уведомлений для MR.

  • В личку писать не запрещается, но если обсуждение вопроса затягивается, то рекомендовалось сотрудникам выводить обсуждение в отдельный тикет (задачу).

Что изменилось:

  • Мои затраты на общение сократились от 40% до 60%.

  • Изменилась содержательная часть сообщений, она стала более структурированной и ёмкой.

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

Заключение

Чаты, не смотря на свою простоту использования, имеют ряд серьёзных недостатков:

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

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

  • Высокая фрагментированность информации в рамках одного обсуждения.

  • Сложность поиска информации.

  • Ограниченность доступа к информации для участников проекта.

  • Общение в чатах воспринимается как неофициальное, личностное общение, что формирует определённую культуру общения с большим количеством коротких сообщений и низкой информационной содержательностью.

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

  • Отсутствует терминальность обсуждения, т.к. у обсуждения в чате нет статуса. Нельзя закрыть обсуждение в чате поставив резолюцию: решено, не требует решения, на паузе и т.п.

  • Сотрудник не имеет права самостоятельно определять вступать в чат или нет.
    За него этот выбор делают его коллеги, которые могут добавить в чат по любой причине, например, просто "чтобы был на всякий случай".

Как итог я пришёл к заключению:

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

Поэтому как альтернативу рекомендую:

Для команд 5+ использовать комментарии в issue-трекерах, где отдельный тикет (задача) - это новый поток (thread) для обсуждения вопроса/проблемы/задачи на проекте.

Такой подход имеет ряд преимуществ:

  • Открытость информации для всех участников проекта, как и нынешних, так и будущих.

  • Автоматическая классификация обсуждения по тикетам (задачам)

  • У каждого обсуждения автоматически есть статус (done, pause, in process и т.п.) и возможность закрытия обсуждения с резолюцией.

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

  • Опыт показал, что люди в комментариях к задаче пишут более структурировано и ёмко нежели в чатах.

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

  • Значительно больше возможностей поиска информации нежели в чатах.

  • Низкая фрагментированность информации в рамках одного обсуждения, возможность связывать (линковать) обсуждения (тикеты) друг с другом.

  • Детализирует отчёты по логированию рабочего времени, т.к. вместо абстрактной задачи "Общение", сотрудники списывают время в конкретную задачу