Разработка
5 страданий Senior-разработчика
Иногда я хочу быть Ларри. На безлюдном острове посреди океана. Только я и мой ноутбук.
Я уже более десяти лет работаю в одной из крупнейших софтверных компаний в мире. Сменив несколько должностей, я видел многие аспекты бизнеса — от быстрой партизанской разработки до успешных поглощений конкурентов и стартапов.
1. Совещания
Большинство разработчиков, которых я знаю, любят свою работу. Они искренне увлекаются разработкой, написанием кода, созданием программного обеспечения и поддержкой инфраструктуры, необходимой для распространения своего кода в мире.
Это означает, что им часто нужно сосредоточиться на том, что они делают. Должна быть причина популярности наушников с шумоподавлением и AirPods, которыми мы пользуемся в повседневной жизни.
Встречи и концентрация — враги. Я не могу сосчитать, сколько раз меня беспокоил мой календарь, сообщавший мне, что я должен присутствовать на собрании через 15 минут, в то время как моя голова пыталась уместить трудную для понимания концепцию, которую я придумал незадолго до этого. И конечно, я уже знал, что встреча приближается. Когда я проверил свое расписание в понедельник, чтобы получить общее представление о том, сколько времени я действительно мог бы потратить на написание кода на этой неделе, я не сомневался в реальности: мои дни полны встреч.
Чем дольше вы выполняете работу и чем лучше вы и ваши коллеги со временем ее выполняете, тем больше знаний вы приобретете. Ценные знания. Или опыт, как некоторые могут это назвать.
И угадайте, что? Эти знания в первую очередь передаются во время встреч. Что само по себе хорошо, не поймите меня неправильно.
Но когда я нахожусь в потоке и нахожусь в процессе написания лучшего кода, который я когда-либо писал (по крайней мере, так я себя убеждаю, чтобы заснуть), последнее, что я хочу видеть, — это небольшое уведомление поверх моего экрана, которое говорит мне, что настало время.
Время для новой встречи.
2. Большая Машина
Мне очень повезло, что я работаю в чрезвычайно крупной компании. И я очень благодарен за это каждый день.
Это, возможно, приводит к тому, что я довожу эту тему до крайности. Но каждый из нас, так или иначе, является частью чего-то большего в нашей профессиональной жизни. Однако основная цель наших компаний состоит вовсе не в написании крутого кода.
«Но разве вам тоже не нужно спать по ночам?», шепчу я иногда во время одной из уютных встреч.
Цели компании выходят за пределы кода. Нам нужно доставлять товары и услуги. Сделать наших конечных пользователей и клиентов счастливыми. И, в конце концов, возможно, заработать копейки.
И снова это столкновение с Разработчиком. Бывают бесчисленные моменты, когда я знаю — или, по крайней мере, думаю, что знаю, — что решение B будет лучше, чем A, с точки зрения производительности, взаимодействия с пользователем или качества кода. Но человек, стоящий выше по служебной лестнице, или важный клиент решает по другому. По причинам, которые не дают мне спать по ночам.
И вы должны это проглотить. Вы не можете изменить результат, кроме попыток возразить против этого во время — как вы уже догадались — одной из бесчисленных встреч. Вам просто сообщат. С помощью внутреннего сообщения или быстрого конференц-кола. Достаточно честно. Иногда люди прислушиваются к вашим аргументам. Это здорово, потому что это не только повышает вашу самооценку, но и заставляет вас почувствовать себя частью Большой Машины.
Это странная двойственность — желание быть частью большой машины с одной стороны, но быть недовольным от этого с другой.
Большая Машина? Это довольно странная вещь.
3. Качество кода и время доставки
Возможно, вы уже заметили, что мне нравится качественный код. Хороший код — это буквально мой хлеб с маслом. И мы могли бы продолжать и продолжать писать безупречный код (которого, я должен упомянуть, не существует), но я думаю, что большинство из нас согласны с тем, что это по крайней мере то, к чему мы стремимся.
Но угадайте, кто постучится в вашу дверь даже с большей вероятностью, чем уведомления планировщика, появляющиеся в верхней части экрана, когда вы загружаете свою IDE на максимум?
Срок поставки. Дедлайны.
И нетрудно понять, что качество кода и время выполнения проекта — не большие друзья.
Справедливости ради следует отметить, что сроки могут быть сдвинуты вперед из-за того, что код находится не там, где мы хотим, с точки зрения качества. Случается, да. Но бывает и обратное. Код отправляется несмотря на то, что он не соответствует тому качеству, к которому ваша команда стремится в своей повседневной работе.
Сроки давят.
4. Проверка кода
Я сразу скажу честно и сразу признаю, что code review является важной частью каждого отдела разработки. Я знаю. И я согласен.
Но, честно говоря, смотреть на код и решения, которые концептуально сильно отклоняются от утопической странности в моей голове, — не мое любимое занятие. Да, я многому научился. И другие, надеюсь, тоже учатся на моих цифровых каракулях.
Как старшего разработчика, вас постоянно просят внести свой вклад. Во время самого code review, конечно, но также и между ними. У кофемашины, во время встреч, когда чешете спину, и у кофемашины (извините, должен был повторить).
Во многих смыслах это честь. Потому что это означает, что ваши мысли и вклад ценятся и уважаются. Что я очень ценю. И я говорю это без сарказма.
Но когда дело доходит до нашего распорядка и повседневной профессиональной жизни? А на личном уровне? На самом деле я не очень люблю смотреть на чужие работы. До тех пор, пока я не захочу чему-то научиться. Или потому что мне любопытно.
Но ты должен. У тебя нет выбора. Чем старше вы становитесь, тем больше вы смотрите на работы других людей и принимаете в них участие.
Нравится тебе это или нет.
5. Коллеги
Это уже важно для всех нас, независимо от нашего положения. Если вы сами не создали следующее золотое яйцо в своем гараже, вы имеете дело с коллегами.
Некоторые из них потрясающие. Они могут даже стать лучшими друзьями. Но давайте посмотрим правде в глаза и признаем: другие — нет. Такова человеческая природа: что-то нам нравится, что-то не нравится.
Те, которые нам не нравятся, или «с которыми мы тоже не общаемся» (некоторые из моих коллег могут однажды найти эту статью, и они достаточно умны, чтобы понять, что я имею в виду их, поэтому давайте немного смягчим формулировку), могут написать очень красивый и хороший код. А некоторые из моих лучших друзей, возможно, не самые лучшие разработчики из всех, которых я знаю.
Но иметь дело с людьми неизбежно. С коллегами.
И также, как с code review, общение с другими людьми становится все большей частью вашей повседневной жизни с ростом опыта.
Экстраверты среди нас могут обрадоваться, прочитав это.
Я не экстраверт.
Заключение
Среди многих других у меня есть один коллега, и я назову его Ларри.
Он сидит в углу один, изо дня в день. Он очень умен. Намного умнее меня. Это не выглядит так, будто его все бросили — он сам решил, что он один.
Он против всего мира. Ларри против Большой Машины.
Время от времени он появляется на собрании (разумеется, не произнося ни слова на протяжении всего собрания), но большую часть времени он смотрит на экран и печатает на клавиатуре с таким усилием, которого не было просчитано производителем. Когда начальство спрашивает его, над чем он работает, он спокойно и невозмутимо отвечает: «Вы знаете, что я делаю». Не отрываясь от монитора.
Начальство не часто спрашивает, чем он занимается.
Он производит самые невероятные решения и алгоритмы. Одно возвышенное решение за другим.
Иногда я хочу быть Ларри. На безлюдном острове посреди океана. Только я и мой ноутбук.
Спасибо за ваше время!