In
software development
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
, a lead programmer is responsible for providing technical guidance and
mentorship
Mentorship is the patronage, influence, guidance, or direction given by a mentor. A mentor is someone who teaches or gives help and advice to a less experienced and often younger person. In an organizational setting, a mentor influences the perso ...
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
Solution architecture is a term used in information technology with various definitions, such as "a description of a discrete and focused business operation or activity and how Information systems, IS/Information technology, IT supports that opera ...
''.)
Responsibilities
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
Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices, and methods for each aspect of a program written in that language. These conventions usually cover file organization, i ...
, set by the
software architect responsible for the underlying
architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
. 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
Mentorship is the patronage, influence, guidance, or direction given by a mentor. A mentor is someone who teaches or gives help and advice to a less experienced and often younger person. In an organizational setting, a mentor influences the perso ...
for new or lower-level software developers or
programmer
A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming.
The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
s, 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
Test-driven development (TDD) is a way of writing source code, code that involves writing an test automation, automated unit testing, unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the ...
, 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
A waterfall is any point in a river or stream where water flows over a vertical drop or a series of steep drops. Waterfalls also occur where meltwater drops over the edge
of a tabular iceberg or ice shelf.
Waterfalls can be formed in seve ...
,
extreme programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
, 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''.
References
{{Reflist
Lead programmer
Software project management