Всем привет! Меня зовут Егор Сизов, я руковожу группой инженеров внедрения по направлению Управление качеством в ГК «Цифра». Я прошел путь инженера внедрения от стажера до тимлида и теперь готов поделиться опытом, рассказать о специфике роли инженера внедрения в IT, про необходимые компетенции, а также ключевые аспекты профессионального развития.
Статья будет полезна HR-ам, нанимающим менеджерам в компаниях-интеграторах IT-продуктов, а также специалистам, которые хотят стать инженерами внедрения или уже работают на данной должности.
Ниже в статье я рассматриваю набор компетенций и задач инженера внедрения на примере моего бизнес-юнита в «Цифре». Адаптировав компетенции под ваш внедряемый продукт и технологический стек, а задачи — под вашу матрицу ответственности и должностные инструкции, вы сможете применить изложенные мной принципы в своей компании и подразделении (надеюсь на это).
Как войти?
Выражение «Войти в IT» уже набило оскомину, однако этот запрос на рынке труда остается актуальным и сегодня.
Площадки с онлайн-курсами или дополнительным образованием в своей контекстной рекламе в основном предлагают «войти в IT» через тестирование или аналитику. А в образовательных программах вузов не первый год осуществляют подготовку по направлениям программной инженерии, аналитики данных, управлению проектами и т. д. При этом о профессии инженера внедрения почти не говорят, курсов или образовательных программ по специальности практически не существует. Но вместе с тем инженер внедрения — хорошая стартовая позиция для входа в IT.
Во-первых, она находится на стыке разработки и бизнеса и на первых этапах подразумевает развитие навыков прежде всего «в ширину», а также предоставляет возможность применить свой бэкграунд из других технических отраслей. В зависимости от класса системы и предметной области проектов специализация позволит применить свой бэкграунд специалистам АСУ ТП, технологам, фундаментальным химикам, физикам, нефтехимикам.
Во-вторых, инженер внедрения получает понимание и базовые навыки бизнес-анализа, архитектуры, проектирования, DevOps, управления проектами и разработки ПО. Это позволяет сделать выбор развития в сторону смежной профессии и начать путь в ней с хорошей стартовой точки.
Конкуренция на уровнях junior и middle на рынке труда ниже, чем у аналитиков, системных инженеров и руководителей проектов. А с уровня senior инженер внедрения становится штучным и дефицитным кадром за счет сочетания высокого уровня владения несколькими смежными специальностями.
Кто такой инженер внедрения?
За три года работы инженером внедрения я часто объяснял людям из IT, да и не только IT, кто такой инженер внедрения и в чем заключается его работа. Каждый раз было сложно сформулировать, но мой рассказ постоянно содержал два основных тезиса: широкий круг задач и связующая роль инженера внедрения в проектах. Сегодня я сформулировал определение инженера внедрения в трех предложениях.
Инженер внедрения — специалист, который создает проектное решение для управления производством конечными пользователями. Для этого он не только конфигурирует функционал внедряемой IT-системы и разрабатывает кастомные решения, но и, что не менее важно, выступает проводником (переводчиком) между Заказчиком, Разработкой и другими ролями в команде проекта внедрения. Выполнение этих задач инженером внедрения обеспечивает достижение заявленных целей и эффектов проекта внедрения.
Какие задачи у инженера внедрения?
С организационной точки зрения инженер внедрения находится между разработкой, которая работает над продуктом по agile с планированием новых функций по спринтам, и бизнесом, который живет, как правило, в модели cascade с годовым финансированием и актированием, а также фиксированными сроками этапов проекта внедрения.
С технической точки зрения инженер внедрения взаимодействует с внедряемой системой, заказчиком, разработкой и смежными специалистами проектной команды. На этом я подробнее остановлюсь.
- Во внедряемой системе инженер конфигурирует реализованный в продукте функционал и разрабатывает проектные решения, которые не заложены в возможностях продукта (как правило, интеграции со смежными системами).
- В ходе конфигурирования системы инженер внедрения сталкивается с багами в продукте, по которым он взаимодействует уже с разработкой. Инженер внедрения не только оформляет баг в виде заявки в техническую поддержку, но и сопровождает заявку в ходе её жизненного цикла: предоставляет дополнительную информацию специалистам поддержки и разработчикам, а после выхода баг фикса принимает устранение проблемы. Также разработка при реализации доработок или изменений текущей реализации функционала обращается к инженеру внедрения за информацией о специфике использования продукта, его конфигурации или данных на конкретном проекте, которая может приводить к отличному от полигонов разработки поведению системы.
- В ходе итеративного процесса конфигурирования и разработки проектных решений инженер внедрения непрерывно взаимодействует с заказчиком. В результате рабочих встреч и переписки, демонстрации функционала и проектных разработок инженер внедрения уточняет бизнес-процессы заказчика. В соответствии с этим инженер внедрения корректирует конфигурацию системы и проектные разработки, а также формулирует бизнес-требования для дальнейшей постановки доработок продукта. На завершающем этапе внедрения инженер проводит обучение технических специалистов заказчика для последующего администрирования и поддержки ими системы.
- Инженер внедрения предоставляет бизнес-аналитику оформленное в виде пользовательской истории функциональное требование к продукту для тех бизнес-требований заказчика, которые не могут быть реализованы в текущем функционале продукта. Бизнес-аналитик, в свою очередь, работает с этим функциональным требованием для постановки доработки и последующего сопровождения на всем протяжении её жизненного цикла.
- Архитектор и инженер внедрения приходят к соглашениям и ограничениям на основе нефункциональных требований от специалистов по информационной безопасности и архитекторов заказчика. Под соглашениями я подразумеваю методологии и подходы к конфигурированию системы в части наименований сущностей системы, организации их иерархии и т. п. Ограничения же лежат в технической части. Например, запрет на прямые подключения к базам данных в обход API сервисов, запрет на использование сторонних библиотек для скриптов и т. д.
- Инженер внедрения определяет на основе необходимого функционала набор, версии и конфигурации микросервисов, которые должен развернуть и поддерживать системный инженер. При отладке системы инженер внедрения локализует возникшие проблемы с её работоспособностью до уровня конкретного микросервиса, конфигурацию которого требуется изменить системному инженеру для решения проблемы.
- Инженер внедрения предоставляет фактические конфигурации и проектные разработки проектировщику для разработки им технической документации проекта, а также консультирует по техническим вопросам устройства и работы внедряемой системы.
- Наконец, инженер внедрения предоставляет руководителю проекта оценку трудоемкости, детализацию и последовательность своих работ с технической точки зрения для дальнейшего верхнеуровневого планирования сроков, этапности и трудоемкости проекта.
Таким образом, инженер внедрения является центральным узлом взаимодействий в проекте внедрения.
Какие нужны компетенции?
Исходя из роли и задач инженера внедрения можно выделить следующие компетенции, которые ему необходимы.
Область компетенций | Группа навыков | Навыки, технологии и инструменты |
Продукты | Внедряемый продукт | Знание и опыт конфигурирования внедряемого продукта |
Прикладные навыки | Отладка микросервисов | Знание и опыт работы с запросами, и соответствующими IDLE: RestAPI, grpcAPI, graphQL, SQL. Понимание и опыт анализа консоли разработчика браузера и логов микросервисов Чтение и понимание технической документации продукта: README, CHANGELOG, руководство администратора, исходный код Управление жизненным циклом заявки на баг ПО |
Open Source сервисы | Навыки администрирования и работы с open source сервисами, например: | |
Прикладные скрипты | Разработка скриптов на языках Python, JavaScript, Java/Groovy и др. | |
Предметная область | Предметная область | Понимание бизнес- и технологических процессов предметной области, а также специфики использования и знание типовых решений в системах соответствующего класса |
Гибкие навыки для управления командой и взаимодействия с заказчиком | Деловые коммуникации | Гибкие навыки для рабочего взаимодействия с заказчиком: |
Переговоры | Гибкие навыки для переговоров с заказчиком: | |
Демонстрации и обучение | Гибкие навыки: | |
Управление командой | Понимание основных методов управления проектами Знание основных понятий управления проектами Понимание рисков проекта и методов по управлению ими Понимание методологии Scrum и опыт работы по ней | |
Смежные роли | Бизнес-анализ | Знание и опыт работы с нотациями бизнес-анализа: BPMN, UML, WAD Управление жизненным циклом доработки функционала |
DevOps | Понимание принципов контейнеризации и оркестрации контейнеров Опыт работы с оркестраторами контейнеров Kubernetes, OpenShift и т.п. | |
Архитектура | Понимание принципов и способов интеграции со смежными системами Понимание принципов информационной безопасности Понимание принципов и опыт работы по соглашениям | |
Проектирование | Понимание принципов, структуры, назначения и опыт чтения проектных документов |
Таким образом, инженер внедрения должен обладать широким спектром компетенций.
Во второй части статьи я подробно рассказываю о развитии и карьерном росте инженера внедрения от junior до senior.
Буду рад, если данный текст окажется полезным для вас. Пишите отзывы.