Перевод статьи «Should you quit your software developer job? (5 alternatives for struggling developers)».
Сфера разработки — отличная индустрия. Разработчики имеют возможность работать над интересными вещами, сотрудничать с умными людьми со всего света, да еще и получать щедрую зарплату. Компании, занимающиеся разработкой ПО, предлагают много дополнительных «плюшек», быстрое продвижение по карьерной лестнице, гибкий график работы и бюджет на обучение.
Но что делать, если все идет плохо?
Что, если вы работаете над тупиковым проектом? Если все, что вы делаете, это целыми днями исправляете старый код? Да еще и с менеджером не поладили…
Знайте: вы не одиноки.
Несмотря на отличные условия работы в нескольких отдельных компаниях, сфера разработки отличается большой текучкой кадров. Многие разработчики недовольны своей работой.
Но слишком частая смена рабочих мест — это красный флаг для потенциальных работодателей, так что она не должна входить в привычку.
Допустим, вы уже довольно давно заметили, что дела у вас пошли не так, как вам бы хотелось. Пора что-то решать. Но прежде чем отсылать письмо с уведомлением об увольнении, подумайте об альтернативных вариантах.
Чтобы уберечься от скоропалительных решений, задайте себе несколько вопросов:
- Что конкретно меня не устраивает? Команда, менеджер, проект или компания?
- Что изменилось с тех пор, как я сюда пришел? (Т.е. если сперва все было хорошо, а теперь стало плохо).
- Смена работы может помочь справиться с этой проблемой?
Ответив себе на эти вопросы, вы сможете лучше разобраться в своей ситуации, прежде чем принимать решение. После этого надо обдумать возможные варианты действий.
1. Остаться на месте и постараться улучшить собственные навыки разработки
Если вы новичок, причиной ваших неприятностей может быть плохая процедура онбоардинга в компании и недостаток времени на ознакомление с кодовой базой. Хотя, конечно, могут быть и сложности в общении с коллегами.
Но погодите отчаиваться. Возможно, проблемный коллега уже на пути к новой работе и не сегодня-завтра уволится. Может, вы еще сумеете разобраться в старом коде и достичь нужной продуктивности. Или сможете лучше проявить себя на следующем проекте.
А может, дело в том, что у вас просто пока технических навыков не хватает. Это трудно принять, но нужно быть честным с собой.
Для джуниора (и даже мидла) погружение в незнакомую огромную кодовую базу — это стресс. Особенно, если процедура ознакомления была минимальной, требования неясные, а ожидания высокие. Постарайтесь определить, каких именно навыков вам не хватает, и составьте реальный план своего развития как разработчика.
И не забывайте, что если вы еще на испытательном сроке, у вас есть масса времени на ознакомление, потому что требования к вам пока не столь высоки (даже если вам так не кажется).
2. Смена команды или отдела
Это потребует больше времени и сил, хотя в конечном счете такие затраты окупаются. Заново обвыкнуться будет непросто, но у вас, конечно, получится.
Вообще, смена команды — это одна из самых умных вещей, которые можно сделать. Правда, если вы работаете в небольшой компании, такая возможность у вас вряд ли будет. Тем не менее, если компания достаточно велика, всегда есть возможность перейти в другую команду. Может, там используют другой технический стек, а может, работают над чем-то более интересным.
Здесь весь фокус в том, как обойтись без лишних трений при переходе. Как убедить руководство перевести вас? Вы можете это сделать, проявляя видимый интерес к разным проектам и отделам компании.
Начните помогать людям из проекта, в который хотите перейти, а когда выдастся удобная возможность, наберитесь храбрости и поговорите с менеджером. Да, вам может быть неловко, но этот разговор будет куда менее неудобным, чем при уходе из компании.
3. Увольнение (и красивый уход)
Допустим, вы дошли до крайней точки. Вы считаете, что с вами обращались куда хуже, чем вы заслуживали. Старший разработчик мог быть и помягче во время код-ревью. А еще при найме вам обещали бюджет на учебу, но так ни копейки и не дали.
Честно говоря, все это не важно. Значение имеет лишь ваше будущее и профессиональный имидж.
Нужно понимать, что решение об увольнении редко можно откатить назад. Поэтому, решившись уходить, уходите. Даже если вас будут просить остаться (а скорее всего будут).
Начните искать работу еще до уведомления о будущем уходе. Да, порой работа выматывает, и сил на поиски просто не остается. Плюс, если вы целыми днями фиксите баги, тяжело найти время бегать по собеседованиям. В таком случае, конечно, лучше сразу уволиться и искать новую работу более спокойно и обстоятельно, не доводя себя до нервного срыва.
Вопреки советам из умных статей, можно уволиться и не имея на руках нового оффера. Вы — разработчик. Вы найдете себе работу, и не нужно для этого рисковать своим душевным здоровьем.
Итак, чтобы уволиться максимально профессионально:
- поговорите со своим техлидом и сообщите о своем решении уходить
- помогите вашим коллегам разобраться в том, над чем вы работали
- уходите красиво: никакой ругани, сплетен и т. п.
Если к моменту ухода у вас на руках будет оффер другой компании — отлично.
В противном случае пора выходить на рынок труда. Не волнуйтесь: ваши технические навыки и имидж профессионала позволят вам найти новую работу без особых сложностей. Верьте в себя, планируйте свои траты и мыслите стратегически. Нет никакого смысла в том, чтобы прыгать с одного тонущего корабля на другой такой же.
4. Фриланс (только для смелых)
Если чувствуете, что мир корпораций — это не ваше, обеспечьте себя работой сами. Соберите небольшое портфолио, напишите предложение и начните искать клиентов. Разработка ПО — одна из лучших сфер деятельности для фрилансеров. Для выполнения многих задач постоянно требуются профессионалы с узкой специализацией, поэтому компании часто нанимают людей со стороны.
Тут есть два варианта. Вы можете стать контрактором (это, по сути, замаскированное трудоустройство в компании) или фрилансером. Разница между этими вариантами в размере проектов, над которыми вы будете работать, длительности контракта и количестве клиентов.
Лично я предпочитаю фриланс. Да, мне приходится прилагать усилия, чтобы продавать свои услуги, но благодаря узкой специализации все вложенное окупается. А еще при таком раскладе у вас нет зависимости от одного клиента.
Но если у вас нет предсказуемого источника клиентов, вам будет сложно иметь стабильный заработок. Это отпугивает многих разработчиков, особенно тех, кто не слишком любит общаться с людьми.
Днем вы будете пытаться продать свои услуги, а по ночам заниматься налогами и бюрократией. Но награда будет высокой: ваши навыки программирования будут служить людям, а вы будете сами себе хозяином.
5. Собственный продукт
Это, пожалуй, самый сложный вариант из пяти озвученных. Почему? Программы — штука сложная. Пользоваться ими приятно, но для их создания нужны целые команды разработчиков, дизайнеров, менеджеров т. д. Для одного разработчика выполнение задач, которыми обычно занимаются команды, — практически неподъемная задача.
Создав интересный продукт, вам нужно будет вывести его на рынок. Просто закинуть приложение в App Store недостаточно.
Я не большой специалист в этой области. Единственное, что могу посоветовать, — тратить больше времени на общение с потребителями, чем на кодинг. Поговорите с как можно большим числом людей. Опять же, для среднестатистического разработчика это пугающая перспектива.
Также не забывайте, что монетизация требует времени, так что не разбрасывайтесь деньгами.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]