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

Какие задачи стоит отдавать на аутсорс

Некоторые проекты проще сделать внутри компании. Например:

❌ Нужно постоянно выполнять простую задачу: вручную тестировать интерфейс или верстать однотипные страницы. Будет дешевле на полный день нанять джуниор-разработчика, а не переплачивать компании на аутсорсе. 

❌ В R&D-проектах. Для них сложно составить смету: непонятно, сколько займёт исследование. Аутсорс в этом случае может выйти слишком дорогим.

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

На аутсорс стоит отдавать понятные по объёму конечные задачи:

👉🏻 Если нужно разработать сайт или приложение. Такой проект просто оценить, а на выходе проверить результат. Это подходящие условия для аутсорса.

👉🏻  Если в компании не хватает компетенций в какой-то технологии. Например, постоянно писали на Python, но потребовалось написать один модуль на С. Нанимать для этого человека в команду нерентабельно, а вот отдать внешнему исполнителю — вполне.

👉🏻 Когда нужно потушить пожар: что-то сломалось, нужна экстренная реакция, нет времени набирать людей в команду.  

Как выбрать исполнителя

Работа с аутсорсом начинается с выбора команды. Их много, у них разные УТП, как выбрать подходящую?

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

Во-вторых, оцените само предложение. Вот что должно насторожить:

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

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

И, наоборот, хорошо, если:

👉🏻 Исполнитель задаёт много вопросов по задаче. Это показывает стремление сделать полезный продукт, а не просто написать код по ТЗ.

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

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

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

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

Путь к провалу: выбрать самого дешёвого исполнителя.

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

Как передать задачу исполнителю

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

👉🏻 Обсудите вместе с аутсорсером, не пропустили ли вы важных элементов в задании? Исчерпывающая ли функциональность? Будет ли описанное вообще работать? Не забывайте, что исполнитель не умеет читать мысли и обычно работает строго по заданию: если в нём чего-то нет, то этого не будет и в конечном продукте.

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

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

Путь к провалу: в общих чертах описать свою задумку.

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

Как взаимодействовать с командой

Бывает так: аутсорсер обещает, что проектом будут заниматься два бэкендера и два фронтендера. Но потом по коммитам видно, что всё разрабатывал один человек, да и то — не фултайм.

Это возникает из-за особенности бизнес-модели аутсорса. Студия или агентство разработки продаёт определённый объём работ в месяц и в попытке забить все доступные слоты может не рассчитать нагрузку. Тогда исполнителей придётся делить между проектами.

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

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

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

Отличный план: постоянно оставаться на связи, изучать промежуточные результаты, отвечать на вопросы.

Как работать над сложными проектами

Часто проект состоит из нескольких частей: дизайн, фронт и бэк, тестирование, аналитика. 

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

👉🏻 В этом случае помогает работа с метакомандами. Это когда вы подбираете нескольких подходящих исполнителей для разных частей задачи. Например, дизайн-агентство для оформления прототипов, одну студию — для фронтенд-разработки, другую — для бэкенда и тестирования.

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

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

Подведём итог: как использовать ИТ-аутсорсинг

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

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

👉🏻 Не надейтесь, что команда на аутсорсе прочитает ваши мысли. Составьте сами или вместе с исполнителем концептуальный проект, дизайн и функциональную спецификацию.

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

👉🏻 Если проект большой, не отдавайте всё одному исполнителю. Работайте с мета-командой.