18+
реклама
18+
Бургер менюБургер меню

Таня Рейли – Карьера разработчика. Стафф – круче, чем senior (страница 2)

18

Раскрывая многогранную структуру карьеры стафф+ разработчика, Таня не пытается дать конкретный набор умений, необходимых на каждом уровне выше сеньора. Она поступает мудрее и сосредоточивает внимание на том, как использовать эти три основных навыка в тех или иных условиях. Эта книга проведет вас через все этапы стафф-разработки от создания технической стратегии до успешного руководства большими проектами, от ментора до идейного вдохновителя на уровне организации и покажет, что можно способствовать успеху компании, выходя за рамки написания кода.

Ваш карьерный рост в руках только одного человека, и этот человек – вы. Определение своего профессионального пути является не только великолепным шансом, но и серьезным испытанием, и чем раньше вы поймете, что все зависит от вас (и небольшой толики удачи), тем быстрее вы научитесь разбираться в возможностях продвижения по карьерной лестнице. Данное руководство разъясняет, какие навыки нужны, чтобы пройти путем стафф+ разработчика, и является необходимым дополнением к библиотеке каждого программиста.

Введение

Кем вы видите себя через пять лет? Этот стандартный вопрос на собеседовании – то же самое, что вопрос «Кем ты хочешь стать, когда вырастешь?», только для взрослых. У него достаточно далекий горизонт планирования и несколько социально приемлемых ответов, которые не предполагают принятия на себя каких-либо обязательств.[5] Но если вы сеньор-разработчик программного обеспечения и хотите продолжать продвигаться по карьерной лестнице, то этот вопрос становится очень серьезным.[6] Как вы думаете, куда вы идете?

Два пути

Представьте, что вы стоите на развилке дороги (рис. В.1) и перед вами простираются два пути. Если вы пойдете по первому, то возьмете себе подчиненных и станете менеджером. Если по второму – станете техническим лидером без подчиненных, таких специалистов часто называют стафф-разработчиками (staff engineer). Если бы вы правда могли увидеть себя через пять лет, то обнаружили бы, что у этих двух вариантов много общего: они ведут почти в одну и ту же сторону, и чем дальше вы идете, тем больше одинаковых навыков они требуют. Но в начале эти пути кажутся очень разными.

Рис. В.1. Развилка дороги

Путь менеджера понятен и хорошо известен. Переход в менеджмент – это самый распространенный и, наверное, даже стандартный карьерный шаг для тех, кто умеет хорошо коммуницировать, оставаться спокойным в критической ситуации и помогать коллегам улучшать их навыки. Скорее всего, вы знаете людей, которые выбрали этот вариант. Вероятно, у вас тоже был начальник, и у вас сложилось мнение о том, что он делал правильно и в чем ошибался. Менеджмент – это хорошо изученная дисциплина. Слова «повышение» и «лидерство» часто ассоциируются с фразой «стать чьим-то начальником», а киоски в аэропортах заполнены книгами с рекомендациями о том, как стать хорошим управленцем. Менеджмент – не самая простая дорога, но вы хотя бы сможете разобраться, как выглядит это путешествие.

Путь стафф-разработчика покрыт туманом. Сейчас многие компании позволяют специалистам расти как сеньор-разработчикам, без подчиненных, но этот «инженерный путь» до сих пор не проторен и на нем почти нет никаких дорожных знаков. Программисты, которые его выбрали, могли никогда не работать рядом со стафф-разработчиками, или эта должность встречалась им так редко, что стала похожа на миф. (Хотя это не так. Стафф-разработке тоже можно научиться.) У каждой компании свои ожидания от этой роли, а критерии для принятия на работу или повышения стафф-разработчиков расплывчаты и не всегда выполнимы.

Зачастую обязанности не становятся понятнее, даже если вас уже приняли на эту должность. Я разговаривала со стафф-разработчиками из разных компаний, которые не до конца понимали, чего от них хотят, а также с техническими менеджерами, которые не знали, как взаимодействовать со стафф-разработчиками.[7] Вся эта неопределенность может стать источником стресса. Если круг ваших обязанностей четко не очерчен, то как узнать, хорошо или плохо вы работаете? И работаете ли вообще?

