Перейти к содержимому
Bitmason
Инженерия

Выделенная команда, усиление команды или управляемая разработка

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

4 мин чтения

Когда компании нужно больше инженерных мощностей, чем она успевает нанять, она обычно рассматривает три модели: усиление команды (staff augmentation), выделенную команду или управляемую разработку (managed delivery). Подрядчики используют эти названия вольно, и один и тот же договор может описывать совсем разное устройство повседневной работы. Названия важны меньше, чем два вопроса: кто направляет работу и кто отвечает за результат.

Ответьте на них, и остальное станет ясно: что должны предоставить вы, что должен предоставить партнёр и как такое сотрудничество, скорее всего, пойдёт не так.

Кто направляет работу, кто отвечает за результат

Расположим три модели на одной линии.

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

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

Усиление команды

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

Это хорошо работает, когда:

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

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

Выделенная команда

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

Это хорошо работает, когда:

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

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

Управляемая разработка

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

Это хорошо работает, когда:

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

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

Как ломается каждая модель

У каждой модели есть типичный способ пойти не так, и знание о нём заранее служит лучшей защитой.

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

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

Как выбрать

Начните с того, что у вас уже есть, а не с того, что хотите купить.

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

Затем проверьте выбор несколькими практическими вопросами. Кто с вашей стороны будет каждую неделю уделять время партнёру и сколько? Как вы каждые две недели будете понимать, идёт ли работа по плану? Что будет с кодом и знаниями, если сотрудничество закончится? Если для выбранной модели вы не можете ответить на эти вопросы, выберите ту, для которой можете.

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

С чего начать

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

Мы предлагаем усиление команды и выделенные команды, и в обоих случаях работа идёт под вашим руководством.

Вопросы по статье

Можно ли начать с усиления команды, а потом перейти к выделенной команде?

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

Кому должны принадлежать код и аккаунты в каждой модели?

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

Как сохранить знания внутри компании, если работает внешняя команда?

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

  • ИИ-⁠инженерия

    ИИ-агенты в команде разработки: где они помогают, а где решают люди

    Илья Исматов7 мин чтения

  • Продукт

    Как проверить партнёра по разработке ПО

    Илья Исматов5 мин чтения

Что вы создаёте?

Расскажите о своём проекте. Мы свяжемся с вами, чтобы обсудить объём работ, сроки и первые шаги.

Начать