Распределенная разработка - опыт JivoSite

Команда разработки JivoSite всегда была и остается распределенной, причем мы с Тимуром Валишевым создавали ее в 2012 году, не имея за плечами собственного опыта удаленной работы. Сейчас у нас больше 50 разработчиков, и я уверен, что наши сотрудники довольны преимуществами, которые им дает работа вне офиса.

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

Подбор сотрудников

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

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

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

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

Включение в работу

Процесс включения в удалённую работу примерно такой же, как и в офисе. Нужно подписать NDA, получить доступы в почту/Slack/трекер/cvs, почитать документацию, настроить окружение и погрузиться в проект. Пройдя этот процесс вместе с кандидатами не менее 20 раз, я могу дать следующие рекомендации:

  1. Обучайте кандидатов гигиене обращения с паролями и SSH-ключами. Кажется смешным, но большая часть кандидатов не пользуются менеджерами паролей, не защищают ssh-ключи, и вообще слабо представляют связанные с этим риски. Это всегда легко исправить: пропишите политику хранения ключей и паролей и ознакомьте с ней сотрудников.
  2. Автоматизируйте запуск отладочного окружения. На старте непросто выделить на это время, но я очень сожалею, что мы не стали делать это намного раньше.

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

Сейчас у новичка в JivoSite полный запуск отладочного окружения занимает 15 минут: заполняется несколько полей на специальном сайте и, после небольшого ожидания, вы сможете зайти браузером и терминалом в свою личную облачную копию JivoSite. У нас это реализовано на связке Amazon EC2 + Ansible.

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

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

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

Организация работы

Утренние планерки

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

Утренние планерки мы ввели не сразу, и, оглядываясь назад, я понимаю, что мы много упустили. Тимлиды тратили гораздо больше времени на то, чтобы собрать результаты вчерашней работы и координировать команду. В Scrum/Agile для этих целей используются утренние стендапы. Но если вы работаете распределенно и не используйте эти методологии – тем не менее, проводите планерки.

Качество видеосвязи

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

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

В случае возникновения у сотрудника проблемы с каналом мы просим сменить тариф/провайдера, подключиться к роутеру через провод, передвинуть wi-fi поближе, выключать торренты и так далее. Проблему с оборудованием мы решили, купив всем USB-гарнитуры. Исходя из нашего опыта могу отметить, что bluetooth и обычные гарнитуры работают стабильно плохо у всех. О громкой связи речь, как правило, не идет - недопустимо отвлекать коллег окружающими вас посторонними звуками.

Касаемо сервиса связи, в погоне за качеством мы перешли с Google Hangouts на Zoom. Здесь можно выбрать более подходящее по затратам. Но, самое главное - если вам кажется, что связь не идеальна – ищите дальше.

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

Съезды

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

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

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

  • Следует отправить человека для проверки качества интернета (если он вам необходим). На словах интернет всегда отличный, на деле – почти всегда оставляет желать лучшего. Мы сейчас закупили свое походное сетевое оборудование;

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

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

Выводы по организации удаленной работы отдела разработки

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

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

  3. Организация удаленной разработки требует использование специального программного обеспечения и жесткого регламента в плане безопасности.

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

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

2727
35 комментариев

"Живосайт" - одна из лучших компаний, с которыми я сотрудничал. Отличный коллектив и руководство, которое всегда держит слово.

5
Ответить

Очень хорошая статья.
Благодарю, что поделились.
| Многим кажется, что программировать и тестировать софт можно и на кухне, и с
| детьми в соседней комнате, но, это – самообман и заблуждение. Эффективно
| работать можно только в спокойной обстановке.

+1

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

| NDA
NDA на территории РФ - не имеет юридической силы.
Всегда привожу пример.
Компания конкурент переманивает одного из сотрудников и тот рассказывает
все бизнес процессы, что позволяет сэкономить от 70 до 90% на разработку аналогичного решения.
Вы не можете ничего доказать, Вы не можете никак юридически придраться.
Это сплошь и рядом и не только в России.

P.S.:
Лично мое отношение к Вашему сервису негативное: много причин...
Вы занимаетесь демпингом цен и как итог не можете заработать нормальных денег, чтобы всех сотрудников перевести в офис.
Пользуюсь LiveTex.

1
Ответить

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

6
Ответить

Лично меня дико раздражает выскакивающий постоянно чат с предложением связаться с представителем компании. Никогда им не пользуюсь. Более того, если компания не в состоянии принять мой звонок и обработать его как надо, то я с ними и работать не буду, потому как, если люди не умеют общаться с клиентом напрямую, то и "кинуть" клиента у них проблем не возникнет. Клиент превращается в нечто неодушевленное, в соцсеть, где написать можно что хочешь. А клиента надо ЛЮБИТЬ! И говорить с ним, тогда клиент будет тебе благодарен и купит...
А если у клиента нет денег на звонок по телефону или он (клиент) экономит 3 копейки на звонок в офис, то такого клиента нафиг в топку, пустая трата времени и ресурсов компании на общение с ним.
ИМХО.

2
Ответить

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

2
Ответить

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

2
Ответить

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

2
Ответить