Даже если требования к вам понятны, то может быть неясно, как им соответствовать. Представьте, что вы только что устроились стафф-разработчиком и слышите, что от вас ожидают инженерного лидерства, принятия решений, выгодных бизнесу, влияния без авторитарности, – но как это сделать? С чего начать?

Основополагающие навыки для стафф-разработки

Мне знакомо это чувство. Я шла к уровню стафф целых 20 лет, которые проработала в отрасли, а теперь я старший принципал-разработчик (senior principal engineer) и одновременно старший директор (senior director) согласно штатному расписанию моей компании. Несмотря на то что я много раз думала перейти на менеджерскую должность, я все время приходила к выводу, что именно «инженерный путь» вдохновляет меня и ради него я каждое утро прихожу на работу. Я хочу, чтобы у меня было время изучать новые технологии и глубже вникать в архитектуру ПО. Вы становитесь лучше в том, на что тратите время, а я хотела стабильно развиваться как технический специалист.[8]

Однако на ранних этапах карьеры мне было трудно разобраться в специфике этой должности. Когда я была «мидлом», я не понимала, зачем нужны уровни выше «сеньора»: что эти люди делают целый день? У меня было недостаточно профессионального опыта, чтобы постичь значимость этой роли. Позже, когда я сама стала стафф-разработчиком, я обнаружила, что нигде не говорится ни о требованиях к нам, ни о навыках, которыми мы должны обладать. Я не могла все это сформулировать, не говоря уже о том, что я не знала, как действовать. Много лет я училась и получала опыт на разных проектах, как успешных, так и неудачных; как у своих замечательных коллег, так и у подчиненных из других компаний. Теперь роль стафф-разработчика обрела смысл, но я бы хотела узнать то, что знаю сейчас, намного раньше.

Если вы раздумываете о карьере стафф-разработчика или уже выбрали ее, добро пожаловать! Эта книга для вас. Если вы работаете со стафф-разработчиками или руководите ими и хотите побольше узнать о специфике их деятельности, для вас здесь тоже найдется много полезного. В следующих девяти главах я хочу поделиться своими знаниями о том, как стать хорошим стафф-разработчиком. Сразу предупреждаю, что я не дам инструкций по каждой теме: круг обязанностей на этой должности обширный и разнообразный, и на многие вопросы можно ответить: «Все зависит от обстоятельств». Но я покажу вам, как ориентироваться в этом разнообразии, выделять главное и не терять связь с другими коллегами-руководителями.

Роль стафф-разработчика включает три основополагающих навыка: панорамного мышления, реализации проектов и повышения квалификации сотрудников, с которыми он работает.

Панорамное мышление

Панорамное мышление – это способность отступить на шаг назад и посмотреть на картину в целом. Это означает учитывать не только текущие события, но и обстоятельства, в которых вы работаете. Это способность мыслить на более долгую перспективу: начинать проекты длиной в несколько лет, создавать ПО, которое будет легко вывести из эксплуатации, или прогнозировать, что понадобится вашей компании через три года.[9]

Реализация проектов

Проекты, с которыми вы столкнетесь на уровне стафф-разработчика, не будут иметь четкого плана и однозначно интерпретируемого результата. Чтобы успешно их реализовать, вам потребуется больше людей, влияния и личного авторитета, а также придется побороться с устоявшимися стереотипами.

Повышение квалификации сотрудников

Чем выше ваша должность, тем больше ответственность за стандарты и квалификацию разработчиков из вашей организации: это может быть ваша команда, коллеги или программисты всей компании или отрасли. В ваши обязанности входит как явное повышение квалификации сотрудников через обучение и наставничество, так и неявное, поскольку младшие специалисты обычно берут пример с более опытных профессионалов.

Ваше содействие успеху организации основано на этих трех навыках, как показано на рис. В.2.

Рис. В.2. Три навыка для роли стафф-разработчика

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

Но одних инженерных способностей недостаточно. Для успеха и роста на уровне стафф+ вам понадобится нечто большее. Чтобы научиться мыслить панорамно, реализовывать крупные проекты и обучать коллег, вам понадобятся следующие «человеческие» навыки:

• коммуникабельность и лидерство;

• преодоление трудностей;

• умение видеть перспективы и результаты своей работы;

• менторство, спонсорство и делегирование;

• умение сформулировать задачу так, чтобы ее могли выполнить специалисты уровнем ниже;