|This article does not cite any sources. (February 2007) (Learn how and when to remove this template message)|
A lead programmer is a software engineer in charge of one or more software projects. Alternative titles include development lead, technical lead, lead software engineer, software design engineer lead (SDE lead), software development manager, software manager, or lead application developer. When primarily contributing in a high-level enterprise software design role, the title software architect (or similar) is often used. All of these titles can have different meanings depending on the context.
A lead programmer's exact responsibilities vary from company to company, but in general he or she is responsible for the underlying architecture for the software program, as well as for overseeing the work being done by any other software engineers working on the project. A lead programmer will typically also act as a mentor for new or lower-level software developers or programmers, as well as for all the members on the development team.
Although the responsibilities are primarily technical, lead programmers also generally serve as an interface between the programmers and management, have ownership of development plans and have supervisorial responsibilities in delegating work and ensuring that software projects come in on time and under budget. 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, with three to five often considered the ideal size. Teams larger than ten programmers tend to become unmanageable without additional structure. A lead programmer normally reports to a manager with overall project or section responsibility, such as a director or product unit manager (PUM).
Lead programmers are usually trained in software programming, although do not necessarily hold formal degrees in the subject, and may learn management responsibilities either on the job or through short courses. Because their primary training is usually technical rather than managerial, lead programmers traditionally see themselves as part of the technical staff of a company rather than as part of management. This cultural identification can be valuable in relating to programmers who tend to not take direction from someone perceived as lacking in technical skills.