Инжиниринг — это, пожалуй, основная функция в аутсорсинговой компании. Именно здесь "сидят" разработчики, инженеры по качеству, девопсы. Часто бизнес-аналитики и UI/UX специалисты тоже входят в Инжиниринг, но иногда и выделяются в отдельную группу. Таким образом Инжиниринг - почти всегда самое многочисленное подразделение в аутсорсинг-компании.


Задача инжиниринга — обеспечивать проекты инженерами (через функцию Ресурсинга), нанимать инженеров с рынка (через Функцию Рекрутмента), а также устанавливать технические стандарты для проектов, разрабатываемых в компании и следить, чтобы инженеры их придерживались. Кроме того, именно Инжиниринг оценивает технические скиллы инженеров и организует их обучение.
Департамент обычно разделен на отделы согласно технологическим стекам — отдел Java-разработчиков, отдел .NET-разработчиков, отделы ручного и автоматизированного тестирования и т.д.
При этом каждый отдел выполняет две функции:
Центр компетенций (Competence Center или иногда Center of Excellence)
Устанавливает стандарты в своей области, обучает инженеров, оценивает их. Например, отдел Java-разработки является центром компетенций для Java-инженеров. Он диктует какие дизайн-паттерны выбирать, какими версиями инструментов разработки (IDE) и библиотек пользоваться и т.д. Он же определяет что должен уметь Senior Java-инженер и чем он отличается от мидла и джуна.
Пул ресурсов
Да-да, это обидное слово "ресурсы" в терминологии проектного менеджмента и организационного дизайна означает "люди". но на самом деле никто никого обидеть не хотел, просто так исторически сложилось :). Но чтобы уж точно никто не обижался, всё чаще эту функцию называют "пул талантов" (Talent Pool). На практике все эти слова означают одно - отдел java-разработчиков "поставляет" этих самых разработчиков для нужд проектов.

Каждый отдел возглавляется техлидом (Technical Lead). В больших отделах эта позиция может называться иначе, например, Head of Stack, а ему в свою очередь, уже подчиняются техлиды, которые непосредственно руководят инженерами.


Кроме управления отдельными стеками Инжиниринг в целом решает и другие задачи. Например, грейдинг инженеров, то есть присвоение им уровней Senior/Middle/Junior проходит по двум линейкам - оценка технических скилов в конкретном стеке или языке + оценка общих технических и софт-скилов. Например, Senior .NET Engineer должен не только качественно разрабатывать .NET-приложения, но и уметь писать техническую документацию, объяснять технические вопросы клиенту и менее опытным коллегам, менторить их.
Кроме управления отдельными стеками Инжиниринг в целом решает и другие задачи. Например, грейдинг инженеров, то есть присвоение им уровней Senior/Middle/Junior проходит по двум линейкам - оценка технических скилов в конкретном стеке или языке + оценка общих технических и софт-скилов. Например, Senior .NET Engineer должен не только качественно разрабатывать .NET-приложения, но и уметь писать техническую документацию, объяснять технические вопросы клиенту и менее опытным коллегам, менторить их.

Чтобы проводить грейдинг согласованно и максимально объективно, Инжиниринг создает скилл-матрицы. В них написано что должен знать и уметь Senior, Middle и Junior инженер.
А еще инжиниринг (совместно с Ресурсингом) управляет Бенчем — "скамейкой запасных", на которой оказываются инженеры, у которых в данный момент нет проекта. Обучать их, обеспечивать внутренними проектами, организовывать knowledge sharing-сессии — задача Инжиниринга. Размер Бенча нужно держать таким, чтобы с одной стороны можно было быстро стартовать проекты, не дожидаясь найма людей с рынка, а с другой - не слишком большим, чтобы компания не тратила на Бенч все свои деньги. Ну и конечно, от стека к стеку размер Бенча может и должен отличаться - сегодня java-проекты более востребованы, а завтра — приходится прощаться с java-инженерами, потому что их в компании стало слишком "много".

Кстати, у Инжиниринг-функции великое множество названий — тут тебе и Production, и Solutions и другие варианты, встречающиеся в разных компаниях.
Хороший Инжиниринг
"Хороший" Инжиниринг от "плохого" отличается
двумя моментами:
Скиллы программистов в нём отвечают потребностям проектов, которые ведет или планирует вести компания
Например, фронтенд в большинстве проектов компания делает на React.js, то и программистов она будет набирать с хорошим знанием именно этого фреймворка.
Техлиды не просто "существуют", но и активно помогают своим инженерам в трудных ситуациях на проектах
А также активно участвуют в пресейле и разработке архитектуры приложений.
Хочешь узнать больше?
Получи дополнительные материалы на Еmail