• Обсудить проект
  • Обсудить проект

IT аутсорсинг – что это такое и нужен ли он вам

Изображение к статье

IT-аутсорсинг – это тип разработки, когда заказчик нанимает исполнителя для создания продукта или оказания услуг по поддержке, обслуживанию и модернизации ПО компании. Весь процесс, от планирования до тестирования, в таком случае ложится на подрядчика.

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

Разработку веб-сервиса или мобильного приложения

Разработка веб-сервисов и мобильных приложений на аутсорсинге – это процесс, при котором компания нанимает стороннюю команду разработчиков для создания программного продукта. Это один из самых распространенных вариантов IT-аутсорсинга.

Дизайн

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

Дизайн на аутсорсинг можно отдать как для разработки с «нуля», так и для доработки или обновления уже имеющихся продуктов.

Фронтенд-разработку

Аутсорсинг фронтенд-разработки может включать в себя разработку веб- или мобильного интерфейса с использованием HTML, CSS, JavaScript и других технологий (выбор конкретного стека определяется задачами и техническими требованиями к проекту) .

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

Бэкенд-разработку

Бэкенд-аутсорсинг – поручение разработки бэкенда (серверной части веб-приложения или сайта) сторонней компании. Также сюда относится разработка баз данных, логики бизнес-приложений, серверных API, обеспечение безопасности.

Поддержку и развитие проекта

Поддержка проекта обычно включает в себя такие задачи, как:

  • исправление ошибок;
  • обновление и установка новых версий ПО;
  • анализ и устранение проблем с безопасностью.

Развитие проекта включает в себя задачи по:

  • расширению функциональности;
  • добавлению новых модулей;
  • улучшению производительности;
  • оптимизации кода.

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

Аутсорсинг DevOps

DevOps – это методология и деятельность по автоматизации технологических процессов сборки, настройки и развёртывания ПО. Главный исполнитель здесь – DevOps-инженер, который должен понимать как программистов, так и тестировщиков, сисадминов, дизайнеров и менеджеров, а также уметь объединить их усилия и оптимизировать рабочие процессы. Процессы DevOps часто отдают на аутсорс потому, что для компаний, не специализирующихся на разработке IT-продуктов, очень затруднительно содержать штат DevOps-инженеров и поддерживать их компетенции в актуальном состоянии.

Плюсы и минусы аутсорсинга

Плюсы аутсорсинга

Техническая экспертиза.

Аутсорс специалисты постоянно обучаются и часто уже имеют релевантный вашему проекту опыт, благодаря чему могут быстро советовать проверенные рабочие решения. Это позволяет эффективнее решать задачи на проекте и сократить time-to-market.

Качество.

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

Сроки.

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

Концентрация заказчика на профильных бизнес-процессах.

Делегирование разработки на аутсорс позволяет компании сконцентрироваться на бизнесе и не отвлекаться на разработку.

Гайд “Как организовать разработку IT продукта с привлечением внешней команды”
Получить гайд

Минусы аутсорсинга

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

Потеря конфиденциальной информации.

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

Риск выбрать некомпетентного подрядчика.

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

Зависимость от подрядчика.

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

Какие еще факторы нужно учесть при выборе аутсорсинга

Стоимость.

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

Знание предметной области.

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

Сколько стоит аутсорсинг разработки ПО

Итоговая цена зависит не только от сложности проекта и компетенции подрядчика, но и от модели оплаты и почасовых ставок.

Стоимость аутсорсинга по модели “Fixed Price”

В этом случае от заказчика требуется только техническое задание – всем остальным занимается подрядчик. Одно из главных достоинств такого варианта – предсказуемая стоимость и определенные сроки. Основной недостаток – это потеря гибкости, так как все изменения и отступления от ТЗ придется оплачивать дополнительно. Обычно такой формат аутсорсинга используют для мелких проектов со строго ограниченным функционалом, в который до момента релиза точно не будут вноситься изменения и дополнения.

Стоимость аутсорсинга в случае с выделенной командой разработки

При таком варианте сотрудничества вы оплачиваете время команды разработчиков, которое они потратили на реализацию проекта (формат оплаты называется “Time&Material”). Весь проект в процессе работы разбивается на задачи, каждую из которых команда отдельно оценивает и выполняет. Например, группа оценила 1 задачу в 40 человеко-часов, вы умножаете 40 на часовой рейт подрядчика, получаете стоимость, и если согласны – команда приступает к выполнению задачи. После выполнения каждой такой задачи вам предоставляется видимый результат.

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

Документальное оформление и сопровождение

Документы, которые нужно подписать с аутсорсинговой компанией:

  1. Соглашение о конфиденциальности (NDA). Мы рекомендуем подписывать его еще до передачи ТЗ на оценку.
  2. Договор на оказание услуг. Он должен содержать полное описание, сроки, стоимость и порядок оплаты. Также там нужно прописать гарантии и ответственность сторон за невыполнение обязательств.
  3. Приложения
    • БТ (бизнес-требования) — это то, что хочет получить бизнес от продукта
    • ПТ (пользовательские требования) — какие цели пользователей должна позволять достичь система
    • ФТ (функциональные требования) — описание функций, которые должны работать в продукте для достижения целей пользователя
    • НФТ (нефункциональные требования) — это описание требований, связанных с особенностями интерфейса, техническими характеристиками, возможно какими-то ограничениями, которые нужно учесть при создании продукта.
    • ТЗ (техническое задание). О том, как его составить, мы писали здесь.
  4. Акт приема-передачи работ (где указаны все выполненные работы и их соответствие требованиям).

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

Что нужно требовать у подрядчика

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

Работа по NDA

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

Исполнителю будет крайне не выгодно разглашать конфиденциальные сведения, так как он рискует потерять не только репутацию, но и деньги.

Работа в правильной инфраструктуре

В зависимости от потребностей, требований к инфраструктуре может быть больше или меньше.

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

Также стоит обратить внимание на то, как разработчики разделяют среду разработки. Соблюдается ли у них правильный порядок, например: dev-stage-prod. На dev-1, dev-2 и так далее — работают разработчики, это их личные площадки; stage — обычно используется для тестирования тестировщиком и/или клиентом. Бывает, что stage расширяют на test (для подрядчика) и preprod/uat — где бизнес финально тестирует фичу. Prod – боевой сервер, где проект работает для реальных пользователей.

Иногда, и только на очень маленьких проектах, допустимо вести разработку в одном dev-приложении. В этом случае тестовое приложение разворачивается не всегда и разработка ведется в режиме dev-prod.

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

Если работа заказчика зависит от непрерывного функционирования систем, то он может требовать от аутсорсинговой фирмы использование инфраструктуры, которая обеспечивает надежную и доступную работу систем, включая резервное копирование, мониторинг и быстрое восстановление после сбоев. В тех же целях часто прописывается SLA (Service Level Agreement) – это дополнительное соглашение между подрядчиком и клиентов, которое позволяет четко определить для подрядчика согласованный уровень качества предоставляемых услуг по поддержке. SLA обычно включает в себя описание ожидаемого уровня доступности, связи, времени реакции на запросы и время и регламенты восстановления после сбоев.

Регулярные релизы (доставка ценности)

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

Регулярные встречи и отчетность

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

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

Документирование кода и функционала

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

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

Что выбрать: аутсорсинг или аутстаффинг?

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

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

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

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

Резюмируем: когда стоит выбрать IT-аутсорсинг

Выбирать или нет IT-аутсорсинг решать вам. Мы же собрали случаи, в которых он может помочь.

Итак, аутсорсингом разработки могут пользоваться:

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

Поделиться: