Если раньше было только два пути: разработка собственными силами или привлечение внешнего исполнителя, то сейчас ситуация усложнилась. На стыке классических инсорсинга и аутсорсинга возникли гибридные модели сотрудничества, или «косорсинг». Разберемся что это такое и чем отличается от привычных подходов.
Итак, вам нужна разработка, и вы решаете обратиться в сервисную компанию. Причин может быть несколько: нет своего IT-отдела, сотрудники медленно поставляют функционал, либо вы недовольны качеством.
Однако окончательное решение по подбору подрядчика откладывается из-за неуверенности в выборе модели взаимодействия и опасений потери контроля над процессом разработки. Такие вопросы вполне обоснованы, когда на карту поставлены финансовые показатели и общее благополучие бизнеса.
В этой статье я поделюсь рекомендациями о том, как снизить возможные риски IT-аутсорсинга, опираясь на опыт компании Work Solutions как поставщика цифровых услуг. Обзор популярных моделей сотрудничества и форматов вознаграждения поможет вам разработать стратегию работы с внешним исполнителем и взвесить все варианты.
Классический аутсорсинг или разработка под ключ
(Full process outsourcing, managed projects)
Как это работает: партнер берет на себя весь процесс разработки с полной ответственностью за организацию, управление, качество результатов и сопутствующие риски от бизнес-анализа до поддержки решения.
Когда выбирать: если у вас нет никакого опыта в разработке, и при этом нет цели накопить технические компетенции внутри.
Преимущества:
- Полное делегирование: такие проекты, как правило, ведутся по каскадной модели, и за всеми этапами следит менеджер. Ваше активное участие потребуется при сборе требований перед стартом работ и при приемке каждого этапа;
- Минимум рисков: решение производственных рисков находится на стороне поставщика. Если исполнитель что-то не учел или где-то ошибся с оценкой — это его головная боль. SLA может предусматривать штраф за нарушение сроков сдачи.
Недостатки:
- Долгий старт работ: прежде чем приступить к разработке, исполнитель постарается учесть все детали, чтобы сократить риски. Для этого потребуется бизнес-аналитика, составление технического задания, утверждение финальной сметы и т.д.
- Недостаточный контроль: исполнитель сам назначает состав программистов, а также может не отчитываться о решениях, которые компания принимает по ходу разработки. Все общение ведется опосредованно — через менеджера, а значит проконтролировать внутреннее качество продукта не получится;
- Отсутствие гибкости: исполнитель не обрадуется новым вводным, так как именно фиксированные требования позволяют гарантировать сроки выполнения работ;
- Зависимость от исполнителя: если исполнитель что-то не учел и столкнулся с трудностями, то вы рискуете либо переплатить, либо получать постоянно сдвигаемые сроки. А смена подрядчика посреди пути приведет к большим издержкам.
Как выстраивать сотрудничество
Аутсорсинг под ключ не защитит вас от всех рисков, поэтому выбирать эту модель стоит с осторожностью. На что обратить внимание:
- Во-первых, это самая дорогая модель взаимодействия для заказчика услуги, что легко объясняется — исполнитель закладывает в смету все потенциальные риски. Сработавшие риски сказываются на внутреннем качестве продукта, о котором вы узнаете только после запуска;
- Эта модель кажется привлекательной в условиях, когда бюджет на разработку ограничен, и вся стратегия аутсорсинга услуги заключается в экономии затрат. Но в действительности такие проекты обходятся дороже.
Парадоксально, но такая стратегия устранения финансовых рисков приводит к еще большим рискам, так как на выходе можно получить ненужный продукт. Или из-за низкого качества переплатить при поддержке системы. Поэтому такой формат работает только на коротких дистанциях.
Косорсинг или аутстаффинг: каким он бывает
Спрос на такие партнерские отношения продолжает расти. Когда клиент с помощью аутсорсинга не полностью заменяет внутренних сотрудников, а дополняет их теми специалистами, которых не хватает для достижения конкретных целей. Рассмотрим возможные форматы взаимодействия.
Выделенная команда (Dedicated team)
Как это работает: клиент получает в свое распоряжение команду IT-специалистов, подобранную с учетом требований и специфики задачи на долгосрочной основе. Выделенная команда может заменить весь штат разработчиков, а может работать бок-о-бок с внутренним отделом, при условии четкого разграничения зон ответственности.
Управление остается на стороне поставщика. Контактным лицом может быть не только PM, но и, например, тимлид, в зависимости от того, насколько технически подготовлен клиент.
Когда подходит: вы понимаете жизненный цикл разработки и знаете, как выстраивать процессы для эффективной работы, но при этом у вас нет собственных ресурсов на реализацию. Например, штатные программисты заняты серверной частью, а вам нужен редизайн — тогда вы привлекаете выделенную команду фронтендеров. В то время, как ваши сотрудники могут не отвлекаться от стратегических приоритетов.
Преимущества:
- Масштабируемость: команду предварительно собирает исполнитель, и ее структура дополнительно корректируется в зависимости от развития проекта;
- Частичное делегирование: нужны минимальные усилия на управление, так как администрирование в большей мере лежит на поставщике;
- Высокая степень контроля: ни одно решение не принимается без вашего ведома, вы непосредственно влияете на результаты и качество.
Недостатки:
- Налаживание процессов: клиент должен назначить ответственных лиц, зафиксировать их обязанности и выделять время на взаимодействие с внешними специалистами;
- Передача знаний: клиент должен позаботиться о том, чтобы на проекте велась документация, чтобы снизить зависимость от конкретного поставщика;
- Оплата простоев: клиент должен обеспечивать полную загрузку.
Как наладить сотрудничество: от вас потребуется активный контроль, поэтому просите прозрачную отчетность, заранее согласовав формат. Это могут быть ежедневные и еженедельные отчеты по статусу работ разной степени детализации. Помните, вы как покупатель хотите, чтобы программисты работали только над вашим проектом. В идеале выделенная команда должна располагаться в одном офисе.
Расширение персонала (Staff augmentation)
Как это работает: партнер предоставляет отдельных специалистов, чтобы вы самостоятельно укомплектовали команду. Предоставленные люди интегрируется с вашими сотрудниками или специалистами от другого поставщика.
Когда выбирать: в случае налаженного, но медленного процесса разработки, или нехватки определенной экспертизы. Когда пропускная способность инхаус-команды не дает возможности достигнуть необходимого темпа, и нужны несколько человек.
Преимущества:
- Полный контроль: вы владеете своим проектом от начала до конца и участвуете в принятии каждого решения;
- Высокая гибкость: легкое масштабирование для адаптации к меняющимся потребностям бизнеса. Пригодность как для долгосрочного, так и для краткосрочного взаимодействия, например, чтобы решить одну конкретную проблему.
Недостатки:
- Ответственность за риски: проектные риски ложатся на заказчика. Клиент подбирает технологии и утверждает план реализации, привлеченный специалист только следует его указаниям;
- Затраты на привлечение: проверка знаний и навыков привлекаемого персонала отнимает время. У всех поставщиков разное понимание градации специалистов, поэтому в ваших интересах проводить технические собеседования перед подписанием договора;
- Усилия на управление: управление внештатными профессионалами ложится на заказчика, поэтому при отборе специалистов обращайте внимания на soft skills, чтобы избежать трудностей в общении.
Как наладить сотрудничество: Ищите прямого поставщика, который заботится о качестве своих услуг. Часто на рынке практикуют white-label модель, когда разработчиков перепродают под видом своих сотрудников. В итоге, когда несколько посредников заложили свою маржинальную прибыль в ставку разработчика, вы не только платите больше, но еще и не получаете нужные результаты.
Ответственный поставщик будет готов разделить с вами часть рисков на первых этапах, когда происходит онбординг: разворот системы, слияние с вашей средой разработки, мессенджерами и трекерами.
На первый взгляд, привлечение выделенных команд или расширение персонала кажутся довольно похожими моделями. Разные поставщики могут даже преподносить эти понятия как тождественные и взаимозаменяемые, называя все просто аутстаффингом.
На самом деле, это не так. В случае с выделенной командой поставщик несет больше ответственности, а в случае расширения — заказчик.
А еще, аутсорсинг и аутстаффинг — это в первую очередь про рентабельность, и здесь возможны варианты формирования цены, поэтому мы рассмотрим форматы вознаграждений.
Форматы вознаграждений
На рынке ит-разработки принято несколько форматов вознаграждений. Сейчас в предпринимательстве есть тренд на инновации в бизнес-моделях. Получать оплату прямой разовой транзакцией теперь не модно. В B2C инновации коснулись уже многих сфер, где подписки и микроплатежи стали нормой.
При этом, среди сервисных компаний в B2B все остается консервативно, и неудивительно, что именно поставщики цифровых услуг активно пытаются это изменить. Дело здесь не в моде, а в особенностях цифровой разработки. Выделим четыре распространенных способа выставления счетов.
Fixed-Price
Вы платите заранее определенную цену на основе оценки трудозатрат, которую исполнитель предоставил перед заключением договора. Если задача простая, небольшая, есть четкое видение результата, то модель подойдет. Не забываем, что основной риск — получить низкое внутреннее качество, так как это единственный нефиксированный параметр.
FFF: Fixed Price, Fixed Time, Flex Scope
Часто бизнесу нужно прописать в договоре срок и бюджет, но нет жестких требований к объему. В таком случае, ради сохранения общего качества продукта можно изменять объем работ. Это позволяет исключать из релиза наименее приоритетные части функционала, чтобы уложиться в сроки и бюджет без ущерба качеству кода. На практике такой формат встречается крайне редко.
Time & Materials
Вы платите за выработанные часы. Формат подходит для работы в условиях высокой неопределенности, где объем трудозатрат часто определяется на ходу, а размер команды может меняться на протяжении всего проекта.
Retainer
Поставщик устанавливает бюджет и резервирует определенное количество часов для работы, выполняемой на регулярной основе. То есть, формируется тариф, по которому вы ежемесячно вносите фиксированный платеж. Если в одном месяце времени понадобилось меньше, то невыработанные часы сгорают, а все, что затрачено сверх тарифа — дополнительно выставляется в счет. Ретейнер подходит для выделенных команд, которые занимаются поддержкой, где поток задач есть всегда, но он не стабилен.
Рекомендации по выбору
При аутстаффинге выделенной команды или отдельных специалистов возможны только T&M или retainer. Разница между этими моделями будет незначительной, так как даже при T&M в договоре обязательно будет зафиксирован нижний порог обязательных к выкупу часов.
Так или иначе, модель сотрудничества предполагает, что клиент должен обеспечивать нужный объем работы, в противном случае заказчику придется платить за дни или недели простоев. И даже если по какой-то причине клиент может позволить себе оплату простоев, поставщик не будет этому рад. Так как получит сильно деморализованных программистов с низкой трудовой дисциплиной.
К сожалению, не существует такого проверенного подхода, чтобы привлекать квалифицированных разработчиков на сверхкороткие отрезки работы. При этом, в сети периодически встречаются упоминания такой модели как EaaS (Employee as a Service), однако воспринимать ее серьезно не следует. «Облачный программист» — это пока что фантастика.
Получить программиста на пару часов в теории можно в странах с высококонкурентной средой. Например, некоторые индийские компании занимаются боди-шоппингом. Это когда клиент может прийти и взять в любой момент разработчика «со скамейки запасных» на пару часов. Ни о каком качестве в таком случае говорить, конечно, не приходится.
Разработка — это прежде всего умственная деятельность, при которой нужно одновременно держать в голове предметную область и технические детали. Переключение между контекстами очень затратная для мозга процедура, поэтому в идеале программист должен работать одновременно только над одним проектом.
Прежде чем обращаться за услугой, рассчитайте бюджет, исходя из полной занятости программистов — количество человек Х ставка за час X количество рабочих часов в месяце.
При выборе модели сотрудничества важно учитывать специфику проекта, имеющиеся ресурсы и долгосрочные цели компании. Независимо от формата, привлечение внешнего поставщика дает доступ к опыту и передовым методам разработки без затрат на поиск и найм штатных сотрудников. А грамотный подход позволяет выстраивать win-win отношения.
Как много вы сэкономите? В среднем, найм специалиста займет два месяца, что приведет к задержкам и лишит части прогнозируемой прибыли. А после запуска в эксплуатацию вам не придется увольнять программистов, что позволит избежать юридические хлопоты, связанных с официальным трудоустройством на полную ставку.
Максимальную выгоду от сотрудничества с внешним партнером можно получить, только если вы доверяете исполнителю. Поэтому при выборе поставщика it-услуг я рекомендую:
- сократить количество потенциальных партнеров до 3-5;
- обратить внимание на то, как долго существует компания;
- активно ли демонстрирует свою экспертность во внешнем инфо-поле с помощью кейсов и статей;
- есть ли возможность запросить отзывы предыдущих клиентов и т.д.
Ну а если вы все равно сомневаетесь, то начинайте сотрудничество с малого, честно сообщив о своих сомнениях. Получив первые результаты по классической модели и фиксированной цене, вам проще будет передать следующий этап на разработку уже выделенной команде.