В разработке программного обеспечения ведущий программист отвечает за предоставление технического руководства и наставничества для команды разработчиков программного обеспечения . Альтернативные названия включают в себя руководителя разработки , технического руководителя , ведущего программиста или ведущего разработчика приложений . При первичном участии в разработке низкоуровневого корпоративного программного обеспечения с акцентом на структуру приложения, например, шаблоны проектирования, роль будет архитектором программного обеспечения (в отличие от высокоуровневой менее технической роли архитектора решений ).
Ведущий программист имеет обязанности, которые могут различаться в зависимости от компании, но в целом он отвечает за надзор за работой, в техническом смысле, команды разработчиков программного обеспечения, работающих над проектом, обеспечивая соответствие работы техническим требованиям, таким как соглашения о кодировании , установленные архитектором программного обеспечения , ответственным за базовую архитектуру . [1] Обязанности ведущего программиста часто являются «практическими», то есть они обычно пишут программный код ежедневно, помогая своей команде соблюдать сроки и улучшать качество кодовой базы. Они выступают в качестве наставников для новых или низкоуровневых разработчиков программного обеспечения или программистов , а также для всех членов команды разработчиков, в первую очередь посредством таких процессов, как парное программирование , проведение обзоров кода , продвижение хороших принципов разработки, таких как разработка через тестирование , и взятие на себя руководства по исправлению дефектов кода. [2]
Хотя обязанности в основном технические, ведущий программист также обычно служит интерфейсом между программистами и руководством, владеет планами разработки своей команды и имеет надзорные обязанности по делегированию работы. [3] Они обеспечивают, чтобы разделы проектов программного обеспечения были выполнены вовремя и в рамках бюджета, а также оказывают техническую помощь с наймом и проверкой производительности персонала. Ведущие программисты также служат техническими консультантами для руководства и предоставляют программную точку зрения на требования. Обычно ведущий программист будет контролировать команду разработчиков, состоящую из двух-десяти программистов. [4] [5]
Ведущий программист обычно подчиняется руководителю, который управляет несколькими командами. Техническое руководство может предоставляться архитектором программного обеспечения. Когда команды следуют подходам водопада , экстремального программирования или канбана , ведущий программист называется инженерным менеджером или менеджером по разработке программного обеспечения и напрямую сотрудничает с коллегой, владельцем продукта , который собирает требования клиентов, которым должен соответствовать конечный продукт. В настоящем подходе Agile ведущий программист сотрудничает с отдельной позицией scrum-мастера , который выступает в качестве посредника, ищущего компромисс между бизнес-требованиями (владелец продукта) и возможностями и навыками команды, например, какие тикеты историй из бэклога продукта будут переданы в следующий спринт Agile .