Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
В разработке программного обеспечения ведущий программист отвечает за техническое руководство и наставничество команды разработчиков. Альтернативные названия должности включают руководителя разработки, технического лидера, ведущего программиста или ведущего разработчика приложений. Если основная работа связана с проектированием корпоративного программного обеспечения низкого уровня, с акцентом на структуру приложения, например, на шаблоны проектирования, то эта роль соответствует должности архитектора программного обеспечения (в отличие от архитектора решений, который занимается менее техническими аспектами высокого уровня).
In software development, a lead programmer is responsible for providing technical guidance and mentorship to a team of software developers. Alternative titles include development lead, technical lead, lead programmer, or lead application developer. When primarily contributing a low level enterprise software design with focus on the structure of the app, e. g. design patterns, the role would be a software architect (as distinct to the high level less technical role of solutions architect.)
Ответственность
Ведущий программист несёт ответственность, которая может варьироваться в зависимости от компании, но в целом отвечает за техническое руководство работой команды разработчиков программного обеспечения, работающих над проектом, обеспечивая соответствие работы техническим требованиям, таким как соглашения о кодировании, установленным архитектором программного обеспечения, ответственным за базовую архитектуру. Обязанности ведущего программиста часто носят практический характер, то есть они обычно ежедневно пишут программный код, помогая своей команде соблюдать сроки и повышать качество кодовой базы. Они выступают в роли наставника для новых или менее опытных разработчиков программного обеспечения или программистов, а также для всех членов команды разработки, в основном посредством таких процессов, как парное программирование, проведение ревью кода, продвижение хороших практик разработки, таких как разработка через тестирование, и принятие ведущей роли в исправлении дефектов кода. Хотя ответственность в основном техническая, ведущий программист также обычно является связующим звеном между программистами и руководством, берёт на себя ответственность за планы разработки своей команды и несёт ответственность за делегирование задач. Они обеспечивают своевременное и бюджетное выполнение этапов программных проектов, а также оказывают техническую помощь при найме и оценке работы сотрудников. Ведущие программисты также выступают в качестве технических консультантов для руководства и предоставляют взгляд программиста на требования. Обычно ведущий программист руководит командой разработчиков численностью от двух до десяти человек. Ведущий программист обычно отчитывается перед руководителем, который управляет несколькими командами. Техническое направление может задаваться архитектором программного обеспечения. Если команды используют подходы "водопад", экстремального программирования или канбан, ведущий программист называется менеджером по разработке или менеджером программного обеспечения и напрямую взаимодействует с коллегой – владельцем продукта, который собирает требования клиентов к конечному продукту. В рамках действительно гибкого подхода ведущий программист сотрудничает с отдельной ролью Scrum Master, который выступает посредником, стремящимся к компромиссу между бизнес-требованиями (владельцем продукта) и возможностями и навыками команды, например, какие задачи из бэклога продукта будут включены в следующий Agile-спринт.
A lead programmer has responsibilities which may vary from company to company, but in general is responsible for overseeing the work, in a technical sense, of a team of software developers working on a project, ensuring work meets the technical requirements, such as coding conventions, set by the software architect responsible for the underlying architecture. A lead programmer's duties are often "hands on", meaning they typically write software code on a daily basis, assisting their team to meet deadlines and improve the quality of the codebase. They act as a mentor for new or lower level software developers or programmers, as well as for all the members on the development team, primarily through processes such as pair programming, conducting of code reviews, promoting good development principles, such as test driven development, and taking the lead in correcting code defects. Although the responsibilities are primarily technical, lead programmer also generally serve as an interface between the programmers and management, have ownership of their team's development plans and have supervisorial responsibilities in delegating work. They ensure that sections of software projects come in on time and under budget, and assisting technically with hiring and reviewing performance of staff. Lead programmers also serve as technical advisers to management and provide programming perspective on requirements. Typically a lead programmer will oversee a development team of between two and ten programmers. A lead programmer typically reports to a principal who manages a number of teams. Technical direction may be provided by a software architect. Where teams follow the waterfall, extreme programming, or kanban approaches, the lead programmer is referred to as an engineering manager, or a software development manager, and collaborates directly with a peer, the product owner, who gathers the customer requirements that the end product must meet. In a true Agile approach, the lead programmer collaborates with a separate position of scrum master, who acts as an intermediary seeking a compromise between business demand (product owner) and team capacity and skillset, e. g. which story tickets from the product backlog will be passed into the next Agile sprint.