Чем хорош аутсорс: инструкция по работе с удалённой командой разработки

Директор по развитию компании MediaSoft Mobile Владислав Крайнов и его коллега Сергей Полуэктов рассказали о том, как действовать клиенту при разработке digital-проекта с аутсорс-командой.

В закладки

Аутсорс-продакшн — это компании из сферы digital, которые сосредоточились на чистом производстве, отказавшись от управления продуктом, а чаще всего и от функций проектного управления. Такие компании либо объединяют в себе ряд направлений (программную разработку, проектирование, дизайн, вёрстку), либо специализируются на одном виде работ, например, на программировании.

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

Ситуация, сложившаяся на кадровом рынке ИТ, сделала услуги аутсорс-разработчиков исключительно востребованными.

Аутсорс как средство от кадрового дефицита

С каждым годом нехватка кадров в российской ИТ-индустрии усиливается. По данным HeadHunter, в первом квартале 2017 года количество вакансий ИКТ-профиля в Москве увеличилось на 23%. Кадровый рост при этом сильно отстаёт: по оценке Минкомсвязи, за 2015-2016 годы количество ИТ-специалистов в России выросло всего на 3,6%.

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

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

Именно по этой причине некоторые компании по аутсорс-разработке за последние несколько лет выросли в два-три раза. Однако сотрудничество с такими компаниями содержит определённые риски и предъявляет требования в том числе и к самому заказчику.

Как бороться с рисками

За разработкой «на стороне» чаще всего обращаются клиенты двух типов:

  • Компании без опыта создания digital-проектов, а также стартапы, где digital-продукт является основным инструментом бизнеса (интернет-магазин, мобильное приложение, система и так далее).
  • Развитые компании с опытом в digital и потребностью масштабировать свои проекты.

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

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

У второго типа клиентов свои причины выбирать аутсорс. В крупных компаниях поиск персонала связан с большими накладными расходами. За каждого найденного специалиста хантинговые агентства требуют вознаграждения в размере одной-трёх его месячных зарплат, которые могут доходить до 150-200 тысяч рублей в Москве.

Ещё одна причина заключается в том, что публичным компаниям иногда бывает невыгодно увеличивать штат, так как это снижает показатель выработки (выручка, делённая на количество сотрудников).

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

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

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

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

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

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

Два рычага власти над ситуацией

Для заказчика главное средство от риска потери контроля над проектом заключается в том, чтобы всегда оставаться полноценным product owner — то есть отлично понимать бизнес-логику своего продукта и то, как она технически реализована.

Для этого на стороне клиента должны быть два человека — руководитель ИТ-направления (или Head of digital) и бизнес-директор проекта. Первый будет управлять сторонними и внутренними ИТ-командами, координировать их работу и обеспечивать контроль качества кода, второй — отвечать за бизнес-стратегию продукта.

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

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

У нас был кейс, когда клиент с течением времени начал плавно отключать от проекта наших программистов (по одному в месяц) и вводить на их место своих. Это абсолютно нормальный процесс, который понимают как профессиональные аутсорсеры, так и product owner’ы.

Критерии оценки

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

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

Что не является показателем качества работы аутсорс-программиста: общее качество и эффективность продукта. Если сайт падает, интернет-магазин не продаёт, а мобильное приложение быстро удаляют после установки, ответственность за это лежит на самом клиенте, который является product owner'ом.

Мы со своей стороны можем сформулировать три основных совета по выбору и вводу подрядчика в проект:

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

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

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

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

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

Постоянство — признак мастерства

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

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

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

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

Комментарии участников рынка

Том Демарко в своем «Романе об управлении проектами» пишет довольно простую истину: для истинного руководителя проектов нет разницы, каким проектом управлять. Главное — декомпозировать проект до понятных задач с прозрачными результатами и сознавать риски на каждом этапе.

Сергей и Влад пишут правильную вещь — тем, кто сейчас заказывает аутсорс-разработку, жизненно необходим ИТ-эксперт инхаус. Без него будет русская рулетка под названием «На какую команду попадёшь, так тебе и надо».

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

Александр Макарчук

генеральный директор и совладелец в qb.digital

Я бы уточнил по поводу стартапов. Им не то чтобы «однозначно невыгодно создавать собственный отдел разработки». Все подобные проекты, которые сумели привлечь деньги, получили их от инвесторов не только за идею, но и за уже сформированную команду.

Это значит, что для стартапов вопрос поиска крутого аутсорсера стоит особенно остро — они должны найти такую компанию, которая буквально станет их продолжением. Успешное «встраивание» аутсорс-команды как раз должно обеспечиваться ИТ-руководителем и бизнес-директором продукта, как и пишут Влад с Сергеем.

Евгений Фонталин

управляющий партнёр «БюроБюро»

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

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

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

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

Павел Красавцев

генеральный директор продакшн-компании iBrush

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

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

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

Максим Малышев

исполнительный директор Notamedia

Материал дополнен редакцией

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

Написать
{ "author_name": "Владислав Крайнов", "author_type": "self", "tags": [], "comments": 9, "likes": 62, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 32874, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15395' + '50799') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 32874, "author_id": 70864, "diff_limit": 1000, "urls": {"diff":"\/comments\/32874\/get","add":"\/comments\/32874\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/32874"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

9 комментариев 9 комм.

Популярные

По порядку

Написать комментарий...
3

Что делать проектам, у которых внутри нет продуктолога и ИТ-управляющего?

Ответить
3

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

Ответить
0

Тех документация на проект, спасает на этот случай?

Ответить
0

Как правило не сильно. Все знают, что нет идеального ТЗ.

Ответить
–7

Сколько можно тиражировать этот бред про нехватку программистов?

Ответить
5

Столько, сколько потребуется для того, чтобы быть услышанными.

Ответить
–3

Кем услышанными? Думаете, эту чушь еще кто-то не слышал?

Ответить

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

0

У вас грустный опыт? Обижали и недоплачивали? Соболезную. Но не везде так.

Ответить

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

1

Тогда все еще хуже(

Ответить

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

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

0

Прямой эфир

[ { "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": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "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, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления