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

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

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

«Так что, если то, что ты отличный программист и имея многолетний опыт, не квалифицирует себя как старший разработчик, что еще делать?» - спросите вы. Рад, что вы спрашиваете, поэтому мы здесь.

Ключевые требования, чтобы быть старшим разработчиком

Ответственность

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

Наставничество

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

Конечно, речь идет не только о наставничестве других, но и о том, чтобы быть открытыми для наставничества. Никто не знает всего, поэтому всегда есть место для обучения и обмена знаниями со ВСЕМИ другими коллегами, независимо от их положения.

Зачатие

Обдумывание и предоставление технических концепций без единой строчки кода также является очень важной задачей старшего разработчика. Многие люди говорят: «Если я не пишу код, а просто думаю или записываю« концепцию », я очень непродуктивен, я мог бы сделать так много всего / кода за это время!». Даже если это может быть правдой с точки зрения точки зрения кода, большую часть времени эти люди просто не понимают разницы между «продуктивностью» и «занятостью».

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

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

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

Получите более полную картину и задавайте вопросы

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

  • Когда вы вносите определенные изменения, какие еще побочные эффекты это может вызвать в программном обеспечении? Охватывают ли тесты всю логику?
  • Есть ли другие продукты или потребители (например, использующие API, над которым вы работаете), затронутые этим?
  • Кто-нибудь зависит от функции / поведения, которые вы можете изменить / удалить?
  • Вы меняете поведение по умолчанию, и, таким образом, оно влияет на всех, кто его использует?
  • Является ли требование, определенное в заявке, полезным или оно имеет смысл?
  • Есть ли лучший способ реализовать это, чем способ, описанный в заявке?
  • Может ли ваше изменение повлечь за собой очень большие затраты при работе в облачной среде?
  • Является ли ваше изменение масштабируемым и перспективным?

Заключение

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

Короче говоря:

«Старшие разработчики - это не просто лучшие кодовые обезьяны. Это все, кроме программирования ».

Спасибо, что нашли время прочитать мою статью.

Если у вас есть какие-либо вопросы или дополнения, не стесняйтесь использовать раздел комментариев или напишите мне в LinkedIn или Twitter, чтобы связаться со мной 😊