Как стать компьютерным инженером уровень 20х (вместо 10х)

Мы все слышали о фразе 10x для разработчиков, не так ли? Знаете ли вы, что в оригинальном исследовании 1960-х годов фактически упоминается 20-кратная разница между великим инженером и плохим? Он сравнил начальное время кодирования, время отладки, скорость выполнения программы, размер программы и прочее.

Довольно тщательное исследование, но определенно с некоторыми недостатками (эй, это были 60-е). Общее согласие — разница в 10 раз. Лично я считаю, что для действительно для великих инженеров разница может быть даже в 20 раз, и я объясню почему в этой статье.
Обратите внимание, что эта разница становится еще более важной, если ваш продукт оказывается успешным и масштабируемым.

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

Уже есть много статей, в которых перечислены атрибуты 10-кратного инженера, но я все же сначала дам вам свое мнение об этом, так как вы не можете говорить о 20-кратном «разработчике-единороге» (так их назвала бы моя дочь, потому, что ей нравятся единороги), но вы можете назвать их исключительными без согласования этих атрибутов.
Затем мы поговорим о дополнительных навыках и атрибутах для «разработчика-единорога».

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

10x атрибутов компьютерного инженера

1) Простой, очевидный, поддерживаемый и масштабируемый код

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

2) Понимание проблемы под рукой

Инженеры 10x решают проблему под рукой, а не причудливую обобщенную версию. Вы можете подумать, что это будет идти рука об руку с фокусом. Но этот момент часто недооценивают.

3) Способность понимать необходимость прагматизма и перфекционизма

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

4) Смирение, настойчивость и самосовершенствование

Они знают, что не знают, но все равно пробуют. Затем они повторяют свои попытки, пока не достигнут этого. 10x компьютерные инженеры находятся в режиме постоянного обучения. Они изучают языки, инструменты, библиотеки, стили программирования. У людей нет «врожденного дара программирования». Их талант проистекает из этого непрерывного роста мышления, которым они обладают. Все их знания дают им разные перспективы.

5) Не против любых задач

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

6) Правильный выбор инструмента или методологии для проекта

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

7) Здоровый скептицизм

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

8) Отлично справляется со временем и задачами

10x компьютерные инженеры очень надежны; у них сильная рабочая этика и они вовремя появляются на собраниях. Их понимание управления временем на самом деле помогает им и в оценках выпуска.

9) Отличные коммуникативные навыки

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

10) Позитивное отношение

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

20x атрибуты «компьютерного инженера-единорога»

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

Обратите внимание, что количество атрибутов продолжается, а не начинается заново, потому что у 20-кратного инженера есть все первые 10 атрибутов 10-кратного инженера плюс еще несколько!

11) Отсутствие предвзятости

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

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

12) Больше чем командный игрок

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

13) Отличники в управлении клиентом / боссом

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

14) Марафон, а не спринт

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

15) Большая перспектива на продукт

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

16) Лучшее понимание бизнес-контекста

20x компьютерные инженеры могут понять более важные факторы, влияющие на разработку программного обеспечения, такие как уникальные потребности клиентов, дизайн UI / UX, бюджетирование и многое другое. Это гарантирует, что они могут принимать правильные решения на каждом этапе. Они могут также изучать бизнес-область, в которой они работают, чтобы они могли четко выражать концепции домена в коде и соединять их вместе для решения значимых проблем.

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

Дайте мне знать, что вы думаете! Хотелось бы услышать ваши мысли об этом.

Добавить комментарий

Ваш e-mail не будет опубликован.

© 2019 Рог единорога ·  Дизайн и техподдержка: Goodwinpress.ru