bannerbanner
Карьера разработчика. Стафф – круче, чем senior
Карьера разработчика. Стафф – круче, чем senior

Полная версия

Карьера разработчика. Стафф – круче, чем senior

Язык: Русский
Год издания: 2022
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 4

Таня Рейли

Карьера разработчика. Стафф – круче, чем senior

Права на издание получены по соглашению с O'Reilly. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет-ресурсы были действующими. В книге возможны упоминания организаций, деятельность которых запрещена на территории Российской Федерации, таких как Meta Platforms Inc., Facebook, Instagram и др.


Authorized Russian translation of the English edition of The Staff Engineer's Path

© 2022 Tanya Reilly.

This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

© Перевод на русский язык ТОО «Спринт Бук», 2025

© Издание на русском языке, оформление ТОО «Спринт Бук», 2025

Отзывы о книге «Карьера разработчика. Стафф – круче, чем senior»

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

Сара Уэлс, независимый консультант и автор книг, бывший принципал-разработчик Financial Times

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

Я буду часто цитировать эту книгу.

Титус Винтерс, принципал-разработчик Google и соавтор книги «Software Engineering at Google»[1]

Таня – идеальный автор для этого исключительного мануала, который поможет сориентироваться в непонятной роли стафф+ разработчика. В каждой главе она делится своим огромным практическим опытом, я многому у нее научился.

Уилл Ларсон, технический директор, Calm, автор книги «Staff Engineer»

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

Сильвия Ботрос, принципал-разработчик и соавтор 4-го издания книги «High Performance MySQL»[2]

Когда вы почти достигли вершины карьеры индивидуального контрибьютора, вы, образно говоря, получаете компас и некоторый пункт назначения. Как туда добраться – ваша проблема. Как привести туда всех остальных – общая. Таня предлагает надежные инструкции с картами, которые помогут вам провести людей из пункта А в пункт Б. Эта книга станет прочной опорой для тех индивидуальных контрибьюторов, кто только начинает свой путь на старших уровнях, и откроет много нового для тех, кто уже имеет большой опыт. Стафф-разработчики, познайте себя.

Изар Тарандач, принципал-архитектор по безопасности и соавтор книги «Threat Modeling»

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

Ниалл Ричард Мерфи, учредитель, генеральный директор, соавтор книг «Reliable Machine Learning» и «Site Reliability Engineering»[3]

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

Кэти Сайлор-Миллер, старший стафф-архитектор по фронтенду, Etsy

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

Гергели Орош, автор книги «The Pragmatic Engineer»

О научном редакторе русского издания

Евгений Войнов – стафф-разработчик в компании КРОК, 6 лет руководил группой Java-разработчиков, 3 года был техническим менеджером. Имеет более 15 лет опыта разработки систем для государственного и коммерческого сектора, регулярно участвует в трансформации процессов департамента. Ментор разработчиков и будущих руководителей, преподаватель в учебных программах BrainZ by CROC для студентов и школьников.

От издательства

Мы выражаем огромную благодарность компании КРОК за помощь в работе над русскоязычным изданием книги и их вклад в повышение качества переводной литературы.

Ваши замечания, предложения, вопросы отправляйте по адресу

comp@sprintbook.kz

(издательство «SprintBook», компьютерная редакция).

Мы будем рады узнать ваше мнение!

Предисловие

Когда в 2016 году я писала книгу «The Manager’s Path»[4], передо мной стояло много задач. Я хотела поделиться уроками, которые получила, развиваясь как менеджер. Я хотела показать тем, кто стремится стать менеджером, на что похожа эта работа. Я хотела, чтобы отрасль признала, что мы должны предъявлять больше требований к менеджерам и что менеджеры, которых мы сейчас продвигаем, часто не могут качественно выполнять свою работу, потому что они не умеют правильно распределить свое внимание между потребностями подчиненных, контролем за техническими процессами, продуктом и развитием собственных инженерных навыков. Если кратко, то я хотела изменить традиции, сложившиеся в технической отрасли: во-первых, менеджмент должен восприниматься серьезно, так как играет критически важную роль, во-вторых, менеджмент не должен считаться возможностью по умолчанию для амбициозных разработчиков, которые хотят сделать карьеру.

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

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

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

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

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

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

