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

Если вы посмотрите на требования для большинства старших должностей разработчиков, кажется, что все требования заключаются в том, что вы должны иметь 5+ лет опыта работы с языком X и технологией Y. Поэтому, когда вы видите это, вы начинаете думать, что я пишу отличный код. У меня есть опыт, я должен быть старшим разработчиком.

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

Как вы улучшаете эти другие навыки?

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

Уметь планировать и управлять своими задачами и проектами.

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

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

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

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

Выявить слабые стороны.

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

Практикуйте эмпатию.

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

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

Это займет некоторое время.

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

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

Первоначально опубликовано на https://kevinhicks.software 24 февраля 2021 г.