Рубрика развивается при поддержке

Какой аутсорс нужен продуктовой разработке на разных фазах зрелости продукта

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

В закладки
Илья Летунов с коллегами на регулярке MCS

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

MVP: аутсорс отдельных проектов или модулей

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

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

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

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

Лайфхаки:

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

Формирование бизнес-модели: интеграция аутсорс-команды в проект, аутстаффинг

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

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

Этот этап, когда команда аутсорсеров интегрировалась в проект, занял примерно год.

Лайфхаки:

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

Масштабирование продукта: рутина аутсорсерам, ключевые задачи — сотрудникам

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

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

По этой схеме мы проработали еще полгода-год.

Продуктовая зрелость: аутсорс для локальных задач

Наша команда выросла до 100 человек, проект получил признание на рынке, у аутсорса появились две новые функции.

Поднайм на время поиска новых сотрудников

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

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

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

Лайфхаки:

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

Найм аутсорсеров с эксклюзивной экспертизой

Сейчас проект вырос, каждый новый модуль или уникальная функция в продукте может разрабатываться командой из 4-5 человек. И на ключевые экспертизы мы находим аутсорсеров не по функциям, например: DevOps, Kubernetes, frontend, а по наличию эксклюзивной экспертизы в узких областях, интересных нам, например, построение кастомных SDN-решений. Чтобы собрать такую команду в штат, пришлось бы потратить много сил на поиск и найм.

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

Аутсорс — ресурс, который нужно использовать эффективно

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

Ну а как с аутсорсом у вас?

Вы аутсорсите продуктовую разработку?​
Да, отдаём отдельные задачи, проекты, модули
Аутсорсим всю разработку
Мы берём аутстафферов в команду
Мы привлекаем внешних экспертов для консалтинга
Мы не аутсорсим разработку
Другое (пишите в комментариях)
Показать результаты
Переголосовать
Проголосовать

Статья — по мотивам моего выступления на бизнес-завтраке «Масштабирование разработки за счет аутсорса» (тут видео).

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Илья Летунов", "author_type": "self", "tags": [], "comments": 0, "likes": 16, "favorites": 12, "is_advertisement": false, "subsite_label": "dev", "id": 82874, "is_wide": true, "is_ugc": true, "date": "Fri, 13 Sep 2019 15:50:45 +0300", "is_special": false }
Облачная платформа
Основа для цифровизации бизнеса
0
{ "id": 82874, "author_id": 127919, "diff_limit": 1000, "urls": {"diff":"\/comments\/82874\/get","add":"\/comments\/82874\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/82874"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 235819, "last_count_and_date": null }
Комментариев нет
Популярные
По порядку

Комментарий удален

{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ] { "page_type": "default" }