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

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

Вот так:

Урок 1. Не каждую ошибку нужно исправлять, не каждый рефакторинг нужно проводить

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

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

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

Не стесняйтесь использовать матрицу расстановки приоритетов, которая поможет вам организовать свое влияние, как показано ниже:

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

Урок 2. Ясность важнее сложности

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

Как старший инженер, вы не просто предоставляете код. Вы предлагаете решения. Период.

Вы должны предпочесть ясность сложности, когда:

- написание своего кода

- проектирование вашей архитектуры

- передача части информации

- пропаганда новой технологии

Таким образом, у вашего решения больше шансов оказать влияние и выжить в течение многих лет.

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

Я заметил, что фрагмент кода, который никто не хочет трогать, имеет сложный дизайн и не обязательно самый сложный.

Как сказал Мартин Фаулер:

Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям.

Сделайте своим приоритетом то, что вы предоставляете решения для людей.

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

Это распространенная ловушка, в которую я попал и в которую до сих пор попадают многие мои сверстники.

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

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

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

Урок № 4. Воплощайте принципы GSD (сделай все) и FIO (разберись)

Поздравляем, вы стали старшим инженером и получили значительное повышение. Жизнь хороша, у вас есть сила, чтобы все произошло, и дорога вперед выглядит намного проще. Ну… Не обязательно.

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

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

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

Правило 5. Выясните, что важно для бизнеса, и сделайте это важным для себя

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

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

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

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

Мне повезло, поскольку я говорю, что Achievers поддерживает нас в инновациях и предоставлении решений, и надеюсь, что ваша организация придерживается такого же подхода. Эй, если нет, мы нанимаем!

Заключение

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