Правда жизни о разработке программ, на осознание которой у меня ушло больше 9 лет

0
1620
views

Перевод статьи «Cold Hard Truths About Software Engineering I Understood After 9+ Years».

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

Как и у любой работы, у разработки есть свои хорошие, плохие и ужасные стороны.

Сегодня я расскажу о тех ужасных сторонах, с которыми познакомился за девять лет в этой сфере.

Навыки коммуникации имеют большое значение

Многие разработчики путают понятия «программирование» и «разработка программ». Это два разных вида деятельности, хотя и имеющие нечто общее — написание кода.

Программирование — это больше о решении задач при помощи кода. Эта деятельность часто бывает одиночной.

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

Чтобы быть успешным в программировании, нужно хорошо уметь решать задачи при помощи кода. Но для успеха в разработке нужно намного больше. Кодинг здесь не в приоритете. Собственно, он занимает лишь третье место по степени важности:

  1. Бизнес.
  2. Люди.
  3. Написание кода.

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

«И что же делать? Изучать бизнес и людей?»

Хорошая идея. Но есть и получше.

Есть одна вещь, которая существенно улучшит ваши показатели во всех трех областях знаний.

О чем речь? О навыках коммуникации.

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

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

FAANG сильно переоценивают

У компаний FAANG (по первым буквам в названиях тех-гигантов: Facebook, Apple, Amazon, Netflix и Google) есть деньги на маркетинг и высокие зарплаты. Разумеется, разработчики всего мира стремятся устроиться к ним на работу. Работая на «знаменитую» компанию, вы получаете кучу бонусов вроде медицинской страховки и бесплатной еды, а также строчку «Работал в FAANG» в резюме. А такая строчка сильно улучшает ваши карьерные возможности даже после ухода из компании.

Но не все так радужно.

Вот три отрицательных момента, связанных с работой в FAANG, из-за которых я туда не стремлюсь:

1. Вы — маленький винтик в большой машине.

Многие разработчики в своих мечтах представляют, что, устроившись в Google, они будут работать над известными продуктами, вроде YouTube или Google Search. Но часто подобного не происходит.

Велика вероятность, что вы будете работать над маленькой частью какого-нибудь международного продукта Google, которую никто никогда и не увидит (за исключением вашей команды в 10 человек).

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

2. Вам придется ставить работу на первое место в своей жизни.

Я прочел кучу статей, в которых сотрудники FAANG жаловались на переработки и на то, что у них не остается времени на семью. Я понял, что это не мой вариант. Прежде чем подавать заявку в какой-нибудь технологический гигант, почитайте эту статью. Человек, работающий в Apple и зарабатывающий 625 тыс. долларов в год, задается вопросом, что же он на самом деле продал за эти деньги.

3. Корпоративная культура.

Корпоративная культура — это не для всех. Часто это просто крысиные бега, и не важно, в Google или обычном банке.

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

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

Работа в компаниях FAANG имеет свои преимущества, но это не самая лучшая работа, которую только можно себе представить. Прежде чем подавать заявки, взвесьте все за и против.

Всем плевать

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

Он пошел к своему менеджеру, объяснил ситуацию и попросил отгул. Менеджер согласился без лишних вопросов.

Две недели спустя на плановой личной встрече менеджер поставил моему товарищу в вину, что тот тратит рабочее время на личные проблемы. Даже несмотря на то, что тот взял отгул и это было уже по сути его личным временем.

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

А ведь это не единичный случай. Проработав в сфере разработки девять лет, я услышал десятки подобных историй и понял, что большинству компаний на вас плевать. Им плевать, кто вы, что вам нравится, какие идеи вы поддерживаете. Их интересует только одно: можете вы решить их проблему или нет.

Когда мой товарищ рассказал мне свою историю спустя пару недель после встречи с менеджером, я сказал ему следующее (и это изменило его приоритеты на 180 градусов):

«За свою жизнь ты сменишь много рабочих мест. Ты забудешь 90% людей, с которыми работал. Твои менеджеры будут меняться каждые два месяца, и у каждого из них будет свой стиль управления и своя стратегия разработки продукта. Ты познакомишься с десятками разных корпоративных культур, и каждая компания будет считать, что ее культура — самая культурная из всех.

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

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

Старайся работать хорошо, но делай это для себя, а не для кого-то».

Не все, что вы делаете, вы еще и любите

С чем у вас ассоциируется слово «разработчик»?

Вероятно, с написанием кода.

Но для компаний это не первая ассоциация, приходящая на ум. Для них разработчик ассоциируется с фразой «может решить нашу проблему при помощи кода».

Эти ассоциативные ряды похожи, но в то же время они совершенно разные.

Суть в том, что вам платят не за то, что вы пишете код, а за то, что вы решаете проблемы бизнеса при помощи кода. И если вы сможете решать эти проблемы без кода, компании все равно будут вам платить.

Я знаю, что большинство разработчиков где-то внутри себя — программисты. Мы любим писать код. Нам нравится создавать что-то при помощи кода. Но, как я уже сказал, программирование — не то же самое, что разработка.

В разработке ПО бизнес и его проблемы стоят на первом месте. Это не ваш любимый личный проект. Вам придется делать вещи, с которыми вы не согласны, работать с технологиями, которые вы не знаете, общаться с людьми, которые вам не нравятся.

Работа — это РАБОТА.

Приходится привыкать работать каждый день по восемь часов. Приходится приспосабливаться к работе с разными людьми, с разными характерами.

То, чем вы занимаетесь, очень хорошо оплачивается, но это все равно работа.

Наконец, я хочу процитировать золотые слова одного разработчика:

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here