С каждым годом компании, которые так или иначе сталкиваются с вопросами найма разработчиков или тестировщиков ПО, констатируют все более возрастающую сложность подбора специалистов. По данным опроса крупнейшего онлайн-сервиса по поиску персонала Indeed, более 86% респондентов – специалистов по найму в ИТ отрасли – отметили, что подбор разработчиков становится серьезным испытанием, а 83% опрошенных признали, что затруднения с заполнением позиций привели к нарушениям в бизнес-процессах и потерям в выручке, замедлению проектной деятельности, выгоранию сотрудников компании, на которых падает дополнительная нагрузка, а также к проблемам с выводом продуктов на рынок. При этом, по результатам опроса, на рынке вполне достаточно кандидатов с общим образованием, но 77% респондентов отметили, что уровень навыков и опыта с конкретными технологиями не соответствует тому, что требуется работодателям.
Наши клиенты не понаслышке знают о проблемах поиска инженеров с конкретными навыками, технологическим стеком и бэкграундом. В отличие от стаффинговых агентств, «Аурига» креативно подходит к решению проблем найма – еще в 2006 году мы запустили собственный тренинг-центр с развивающейся базой знаний, собственными инструментами и тренерами. Наш тренинг-центр активно обучает инженеров и помогает им с сертификацией для закрытия вакансий в проектах «Ауриги». В этой статье расскажем об одном из наших образовательных проектов – не только потому, что это невероятно интересный и сложный с точки зрения технологий кейс, но еще и потому, что гордимся им как примером нестандартного подхода к подготовке специалистов, сохранению и передаче знаний.
Одному из наших заказчиков, производителю процессоров нового поколения и экосистемы ПО под него, потребовалось серьезно нарастить команду специалистов по разработке симуляционных моделей в довольно сжатые сроки. С решением задачи помог справиться компетентный тренер Алексей Ищук, который разработал и успешно внедрил уникальный курс для инженеров. О своем подходе и особенностях тренинга Алексей далее рассказывает сам.
Обучение с использованием симуляторов
Когда речь заходит о симуляторах, подразумевается применение их для целей моделирования, но не обучения. Возникает закономерный вопрос – зачем компании-разработчику тратить время и средства на обучение специалистов вместо того, чтобы просто найти их на рынке? Ответ будет одновременно и простым, и достаточно сложным.
С одной стороны, спрос заказчиков стремительно растет – навыки разработки и отладки симуляционных моделей требуются как для новых операционных систем, так и для нового оборудования, включая устройства Интернета вещей, а также для автоматизации производств. Симуляторы позволяют проводить разработку железа и программного обеспечения параллельно, при этом сокращается количество степпингов и отладка начинается значительно раньше, чем при стандартной модели разработки, поэтому наиболее передовые технологические компании стремятся воспользоваться уникальными возможностями. Кроме того, обучение сотрудников при переходе с проекта на проект в рамках одной компании позволяет заметно сократить время их адаптации в новом проекте и снижает нагрузку на других членов команды, что тоже приветствуется нашими заказчиками.
С другой стороны, специалистов, обладающих навыками отладки операционных систем, работы с устройствами на низком уровне и анализа ситуаций, возникающих при аварийном завершении работы операционной системы, на рынке труда сейчас не так много, как в России, так и за рубежом. Разработка модели компьютерного устройства даже на уровне «черного ящика» – длительный и кропотливый процесс. Трудоемкость разработки модели современного компьютерного устройства вытекает из широкой функциональности реального изделия, большого количества режимов работ и нюансов взаимодействия с другими устройствами, например, по компьютерной сети. Это еще не микроэлектроника, но уже и не системное программирование. Модель работает на стыке аппаратуры и системного ПО, поэтому отладка моделей устройств и работающих с ними компонентов операционных систем требует от разработчиков весьма специфических навыков. Предсказуемо, такие инженеры на рынке труда весьма редки. Поэтому разумным выходом из ситуации кадрового голода в условиях повышающегося спроса будет начать обучение подходящих кандидатов специфике работы с симуляторами, а не вести долгий и затратный поиск нужных специалистов.
Что такое полноплатформенные симуляторы
Чтобы использовать симулятор для разработки ПО, необходимо сначала разработать симуляционную модель устройства и только потом использовать ее для отладки системных компонентов и прикладных программ. Разработку симуляционной модели можно вести по функциональной спецификации реального устройства, поэтапно дорабатывая ее по мере уточнения спецификации, и параллельно с этим вести разработку программ, например, драйверов устройства. Разработка модели ведется по стратегии от простого к сложному и от границ к центру. Сначала обеспечивается базовая функциональность модели, затем особенности и нюансы функционирования моделируемого устройства.
Полноплатформенные симуляторы стали называть так именно потому, что они могут моделировать всю аппаратную платформу компьютера с точностью, достаточной для загрузки на нее реальной операционной системы. Приемлемый уровень производительности модели системы достигается за счет максимального упрощения моделей устройств, составляющих платформу. Эти модели работают по принципу «черный ящик», когда модель лишь отвечает заданным образом на специфицированные внешние воздействия (например, изменения данных в регистрах устройства). При этом внутренняя логика работы устройства и физика его функционирования не моделируются и достигается максимальная производительность, что позволяет вести отладку компонентов операционной системы в реальном времени.
Преимущества симулятора Simics
Wind River Simics® является наиболее мощным симулятором с точки зрения доступных разработчику моделей устройств функциональности и поддерживаемых моделей аппаратных платформ. Кроме компонентов материнских плат и их взаимодействия, этот симулятор также предоставляет средства поддержки моделирования всех известных аппаратных интерфейсов, таких как PCI, PCI Express, USB, SATA и т.п. Сам симулятор работает как обычный пользовательский процесс в среде операционной системы и, хотя выполнение привилегированных команд процессора реализовано через специальный модуль ядра хозяйской операционной системы, взаимодействие с низкоуровневыми функциями сведено к минимуму.
Wind River Simics® предоставляет модель аппаратной платформы и средства отладки, что дает все возможности для организации обучения специалистов процессу разработки компонентов системного ПО. Использование симуляционных моделей для обучения разработчиков имеет ряд преимуществ по сравнению с реальной аппаратурой. Модель является программной, поэтому, во-первых, ничто не мешает запрограммировать в ней подробную трассировку происходящих событий, показывая состояния регистров ввода-вывода и хронологию возникновения прерываний. Во-вторых, тиражирование модели не влечет за собой материальных затрат на приобретение устройств. Поскольку средой выполнения для симулятора служит многопользовательская операционная система, появляется возможность сэкономить на организации рабочих мест обучаемых: отпадает необходимость приобретать компьютеры специально для тестирования разрабатываемых в процессе обучения компонентов операционных систем.
В рамках академической лицензии на использование Simics® вместе с ПО поставляется исходный код моделей реальных устройств, которые могут быть использованы как прототипы для создания учебных моделей драйверов и других компонентов операционной системы. Несмотря на то, что они учебные, эти модели достаточно сложны, так как повторяют поведение реальных устройств. Поэтому мы строим обучение поэтапно – сначала создаем собственный ряд моделей учебных устройств. Реализация низкоуровневого взаимодействия модели, например, PCI устройства с процессом симуляции реализована в Simics® в виде библиотеки функций для языка DML, что заметно упрощает разработку моделей компонентов материнских плат и периферийных устройств, позволяя разработчику сконцентрироваться на логике поведения модели.
В заключение
Разработанный тренинг позволил «Ауриге» своевременно заполнить позиции на важном для нас проекте, дал возможность многим инженерам попробовать и реализовать себя в новой для них области знаний, а нашему заказчику – сократить время разработки и вывода на рынок своего продукта.
Сергей Рыбий, Директор тренинг-центра:
Мы всегда рады возможности запуска новых курсов и инструментов для обучения в нашем центре. Поэтому, когда поступил запрос на подготовку таких редких специалистов, мы разработали совершенно уникальную программу обучения и смогли получить академическую лицензию Wind River Simics®, а наша команда пополнилась высокопрофессиональным специалистом с большим опытом работы с симуляторами. Уже два года мы работаем с инженерами из разных городов, которых скрупулезно отбираем из множества кандидатов: обращаем большое внимание на резюме, желание работать именно в этой области. Наша инфраструктура позволяет обучать студентов как очно, так и в онлайн-формате, что особенно ценно в контексте развернувшейся пандемии COVID-19 – нам не пришлось прерывать занятия. Выпускники отлично оценили качество подготовки, причем более десяти специалистов пополнили ряды инженеров «Ауриги».
О тренинг-центре «Ауриги»
«Аурига» проводит учебные курсы, начиная с 2006 года, когда наш внутренний курс Linux Kernel привлек внимание представителей крупных компаний Индии и по их приглашению был несколько раз прочитан представителям IBM, Symantec, Mindtree Consulting и других компаний. C тех пор «Аурига» провела сотни тренингов, курсов и вебинаров как в классах, так в виде онлайн-мероприятий. Каждый год наши курсы посещают более 1000 участников, а совокупная продолжительность обучения превышает 3500 часов. В год мы реализуем 60-70 образовательных программ. Начиная с 2017 года, «Аурига» запустила проект «A-training» – широкую образовательную инициативу по бесплатному доступу к нашим курсам для всех заинтересованных инженеров по разработке и тестированию ПО, аналитиков, архитекторов, менеджеров проектов и лидеров команд. Тренинг-центр проводит обучение очно и онлайн в ведущих вузах России уже более трех лет.