Что должен знать и делать ведущий разработчик?

Уважаемые хабралюди, наверное многие из вас работают в офисе. Кто-то из вас работает под руководством человека, чью должность можно называть «ведущий разработчик», а кто-то таковым и является.


Пожалуйста, расскажите о вашем понятии, кто для вас человек в должности «ведущий разработчик», какие обязанности он выполняет, что он должен знать, какими качествами он должен обладать?


Может ли он знать в среднем меньше, чем члены его команды разработчиков?

Является ли это скорее административной должностью, где главное способность к управления, а не техническая подкованность?


У меня возникли такие вопросы, потому что всю свою профессиональную жизнь я был скромным самостоятельным фрилансером, теперь меня интересует образ жизни офисов.


Спасибо вам за ваши ответы.
  • Вопрос задан
  • 20101 просмотр
Пригласить эксперта
Ответы на вопрос 8
@totosarg
Проверял? Проверял. Работает? Работает. Не трогай!
Могу поделиться своим американским опытом, я тимлид, у нас в компании 5 команд. Каждый тимлид, в том числе и я должны:

Работать с менеджерами по проектам (которые формулируют задачи в целом)
Распределять работу внутри команды
Следить за своевременным исполнением работы
Проверять качество кода младших разработчиков
Нести ответственность за свою команду (спрашивать будут именно с тимлида)
Составлять тонны всяких отчетов
Тимлид отчитывается перед менеджером по разработке.

Кстати, у нас в компании тимлиды программируют не меньше остальных, а спрос с тимлида больше.
Тимлид не обязан знать больше чем члены его команды, однако он как правило спец в своей области.
Тимлид во многом администратор. Однако, он и программист. Тимлид принимает решения по поводу
тех или иных подходов к решению поставленных задач. Я бы сказал что тимлид это самая первая
ступень на менеджерском пути.
Ответ написан
— Во-первых, он должен уметь аккуратно и вежливо говорить, обязательно, взвешивая каждое слово. Тоже самое в отношении его письменности. Это качество необходимо, как для общения с подчинёнными, так и с начальством и клиентами. Как не смешно, незнание русского языка плохо складывается на бизнесе.

— Во-вторых, он должен уметь организовать работу людей. Это качество личности изначально заложенное у порядка 10% людей, у остальных оно вырабатываться с опытом.

— В-третьих, он должен понимать систему, в которой он работает. Это касается и среды программирования, и области приложения. Например, ведущий программист АБС должен знать не только язык программирования для АБС, но и бухучёт кредитных организаций.

Эти три качества отличают хорошего ведущего программиста от плохого.
Ответ написан
Wott
@Wott
Ведущий, если это не формальность, должен быть существенно лучше как девелопер — лучше и качественнее писать код, разбираться и править код своей команды — на него, как правило сваливают ответственность за управлением кодом в VCS в рамках работы своей команды, фичи или продукта. То есть знания и опыт работы с VCS необходимы.

Также ведущий часто выступает как эксперт в сфере своей компетенции. Пишет/создает дизайн, опеределяет свою часть архитектуры и так далее — смотреть в сторону архитекторов, евангелистов и фоллоувед

Дополнительно ведущий как правило
— определяет/подтверждает сроки и обьемы работ своей команды, участвует в планировании, управлении техническими рисками
— контролирует обьем и качество работы
— занимается рутиной в части управления обьемом работ, качеством, планами — эскалирует, подтверждает, рутит баги, пишет отчеты и так далее — смотреть в сторону работы ПМа, который делегирует часть ответственности на ведущего в рамках порученной его команде части проекта. То есть ведущий — это немного ПМ, совсем немного, но это другое направление нежели кодинг как таковой. По хорошему этому должны учить — курсы как минимум.

Сваливать на ведущего работу линейного менеджера для команды неправильно, но часто ему такое сваливается.

В развитых компаниях ведущий — это единственная позиция в которой совмещаются менеджерские и технические роли. Одни вырастают в дальнейшем в ПМ-ов, другие — в технических экспертов.
Ответ написан
Bambr
@Bambr
Вообще все сильно зависит от компании. Как уже на днях писали, то что человек работал тимлидом в мелкой конторе, не обязательно дает ему достаточные навыки, чтобы претендовать на более простую должность ведущего разработчика в каком-нибудь майкрософте — требования могут быть совершенно разные. Вообще про тимлидов выше уже много написали. Предположим, что у нас иерархия длиннее — не «тимлид -> программер», а например «тимлид -> ведущий программер -> программер -> стажер».
1) С тимлидом все более менее понятно, этот человек в идеале должен обладать навыками менеджера, архитектора, быть техническим экспертом в своей области и авторитетным членом команды. При этом не должен забывать, что он — часть команды, а не главный чувак с подаванами. Этот человек принимает много решений (как самостоятельно, так и принимая мнения/идеи других людей), несет ответственность за команду перед руководством и ответственность перед командой за все происходящее.
2) ведущий — как правило опытный разработчик. Должен уметь самостоятельно принимать решение о способе реализации задачи и думать о последствиях выбора того или иного решения. Четко знает, чем хороший код отличается от плохого, умеет оценивать скорость выполнения кода и потребляемые им ресурсы (типа «этот код вчетверо быстрее вон того, но жрет вдвое больше памяти и увеличивает нагрузку на базу»)
3) программист/кодер — человек, способный самостоятельно закодировать четко описанную задачу (написать функцию с таким-то интерфейсом, которая будет решать такую-то задачу, и прикрутить ее вон туда). Если задача описана недостаточно конкрентно — есть шанс получить херовое решение. С другой стороны, неконкретности в постановке задачи — один из способов заставить кодера думать.
4) стажер — человек, которому для решения даже достаточно четко очерченной несложной задачи потребуется внимание и советы старших. Тут важно отличать идиота и человека без опыта, внимание будет требоваться обоим, но «правильным» стажером является именно второй вариант :)
Ответ написан
taliban
@taliban
php программист
Он должен уметь общаться с людьми
Он должен уметь слушать людей
Он должен быть показательным примером
Он должен понимать что он не разработчик.
Знать он может и меньше, но тогда он должен знать точно кто из его команды на что способен, чтоб удачно делегировать задачи.
Ответ написан
javax
@javax
Software Architect, Java Developer since 1996
Я называюсь «архитектор», по сути — тоже самое.

Знать технологии и следить за технологиями. Регулярно читать профильные сайты и блоги.
Иметь опыт в выборе технологий, архитектуры, в решениях дизайна высокого и низкого уровня.
Быть достаточно доброжелательным, чтобы люди тянулись к нему с вопросами.
Иметь опыт руководства или просто быть додстаточно дальновидным, чтобы смотреть на вещи не только с точки зрения разработчика, но и маркетинга.
Ответ написан
FeNUMe
@FeNUMe
как по мне ведущий разработчик — это тот кто вносит основной вклад в развитие проекта(грубо говоря главный кодер). потому и качества должны быть соответсующие: отличные знания языка программирования и сопутсвующих технологий, умение верно понимать поставленные задачи и подбирать лучшие способы их решения. В общем я согласен с javax.
А вот то что описали люди в комментах више это все про тимлидов и менеджеров проектов.
Ответ написан
Комментировать
2king2
@2king2
Web software developer
А как правильней тогда? «Ведущий инженер-программист» или «Ведущий разработчик»
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы