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

Тогда я решил описать практики, которые, как мне кажется, поднимут новоиспеченного инженера-программиста из любителя в профессионала: путь от исправления ошибок в качестве «инженера 1» до руководства крупными проектами в качестве «старшего инженера».

Я твердо верю, что этим навыкам можно научить, но, со своей стороны, я усвоил идеи, которые вы прочтете ниже «Трудный путь», за десять лет в Кремниевой долине. За это десятилетие я кое-что прошел; Я взламывал ядро ​​в хорошо известной фруктовой компании в Купертино в течение шести лет, выбросил все, что знал, ради интереса к распределенным системам, провел год в стартапе, который стал Unicorn и впоследствии был приобретен (AppDynamics), стал менеджер, в конечном итоге руководил более чем 20 людьми в Uber и, в конце концов, вернулся к своим корням как программист. Я надеюсь, что чтение этого списка, каким бы неполным он ни был, спасет вас от некоторых ошибок, которые меня учили; Я очень хотел бы, чтобы кто-нибудь прислал его мне, когда мне было 22 года.

  1. Причина о ценности для бизнеса: причина подобна генеральному директору. Осознайте ценность своей работы для вашей компании и возьмите на себя ответственность за рассуждения о качестве, разнообразии функций и скорости. Ваша задача - не просто писать код; ваша работа - принимать правильные решения и помогать вашей компании добиваться успеха, а для этого нужно понимать, что действительно важно.
  2. Разблокируйте себя: научитесь никогда и никогда не принимать блокировку; найти выход с помощью убеждения, эскалации или технического творчества. Опять же, ваша задача не просто написать код и ждать, пока все остальное встанет на свои места; ваша задача - выяснить, как создать ценность своими усилиями.
  3. Проявите инициативу. Наиболее распространенное заблуждение в области программного обеспечения состоит в том, что есть взрослые, которые руководят всем. Определите миссию своей команды и компании. Не ждите, когда вам скажут; подумайте о том, что нужно делать, и сделайте это или отстаивайте это. Менеджеры зависят от творчества и интеллекта своих инженеров, а не разбираются во всем сами.
  4. Улучшите свое письмо. Четкое техническое описание упрощает совместную работу и значительно улучшает вашу способность убеждать, информировать и обучать. Помните, кто ваша аудитория и что они знают, пишите четко и кратко и почти всегда добавляйте надписи в верхней части.
  5. Управляйте своим проектом. Изучите график зависимостей для своего проекта, убедитесь, что у ключевых элементов есть владельцы, напишите подробные описания планов и статуса и заранее проинформируйте заинтересованные стороны о планах и прогрессе. Практикуйтесь в проведении встреч! Все это позволяет вам браться за гораздо более крупные проекты и является отличной подготовкой к лидерству.
  6. Получите свое образование: развивайте мастерство в своем ремесле. Ваша карьера должна быть путем постоянного роста, но никто другой не будет гарантировать, что вы вырастете. Найдите способ сделать обучение частью своей повседневной жизни (хотя бы 5 минут в день); включитесь в списки рассылки, найдите статьи и книги, которые стоит прочитать, и прочтите руководство от корки до корки по технологиям, с которыми вы работаете. Последовательность - ключ к успеху; выработайте привычки, которые будут способствовать вашему развитию на протяжении всей карьеры.
  7. Овладейте своими инструментами: владение редактором, отладчиком, компилятором, IDE, базой данных, сетевыми инструментами и командами Unix невероятно расширяет возможности и, вероятно, является лучшим способом повысить скорость разработки. Когда вы сталкиваетесь с новой технологией или командой, идите глубже, чем вы думаете; вы узнаете уловки, которые будут вам полезны снова и снова.
  8. Проактивное общение. Регулярное, хорошо организованное общение укрепляет доверие и доброжелательность у сотрудников; обмен знаниями создает атмосферу обучения и товарищества. Делитесь знаниями и устанавливайте регулярную последовательность информирования заинтересованных сторон о целях, ходе и препятствиях проекта. Выступайте с речами и рассуждайте на собраниях.
  9. Найдите возможности для сотрудничества. Хорошее сотрудничество не только увеличивает ваши возможности, но и улучшает видимость вашей организации. Чтобы продвигаться вперед в качестве инженера, вы должны иметь влияние, выходящее за рамки написанного вами кода, а для продвижения по карьерной лестнице в определенной степени необходимо создать личный бренд в вашей компании. Кросс-функциональные проекты и профессиональное уважительное сотрудничество имеют решающее значение для обоих.
  10. Будьте профессиональны и надежны. Считайте себя профессионалом и действуйте как профессионал. Приходите на встречи вовремя и подготовьтесь, тогда обратите внимание. Делайте то, что вы обещаете, и проактивно сообщайте, когда что-то пойдет не так (они будут). Сохраняйте хладнокровие и уважительно выражайте возражения. Проявляйте уважение и признательность своим коллегам. Сведите к минимуму свои жалобы; поднимите, а не опустите людей вокруг вас. Каждый ценит настоящего профессионала; что еще более важно, это правильный образ жизни.