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

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

18

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

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

Когда вы только начали работать программистом, скорее всего, вами руководил менеджер: он выдавал вам задачи и способы их решения. Когда вы стали сеньором, возможно, менеджер подсказывал вам, какие проблемы важно решить в первую очередь, а поиск решения оставлял за вами. На уровнях стафф+ менеджер только делится с вами информацией, но именно вы говорите ему, что важно, а что нет. Сабрина Леандро (Sabrina Leandro), принципал-разработчик в компании Intercom, задается вопросом (https://oreil.ly/FOI1L): «Теперь вы знаете, что должны работать над важными и актуальными проблемами. Но где вы возьмете этот волшебный список отложенных трудоемких задач, которые вы должны выполнить?» И сама отвечает: «Вы же его и напишете!»

Когда вы станете руководителем, вам придется разрываться между различными направлениями деятельности компании. Но вы сами отвечаете за распределение своего времени. Количество часов в неделе ограниченно (см. главу 4). Вы сами выбираете, на что их потратить. Если вас просят выполнить какую-то работу, проявите свою компетентность: оцените, насколько высок приоритет у этой задачи, сколько времени потребуется на выполнение и какую пользу можно извлечь из достигнутого результата (включая возможность наладить дружеские отношения с людьми, попросившими вас о помощи), и решите сами, делать или нет. Если вас о чем-то просит генеральный директор (CEO, Chief Executive Officer) или другой начальник, то вы придаете его просьбе соответствующий вес. Но где самостоятельность, там и ответственность. Если выполнение поручения приведет к росту издержек для бизнеса, вы обязаны предупредить об этом. Не стоит молча наблюдать, как проблема разрастается до все больших масштабов. (Конечно, чтобы вас услышали, нужно заслужить доверие и научиться делать верные прогнозы.)

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

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

Разбираемся в специфике роли стафф-разработчика

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

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

Давайте начнем с позиции стафф-разработчика в должностной структуре компаний.

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

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

Рис. 1.3. Стафф+ разработчики на разных уровнях иерархии. Разработчику А намного проще получить исчерпывающую информацию о бизнес-процессах организации и говорить на уровне директоров, чем разработчику D, даже если разработчики А и D имеют одинаковый уровень профессионализма

Ваш руководитель находится высоко в служебной иерархии

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

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

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

Ваш руководитель находится низко в служебной иерархии

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

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

Если ваш начальник линейный менеджер, он может оказаться менее опытным, чем вы. Это не проблема, но это ограничивает ваши возможности учиться у своего руководителя, и это точно не будет способствовать вашему карьерному росту: ваш начальник просто не сможет вам помочь. Но все это не важно, если ваши потребности в опытном наставнике закрываются другими способами.[18] Например, если должность вашего руководителя недостаточно высокая, постарайтесь найти возможность принимать участие во встречах «через уровень» (skip-level meetings), то есть в совещаниях с начальником вашего начальника.[19] Найдите способ оставаться в курсе всех ключевых событий в вашей организации.

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