16.06, ООО «ВК»
16.06, ООО «ВК»
16.06, ООО «ВК»

Будущее разработки: как выстроена работа в виртуальных командах

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

967 открытий4К показов
Будущее разработки: как выстроена работа в виртуальных командах

Виртуальные команды — решение для крупных проектов, где важна адаптивность к изменчивым условиям. В них специалисты объединены вокруг общей цели, а состав может меняться в зависимости от задач. Это открывает новые возможности, правда, сложности все равно есть. Какие инструменты использовать для управления такими командами и как справляться с проблемами — разберемся вместе с руководителем группы разработки интерфейсов товарных сценариев в Яндекс Поиске Русланом Муфтиевым.

Как устроена виртуальная команда

Традиционная команда — это структура, в которой все участники подчиняются одному общему руководителю, тимлиду или техническому директору, в зависимости от масштаба проекта. В такую команду входят специалисты разных направлений: backend и frontend-разработчики, мобильные разработчики, дизайнеры, тестировщики и другие. Руководитель контролирует все процессы и, как правило, участвует в вопросах оплаты труда.

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

Различные подходы к организации командной работы

Традиционная команда — это фиксированная структура с прямой веткой управления. Её преимущества:

  • Четкая иерархия. У сотрудников есть прямой руководитель, который ставит задачи и контролирует их выполнение.
  • Быстрое принятие решений. Процесс согласования при такой структуре происходит быстрее.
  • Эффективность. Традиционный тип команды подходит для проектов с жесткими сроками или разработчиками без большого опыта — в ситуациях, где нужно быстрое исполнение без лишних обсуждений.

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

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

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

  • Гибкость и масштабируемость. Легкое перераспределение между проектами без привязки к фиксированным командам.
  • Высокая адаптивность. Сотруднику не нужно привыкать к новым руководителям, так как управление строится вокруг задач, а не жесткой структуры.
  • Коллегиальное принятие решений. Такой подход повышает вовлеченность и качество проработки задач.

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

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

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

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

Управление виртуальными командами требует особого подхода. Стоит учитывать несколько нюансов:

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

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

  • Запланируйте регулярные встречи. Проводите общие собрания и конференции для всей команды, чтобы каждый рассказал о своих задачах, планах и технических решениях. 
  • Используйте трекеры. Системы управления задачами используются в большинстве команд, и виртуальные — не исключение. Подойдут любые удобные вам, например, JIRA или «Яндекс 360». 
  • Визуализируйте проекты. Например, можно использовать диаграмму Ганта для контроля задач по срокам и приоритетам, отслеживания прогресса и динамики в виртуальных командах. Это поможет взглянуть на весь процесс со стороны и оперативно заметить, если какой-то этап отстал от плана. Для точечных задач (визуализация процессов, мозговые штурмы) удобно применять доски в Miro.
  • Создайте каналы для взаимодействия. Подойдет чат в любом мессенджере, но важно использовать его строго по назначению, без лишней информации. В одном из чатов, например, каждый может делиться выполненными задачами в формате скриншотов или ссылок на тестовые стенды.
  • Проводите технические встречи. Организуйте отдельные встречи для обсуждения общих технических вопросов. На них разработчики могут регулярно собирать список неудобных инструментов и актуальных проблем. На встречах команда будет приоритезировать задачи и решать их поэтапно. Такой подход не только помогает устранять мелкие неудобства, но и способствует постоянному улучшению эффективности процессов разработки.

В чем сложность

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

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

Если руководитель не обеспечивает синхронизацию в таких вопросах, могут возникать сложности:

  • Несогласованность интерфейсов. Например, схожая функция будет выглядеть иначе в случае разных сценариев.
  • Конфликты экспериментов. Одна команда запускает A/B-тест, изменяющий продукт, а другая в это же время тестирует свою версию — возникают баги на пересечении экспериментов.
  • Отсутствие централизованного контроля. Команды не ведут общую систему управления задачами, не фиксируют изменения. Из-за этого часть задач может выпадать, а часть, наоборот, дублироваться.
Такие проблемы удается решить за счет регулярных кросс-командных встреч, определения требований и назначения ответственных, которые будут контролировать их соблюдение.

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

Как работать в виртуальных командах

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

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

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

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

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

Виртуальные команды — это классно. А больше инсайтов и советов читайте в нашем тг-канале.

Следите за новыми постами
Следите за новыми постами по любимым темам
967 открытий4К показов