Камиль Фурнье, автор книги «The Manager’s Path», редактор книги «97 Things Every Engineering Manager Should Know», управляющий директор, член правления JP Morgan Chase ACM Queue, Нью-Йорк, сентябрь 2022 г.

Введение

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

Два пути

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


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


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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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


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


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

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

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

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

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

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

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

• умение действовать как лидер, независимо от того, чувствуете вы себя таковым или нет.[10]

Эти навыки похожи на дополнительные опоры, которые можно увидеть в готических соборах (как на рис. В.3): они не заменяют стены – вашу инженерную квалификацию, – но помогают построить более высокое, величественное и впечатляющее здание.


Рис. В.3. Лидерские качества похожи на дополнительные опоры, которые помогают стабилизировать массивные постройки


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

Эта книга разделена на три части.

Часть I. Панорамное мышление

В первой части мы разберем, как получить широкий панорамный вид на свою работу. Глава 1 начнется с глобальных вопросов о вашей роли. Чего от вас ожидают? Зачем нужны стафф-разработчики? В главе 2 мы еще уменьшим масштаб и получим некоторую перспективу. Мы посмотрим на контекст вашей работы, сориентируемся в организации и выясним, каковы ваши цели. Наконец, в главе 3 мы рассмотрим, как дополнить панорамную картину с помощью технической концепции и стратегии.

Часть II. Реализация проектов

Вторая часть – тактическая, она переходит к практическим советам по управлению проектами и устранению проблем. В главе 4 мы рассмотрим, как выбрать задачи, над которыми стоит работать: я поделюсь техниками, которые помогут определить, на что потратить время, как управлять своей жизненной энергией и «инвестировать» оказываемое вам доверие и накопленный вами социальный капитал так, чтобы не растерять их. В главе 5 я расскажу, как управлять проектами, затрагивающими несколько команд или организаций: как создать условия для успеха, принимать решения и поддерживать эффективную передачу информации. В главе 6 мы рассмотрим, как справиться с трудностями на вашем пути, отпраздновать успешное завершение проекта или провести ретроспективу (и при этом праздновать!), если проект отменился и необходимо завершить его без негативных последствий.

Часть III. Повышение квалификации

В третьей части мы рассмотрим, как поднять уровень квалификации в вашей организации. Из главы 7 вы узнаете, как развивать навыки каждого сотрудника, подавая личный пример хорошей разработки, как учиться, не скрывая этого, и как создать психологически благоприятную корпоративную культуру. Мы также рассмотрим, как сохранять выдержку и не терять контроль над ситуацией во время инцидентов и технических разногласий. В главе 8 я расскажу о более осознанных формах развития навыков ваших коллег, таких как обучение, коучинг, ревью архитектуры и кода, внесение изменений в культуру разработки. Наконец, в главе 9 мы рассмотрим, как повысить свой собственный уровень: как обеспечить себе профессиональный рост и позаботиться о своей карьере. Куда вы пойдете после этой должности? Я покажу вам несколько вариантов.

Прежде чем мы отправимся дальше, я хочу предупредить: эта книга о том, как остаться на инженерном пути. Но это не учебник для инженеров. Как я уже сказала, чтобы стать стафф-разработчиком, вам нужен крепкий технический фундамент. Эта книга не поможет его создать. Техническое мастерство зависит от предметной области, и если вы здесь, то я предполагаю, что у вас уже есть – или вы собираетесь приобрести – все специальные навыки, которые необходимы, чтобы стать одним из самых старших разработчиков в сфере ваших профессиональных интересов. Что бы вы ни понимали под словом «технический»: программирование, разработку архитектуры, UX-дизайн, моделирование данных, анализ уязвимостей или что-то другое, – почти в каждой предметной области есть множество книг, веб-сайтов и курсов, которые вас поддержат.

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

На страницу:
1 из 4