Недавно
Одной из обсуждаемых тем, отозвавшихся лично у меня, был портрет сильного инженера, и в этом контексте были упомянуты две важные черты, ему присущие:
1. Высокий уровень технических скиллов
2. Умение добиваться результата несмотря на сложности, выходящие за рамки написания кода
Первый пункт в целом понятен, хочешь быть классным разработчиком — будь технически подкован, особенно в своём стеке.
Второй пункт куда интереснее. Часто разработка, особенно, если речь идёт про большой продукт, усложняется барьерами, выходящими далеко за пределы написания кода, а значит, нужны и дополнительные навыки.
Например, необходимо умение общаться с людьми из других команд и специальностей, стоящих за продуктом — продакт менеджерами, аналитиками, дизайнерами и так далее, только у этих людей зачастую бывают ответы на вопросы, блокирующие продвижение команды в проекте.
Кроме того, чтобы по-настоящему привносить значимый business/project impact, необходимо самому иметь продуктовый вижн. Как пример, я на работе сталкивался с необходимостью предлагать продукту альтернативный подход к составу MVP проекта для того, чтобы найти компромисс между сроками разработки и функциональностью продукта.
И вся вот эта основная мысль, на мой взгляд, переплетается с одним крайне важным тезисом, который упоминался в этом посте — «You’re not a programmer, you’re a problem solver».
Любая задача — это решение какой-то проблемы, зачастую пользовательской или бизнесовой, и чтобы быть действительно сильным и классным инженером, важно быть многогранным и выходить за рамки базового умения писать код.