Бағдарламалауда жетекші бағдарламашы – командаға техникалық жетекшілік етеді, код сапасын жақсартады. Міндеттері: тәжірибе алмасу, үлгілерді сақтау, код жазу.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы 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.)
Жауапкершілік
Бас бағдарламашының жауапкершілігі компаниядан компанияға өзгеше болуы мүмкін, бірақ жалпы алғанда, жобада жұмыс істейтін бағдарламалық жасақтама әзірлеушілер тобының жұмысына техникалық тұрғыдан бақылау жасау, жұмыстың бағдарламалық жасақтама архитекторы белгілеген техникалық талаптарға – мысалы, кодтау конвенцияларына – сәйкес келетінін қамтамасыз ету міндеті жүктеледі. Бас бағдарламашының міндеттері көбінесе "қолмен" орындалады, яғни олар күн сайын бағдарламалық код жазып, командаларына мерзімдерді орындауға және код базасының сапасын жақсартуға көмектеседі. Олар жаңа немесе тәжірибесі аз бағдарламалық жасақтама әзірлеушілер мен бағдарламалаушыларға, сондай-ақ даму тобының барлық мүшелеріне кеңесші ретінде көмектеседі. Бұл көбінесе жұптық бағдарламалау, кодты қарау, жақсы даму принциптерін, мысалы, тесттік дамуды насихаттау және кодтағы ақауларды түзетуде жетекшілік ету арқылы жүзеге асырылады. Жауапкершіліктері негізінен техникалық болғанымен, бас бағдарламашы бағдарламашылар мен басқару арасындағы байланыс тілі ретінде де қызмет етеді, командасының даму жоспарларына жауапкершілік тартады және жұмысты бөлуде қадағалаушылық міндеттерді атқарады. Олар бағдарламалық жасақтама жобаларының бөліктерінің уақтылы және бюджет шегінде аяқталуын қамтамасыз етеді, сондай-ақ қызметкерлерді жұмысқа алу және олардың еңбек өнімділігін бағалауға техникалық көмек көрсетеді. Бас бағдарламалаушылар менеджментке техникалық кеңесші ретінде қызмет етеді және талаптарға бағдарламалау көзқарасынан тұрғызып қарау ұсынады. Әдетте, бас бағдарламашы екіден онға дейінгі бағдарламашылардан тұратын даму тобын басқарады. Бас бағдарламашы бірнеше команданы басқаратын директорға есеп береді. Техникалық бағытты бағдарламалық жасақтама архитекторы ұсынуы мүмкін. Егер командалар шарлауықты, экстремалды бағдарламалау немесе канбан әдістерін қолданса, бас бағдарламалаушы инженерлік менеджер немесе бағдарламалық қамтамасыз етуді дамыту менеджері деп аталады және өнім иесімен – соңғы өнімнің талаптарын жинақтайтын әріптесімен – тікелей өзара әрекеттеседі. Нағыз Agile тәсілінде бас бағдарламалаушы жеке 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.