Read the book: «Карьера разработчика. Стафф – круче, чем 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. Лидерские качества похожи на дополнительные опоры, которые помогают стабилизировать массивные постройки
У каждого из трех основополагающих навыков есть набор обязательных умений, и ваши способности в каждом из них могут быть очень разными. Кто-то находится в своей стихии, когда возглавляет и доводит до конца крупные проекты, но ему страшно выбрать одну стратегию из двух. Другие могут тонко чувствовать, куда движется компания и отрасль в целом, но быстро теряют контроль над ситуацией, разбираясь с инцидентом. Третьи умеют повышать квалификацию всех, с кем они работают, но им трудно достичь консенсуса по техническому вопросу. Хорошая новость в том, что все эти умения можно развить, и вы можете стать мастером всех трех основных навыков.
Эта книга разделена на три части.