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.ResponsibilitiesA 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).