Аутсорс vs своя команда: как грамотно внедрить DevSecOps и сэкономить ресурсы

Всем привет! Меня зовут Юрий Шабалин, я ведущий архитектор ГК Swordfish Security. Уже почти 10 лет мы создаем защищенные ПО, внедряем практики DevSecOps и снижаем риски различных киберугроз. Поговорим сегодня о том, как можно построить процесс безопасной разработки.

Из-за событий февраля этого года и последующих за ними санкций в ИТ сформировались несколько тенденций. Первая: многие иностранные вендоры ушли с российского рынка или ограничили свои операции (в их числе Microsoft, Oracle, SAP, EPAM Systems, Cisco, Intel, AMD и другие). Вторая: России объявили настоящую кибервойну. За первые пять месяцев 2022 года число атак увеличилось на 38% по сравнению с аналогичным периодом прошлого года. И третья тенденция: спрос на информационную безопасность резко вырос, но кадров не хватает - дефицит ИБ-специалистов оценивается в 30 тыс. человек. Таким образом, компаниям нужно подстраиваться под новые реалии: разрабатывать собственные продукты и при этом заранее думать о защите.

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

Делаем сами

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

Посчитаем, сколько понадобится сотрудников, чтобы реализовать проект для компании среднего размера - на 500 разработчиков. Во главу всего необходимо поставить руководителя направления (это раз). Он должен сформулировать цель и модель законченного процесса, то есть представить, какой нужен результат. В начале внедрения будет минимум семь направлений:

  • статический анализ (SAST),
  • динамический анализ (DAST),
  • анализ компонент с открытым исходным кодом (OSA/SCA),
  • анализ мобильных приложений (MAST),
  • анализ контейнеров (CA),
  • интеграция инструментов (условно DevOps),
  • администрирование серверов и поддержка инструментов в актуальном состоянии.

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

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

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

Всё это выглядит как очень большой объем работы, на который может уйти много времени. Есть немало примеров, где компании тратили 2-3 года на запуск только основных практик - SAST, SCA, DAST. Кроме этого, возможно, не сразу получится собрать необходимую команду. Таким образом, этот вариант подойдет тем компаниям, которые обладают нужными ресурсами и смогут удержать этот груз на собственных плечах.

Расходы

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

Отдаем на аутсорс

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

Ключевое место в DevSecOps занимает процесс, который включает взаимодействие участников между собой. Чтобы построить его качественно, нужно бесшовно внедрить инструменты информационной безопасности в жизненный цикл ПО. Но проблема в том, что в каждой компании он устроен по-разному: и технически, и организационно. То есть команда на аутсорсе, взявшись за ваш проект, не будет знать всех особенностей и нюансов процессов разработки ПО, в отличие от внутренних специалистов. У нее могут быть трудности даже с элементарными вещами, например, коммуникацией и эскалацией проблем (такое случается нередко). Это значит, что на первых этапах работы не исключены ошибки со стороны компании-исполнителя. Ее команде потребуется время, чтобы изучить все стандарты и правила заказчика - это может затянуть проект.

С учетом обозначенной выше проблемы внедрить DevSecOps полностью на аутсорсе скорее всего не получится (даже у крупной компании). А стоит ли вообще это делать? Получится ли тогда выстроить качественный и эффективный процесс безопасной разработки? Те, у кого есть опыт работы с такими проектами, зачастую дают отрицательные ответы на эти вопросы.

Расходы

На первый взгляд этот способ кажется менее затратным в плане человеческих и технических ресурсов, по сравнению с первым вариантом. Но исполнитель привлечет на проект большую команду - 5-10 специалистов. Их работа будет стоить примерно 1,5-2 млн рублей в месяц и 24 млн в год. Кроме этого, придется еще заплатить за сами услуги: около 1-3 млн в месяц, или 30 млн в год. Также отдельно компенсируются затраты на встречи, командировки, переработки и другие активности. Чтобы реализовать проект, команде будет мало одного месяца, она потратит на него более четырех, а может, даже год. Таким образом, общие расходы могут составить более 50 млн рублей.

Итак, мы видим, что оба варианта имеют свои минусы и вызывают некоторые сомнения. А что будет, если объединить их? По правилам минус на минус дает плюс. Посмотрим, так ли это на практике.

Миксуем свои ресурсы и аутсорс

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

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

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

3. Внешние и внутренние специалисты совместно внедряют DevSecOps.

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

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

Расходы

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

Вывод

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

0
Комментарии
-3 комментариев
Раскрывать всегда