10x инженер

Что отличает продуктивного инженера от посредственного? Почему один делает задачу месяц, а другой—пару часов?

Возьмём бота. По моим оценкам, джун управится с задачей за 40 часов, а прокачанный чел—за 4-8, минимимум в 5 раз быстрее. Я посмотрел историю Toggl и нашел задачу очень схожую с квиз-ботом, которую сделал как раз за 4 часа. За счет чего достигается такая скорость?

Первое и самое главное—наличие в голове и сорцах уже готовых решений. Например, у меня во всех Rails проектах используется одна и та же конфигурация CI/CD. Благодаря этому, я могу запустить проект с нуля в продакшн за 10 минут, из которых большая часть будет потрачена на кликанье в Heroku и Cloudflare.

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

Второе, это хорошее владение инструментарием. Например, Rails сам по себе предоставляет средства практически для всех нужд. rails new инициализирует проект, rails g model создает классы моделей и миграций, и так далее, куча команд. То, на что в java+intellij у меня уходит 10 минут, в rails делается за минуту. Такие рутинные блоки накапливаются, в результате давая ощутимый прирост в скорости.

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

Всё это помогает сосредоточиться на делании задачи, а не того, что вокруг.

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

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

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


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred