Введение


На свою первую удаленную работу я устроился еще в 2009 году. Мне тогда было 19 лет. Это была должность младшего системного администратора на хостинге. По сути основная ее часть — техподдержка. Это была сравнительно некомфортная работа: нужно было весь день проводить возле ноутбука и быть готовым оперативно реагировать на сообщения клиентов в вебчатах и тикетах. Плюс выполнять какие-то регулярные задачи вроде настройки нового виртуального сервера. Чтобы выйти в магазин надо было отпрашиваться. Но даже эта работа мне нравилась больше, чем все мои офисные.



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

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

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

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

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

Корпоративная культура как кодированный закон


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

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

Модели поведения


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

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

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

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

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

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

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

Системы


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

Прием на работу


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

Раздражает, когда стучится HR с предложением пройти первое собеседование без вышеуказанного описания. Предполагается, что соискатель ничего не зная о компании уже страстно желает в нее попасть. Согласившись на первый этап и пройдя его, выясняется, что есть еще один, потом еще, а где-то между делом надо выполнить неоплачиваемое тестовое задание. Прохождение потенциальным сотрудником каждого нового этапа увеличивает его невозвратные издержки. Это термин из экономики, обозначающий затраты ресурсов, которые не получится вернуть, если отказаться на середине. Когда кандидат слышит, что все прошло нормально, но теперь нужно пройти еще один этап, то у него возникает выбор: отказаться, и все потраченные ресурсы просто сгорят, или соглашаться и сделать невозвратные издержки еще больше. Для него возрастает субъективная ценность данного предложения. Очень часто такие компании тянут до конца сразу несколько человек и делают выбор в пользу одного. Остальные потратили свое время и силы впустую. Этот баг человеческой психики любят использовать и продажники. Совет для соискателей: сразу узнавайте о процессе найма хотя бы на словах. Это позволит трезво оценить ситуацию и решить для себя, стоит ли предложение потраченного времени с вероятным отказом (ожидание успеха по-умолчанию, кстати, тоже один из багов, который надо иметь ввиду).

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

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

Стратегия и постановка целей


Какая цель у вашей компании или команды? Зачем вы и ваши коллеги приходите в офис или подключаетесь к рабочим сервисам? Каких результатов работы вы ожидаете от себя и других сотрудников?

Оценка


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

Развитие


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

Вознаграждение


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

Методы работы


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

Трекер задач


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

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

Создание и обсуждение задач в трекере делает возможным многие другие методы.

Асинхронность работы


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

  • Не назначать на себя сразу много задач. Человек работает в один поток, а частые переключения контекста снижают эффективность работы. Заблокированные задачи зависают и могут превратиться в срочные.
  • Следует регулярно обновлять задачи, пушить изменения. Это повышает шансы своевременно получить обратную связь и предотвратить ситуацию, когда что-то понято неправильно и нужно переделывать.
  • Задача, не являющаяся быстрой правкой (hotfix), должна выполняться в отдельной ветке с привязанным merge request. Так же следует избегать огромных DIFFов, декомпозируя крупные задачи.

Общее пространство общения и синхронизация


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

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

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

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

Документирование повторяющихся действий и процессов


В каждой работе есть наборы повторяющихся действий. Например, в разработке сервисов: создание нового сервиса, написание обработчиков HTTP запросов, кода работы с БД, интеграционных тестов, докерфайлов, CI/CD кода и т.п. У вас может и не быть четкой документации по каждому действию, но вы можете в целом иметь устоявшиеся практики и применяемые инструменты. Осознание и улучшение этих повторяющихся действий повысит скорость и качество разработки. Еще осознанные процессы позволяют нанимать и дообучать начинающих разработчиков. Это экономит ресурсы компании, позволяет разгружать опытных сотрудников от рутины, дает возможность устраиваться и развиваться начинающим разработчикам.

Механизмы обратной связи


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

Метрики


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

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

Например, когда я решился на применение кодогенераторов для реализации API серверов и клиентов по спецификациям, резко выросла производительность труда: рутинные операции автоматизировались, а человеческие ресурсы (тогда еще только свои собственные) направлялись уже на проектирование и реализацию бизнес-логики. Генератор кода меньше ошибается и более строго соблюдает спецификацию. А, как вы понимаете, в сервис ориентированной архитектуре и не только существенной частью работы является написание различных CRUDов и реализация межсервисного взаимодействия.

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

Заключение


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

Принципы не противоречат применению каких-то других практик и методологий. Наверняка по ходу текста вы заметили какие-то упоминания методик из канбана, скрама, gitlab-flow и конечно же programming-motherfucker. Главное осознавать, что и зачем вы хотите применять и возможно от чего-то нужно наоборот отказываться.

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

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