IT аутсорсинг – что это такое и нужен ли он вам
IT-аутсорсинг – это тип разработки, когда заказчик нанимает исполнителя для создания продукта или оказания услуг по поддержке, обслуживанию и модернизации ПО компании. Весь процесс, от планирования до тестирования, в таком случае ложится на подрядчика.
Какие проекты и задачи часто отдают на аутсорс?
Разработку веб-сервиса или мобильного приложения
Разработка веб-сервисов и мобильных приложений на аутсорсинге – это процесс, при котором компания нанимает стороннюю команду разработчиков для создания программного продукта. Это один из самых распространенных вариантов IT-аутсорсинга.
Дизайн
Заказывая дизайн-аутсорсинг, вы получаете команду специалистов, состоящую из менеджера проекта, аналитика и ui/ux-дизайнеров. Дизайнеры на аутсорсе обычно обладают большой насмотренностью и привыкли к разноплановым задачам. Работа идет по тех. заданиям, в которых совместно с заказчиком формируются задачи, рассчитывается стоимость и сроки выполнения.
Дизайн на аутсорсинг можно отдать как для разработки с «нуля», так и для доработки или обновления уже имеющихся продуктов.
Фронтенд-разработку
Аутсорсинг фронтенд-разработки может включать в себя разработку веб- или мобильного интерфейса с использованием HTML, CSS, JavaScript и других технологий (выбор конкретного стека определяется задачами и техническими требованиями к проекту) .
Аутсорсинг фронтенд-разработки нужен в тех случаях, когда, например, у вас есть сайт и вас устраивает его техническая часть (бэкенд), а внешнюю часть – графический интерфейс, кнопки, навигационное меню, тексты, изображения – нужно заменить. Или если компания нуждается в быстрой разработке фронтенда, а требуемых разработчиков в штате не хватает.
Бэкенд-разработку
Бэкенд-аутсорсинг – поручение разработки бэкенда (серверной части веб-приложения или сайта) сторонней компании. Также сюда относится разработка баз данных, логики бизнес-приложений, серверных API, обеспечение безопасности.
Поддержку и развитие проекта
Поддержка проекта обычно включает в себя такие задачи, как:
- исправление ошибок;
- обновление и установка новых версий ПО;
- анализ и устранение проблем с безопасностью.
Развитие проекта включает в себя задачи по:
- расширению функциональности;
- добавлению новых модулей;
- улучшению производительности;
- оптимизации кода.
Главным плюсом выбора аутсорсинга для поддержки и развития проекта является возможность сосредоточиться на основной деятельности. Особенно это касается компаний, чей корневой бизнес не связан с IT, а содержание большого штата разработчиков не входит в число стратегических приоритетов.
Аутсорсинг DevOps
DevOps – это методология и деятельность по автоматизации технологических процессов сборки, настройки и развёртывания ПО. Главный исполнитель здесь – DevOps-инженер, который должен понимать как программистов, так и тестировщиков, сисадминов, дизайнеров и менеджеров, а также уметь объединить их усилия и оптимизировать рабочие процессы. Процессы DevOps часто отдают на аутсорс потому, что для компаний, не специализирующихся на разработке IT-продуктов, очень затруднительно содержать штат DevOps-инженеров и поддерживать их компетенции в актуальном состоянии.
Плюсы и минусы аутсорсинга
Плюсы аутсорсинга
Техническая экспертиза.Аутсорс специалисты постоянно обучаются и часто уже имеют релевантный вашему проекту опыт, благодаря чему могут быстро советовать проверенные рабочие решения. Это позволяет эффективнее решать задачи на проекте и сократить time-to-market.
Качество.За результат аутсорсингового проекта несет ответственность внешняя команда и сама аутсорс-компания. Чтобы избежать выплат неустоек, штрафов, не испортить репутацию и получить довольного клиента – за качеством выполненных работ внимательно следят.
Сроки.Аутсорс-команды собираются из специалистов, которые ранее неоднократно работали вместе. Они быстро включаются в проект и чаще укладываются в сроки. Процессы разработки у компаний, специализирующихся на аутсорсинге, тоже часто отлажены лучше, чем у внутренних команд.
Концентрация заказчика на профильных бизнес-процессах.Делегирование разработки на аутсорс позволяет компании сконцентрироваться на бизнесе и не отвлекаться на разработку.
Минусы аутсорсинга
Минусы в данном случае – это скорее не явные недостатки, а риски, которых можно избежать. Подробно о самих рисках и о том, как их минимизировать, мы написали в этой статье. Здесь же подчеркнем основные моменты.
Потеря конфиденциальной информации.При передаче определенных функций другой компании возникает риск потери конфиденциальных данных и нарушения безопасности информации. Управление риском — через проверку контрагента и корректное оформление договорных отношений.
Риск выбрать некомпетентного подрядчика.Очень многое зависит от выбора компании-подрядчика. Если вы впервые работаете с компанией и располагаете временем, лучше сначала передать на аутсорс небольшой проект, и оценить работу на нём. Также хорошо будет убедиться в репутации компании аутсорсера и качестве предоставляемых услуг (например, через отзывы от текущих клиентов).
Зависимость от подрядчика.Компания может стать зависимой от подрядчика в части обладания полным объемом знаний о проекте. Риск нивелируется путем правильного построения рабочего процесса с подрядчиком, требованиями к документированию проекта и элементарным контролем.
Какие еще факторы нужно учесть при выборе аутсорсинга
Стоимость.В зависимости от ситуации и выбора компании-подрядчика, стоимость итогового продукта при аутсорсинге может обойтись как дешевле, так и дороже других вариантов разработки (аутстаффинг, работа со штатной командой). Однако в случае с аутсорсингом вам будет юридически гарантировано получение результата. Либо вы примете оговоренный в договоре продукт или услугу, либо компания выплатит деньги в случае несоответствия продукта оговоренным требованиям – у вас в руках остаются хорошие рычаги давления (мы не призываем давить на подрядчиков ;), но выступаем за то, что каждый должен получить заявленный результат) .
Знание предметной области.Лучше вас ваш продукт действительно не знает никто. В случае с аутсорсингом вам может повезти, тогда вы получите команду, которая работала с вашей сферой, “прониклась” ей или обладает даже более высокой экспертизой, чем вы. Или вы можете нанять разработчиков, которые не специализируются на какой-то узкой сфере – зато они смогут привнести в ваш проект свежие идеи из смежных ниш.
Сколько стоит аутсорсинг разработки ПО
Итоговая цена зависит не только от сложности проекта и компетенции подрядчика, но и от модели оплаты и почасовых ставок.
Стоимость аутсорсинга по модели “Fixed Price”
В этом случае от заказчика требуется только техническое задание – всем остальным занимается подрядчик. Одно из главных достоинств такого варианта – предсказуемая стоимость и определенные сроки. Основной недостаток – это потеря гибкости, так как все изменения и отступления от ТЗ придется оплачивать дополнительно. Обычно такой формат аутсорсинга используют для мелких проектов со строго ограниченным функционалом, в который до момента релиза точно не будут вноситься изменения и дополнения.
Стоимость аутсорсинга в случае с выделенной командой разработки
При таком варианте сотрудничества вы оплачиваете время команды разработчиков, которое они потратили на реализацию проекта (формат оплаты называется “Time&Material”). Весь проект в процессе работы разбивается на задачи, каждую из которых команда отдельно оценивает и выполняет. Например, группа оценила 1 задачу в 40 человеко-часов, вы умножаете 40 на часовой рейт подрядчика, получаете стоимость, и если согласны – команда приступает к выполнению задачи. После выполнения каждой такой задачи вам предоставляется видимый результат.
Задачи могут группироваться в спринты. Большой плюс такого формата в том, что заказчик может вносить любые изменения непосредственно в ходе работ. Такой вариант актуален для больших проектов, прописать полное ТЗ на которые сложно или нецелесообразно.
Документальное оформление и сопровождение
Документы, которые нужно подписать с аутсорсинговой компанией:
- Соглашение о конфиденциальности (NDA). Мы рекомендуем подписывать его еще до передачи ТЗ на оценку.
- Договор на оказание услуг. Он должен содержать полное описание, сроки, стоимость и порядок оплаты. Также там нужно прописать гарантии и ответственность сторон за невыполнение обязательств.
- Приложения
- БТ (бизнес-требования) — это то, что хочет получить бизнес от продукта
- ПТ (пользовательские требования) — какие цели пользователей должна позволять достичь система
- ФТ (функциональные требования) — описание функций, которые должны работать в продукте для достижения целей пользователя
- НФТ (нефункциональные требования) — это описание требований, связанных с особенностями интерфейса, техническими характеристиками, возможно какими-то ограничениями, которые нужно учесть при создании продукта.
- ТЗ (техническое задание). О том, как его составить, мы писали здесь.
- Акт приема-передачи работ (где указаны все выполненные работы и их соответствие требованиям).
В разных случаях (и если позволяет конкретный формат работы по аутсорсингу) документов может быть больше или меньше, например могут отсутствовать какие-то приложения, включая ТЗ.
Что нужно требовать у подрядчика
Есть определенный “гигиенический минимум”, наличие которого отличает хорошего аутсорсера от плохого. Это касается соблюдения режима конфиденциальности, работы в корректной инфраструктуре, регулярности релизов, формата встреч с заказчиком и обязательного ведения документации на проекте.
Работа по 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-инфраструктурой, которую сложно поддерживать и развивать внутри компании
- Любые компании – для быстрой и качественной реализации и/или поддержки отдельных проектов, включая внутренние стартапы, особенно когда есть потребность привлечь дополнительную экспертизу
- Все, кто хочет сфокусироваться на эффективном ведении профильных направлений бизнеса, а непрофильные процессы и задачи делегировать вовне.
- Какие проекты и задачи часто отдают на аутсорс?
- Разработку веб-сервиса или мобильного приложения
- Дизайн
- Фронтенд-разработку
- Бэкенд-разработку
- Поддержку и развитие проекта
- Аутсорсинг DevOps
- Плюсы и минусы аутсорсинга
- Плюсы аутсорсинга
- Минусы аутсорсинга
- Какие еще факторы нужно учесть при выборе аутсорсинга
- Сколько стоит аутсорсинг разработки ПО
- Стоимость аутсорсинга по модели “Fixed Price”
- Стоимость аутсорсинга в случае с выделенной командой разработки