ловушка хранимки...
ловушка хранимки...

Привет, Хабр! В этой статье я хочу поделиться личным опытом попадания в ловушку неинтересной работы. Поначалу меня интересовали только деньги, и я подходил к работе с меркантильной точки зрения. Мне было неважно, чем именно заниматься, хоть в блокноте писать WCF сервисы.

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

Как поймать рыбу

Обычно все начинается с поиска работы, когда вы отдаете предпочтение исключительно сумме оффера, не обращая внимания на другие аспекты предлагаемой работы. Хотя эти аспекты на самом деле являются решающими: да, они в данный момент не дадут вам лучшее финансовое предложение, но в перспективе, отработав 1–2 года в такой команде, вы сможете претендовать на большие деньги в этой компании или в другой.

Допустим, у нас есть несколько компаний, от которых мы получили офферы:

IT Digital Kal — молодая компания с достаточно строгим отбором кандидатов, отлаженными бизнес-процессами, минимальной бюрократией и современным стеком технологий. Утро в такой компании начинается с соевого латте, чтобы хватило сил продуктивно работать до следующего утра. Ведь если не показывать высокую производительность, вы начнете отставать от коллег и рискуете не пройти следующее ревью.

Потенциальный график работы в IT Digital Kal
Потенциальный график работы в IT Digital Kal

Kal Bank Fintech — солидная организация, являющаяся банком, которая работает на рынке уже много лет. Она имеет максимальный уровень бюрократии; для безопасности вся разработка ведется на удаленной машине, стек технологий устаревший с перспективой перехода на современный в течение 10 лет. Утро начинается с заведения заявки на доступ или установки дополнительного ПО для работы, а весь последующий день нужно создавать видимость работы и ожидать, когда выдадут доступы.

На первый взгляд обе работы не являются работами мечты. Однако, чаще всего устоявшиеся финтех-компании обладают большими финансами, чем компании, специализирующиеся на разработке и в среднем предлагают 10–20% денег больше. Сами собеседования в финтех-компании достаточно простые, которые очень сильно располагают кандидатов к себе.

А ведь если задуматься, в чем подвох? А он есть и я поделюсь этим далее, ведь не просто так они закидывают удочку с такими сладкими условиями.

А ведь на самом деле хотят заставить править хранимки...
А ведь на самом деле хотят заставить править хранимки...

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

И вот рыба поймана и уже заполняет заявки на доступы.

В чем заключается ловушка?

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

И вот вы уже влились в работу, получили все необходимые доступы и начальные компетенции для выполнения задач. Вы отправляете запрос, что готовы взять какую-нибудь задачу. И что же это будет за задача? Правильно, на проде есть баг в хранимой процедуре, которая на вход принимает XML с миллиардом параметров и параллельно вызывает еще десяток других хранимых процедур, а сама вызывается из другой хранимой процедуры. Документации нет, а вся информация о ее работе и тестировании содержится у разных людей в голове по крупицам.

а на самом деле все-таки колпак потек...
а на самом деле все-таки колпак потек...

На этом этапе начинаются проблемы. А как делать? Что делать? Как вообще оценить данную задачу, если непонятно, что делать? И начинается путь с неизвестным сроком завершения. А главное, знания, которые вы получите, будут бесполезны, ведь навык ковыряния в куче кала не оценивают на собеседованиях.

Но вы все-таки молодец и справились с этой задачей, думая, что все сложности позади. Однако, еще есть релизный процесс, где изменения в хранимых процедурах нужно согласовывать. Затем отправлять их на ревью релиз-менеджерам, потом заполнять заявку на релиз и выбирать, в какой релиз будете включаться. И на каждом из этапов все будет затягиваться, а в релиз вообще могут включить, через 3 месяца, когда мердж реквест уже будет мертв и тебе выполняя следующие задачи, будет необходимо всегда держать эту в голове.

Параллельно вам дают ковыряться в другом легаси, например, на WCF, или добавлять что-нибудь во внутреннюю систему на ASPX. Во всем этом необходимо будет разбираться, но никакого профессионального роста вы от этого не получите.

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

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

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

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

2 личности общаются внутри...
2 личности общаются внутри...

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

Как выбраться?

Совет от автора
Совет от автора

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

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

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

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

Заключение

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

Спасибо за внимание!

Если понравилось, вот мой телеграмм канал. Там я делюсь анонсами статей, делюсь своими размышлениями по разным моментам в айти, также рассказываю о своем изучении Golang.

Комментарии (33)


  1. Mayurifag
    16.07.2024 14:31
    +5

    Вы не считаете, что в той другой компании вас тоже в теории могло ждать что-тo, что аналогично бы вас «сгубило»?

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


    1. ItwithMisha Автор
      16.07.2024 14:31

      Да мне кажется на счет другой компании никто не застрахован)

      Тут как раз тоже нужно помнить, что испытательный срок работает в обе стороны и нужно прицениться)


  1. whickma
    16.07.2024 14:31
    +5

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


    1. ItwithMisha Автор
      16.07.2024 14:31

      По-этому претенденту нужно все уточнять, вдруг где проговориться кто-то)


    1. dpvpro
      16.07.2024 14:31
      +1

      Интересно, как это работает на практике? Претендент решил закруглиться на испытательном сроке. Как он это будет объяснять в следующей компании? С точки зрения следующей компании претендент не прошел испытательный срок...


      1. DMGarikk
        16.07.2024 14:31

        надо адекватно объяснить почему он так быстро закруглился

        без всякого "мне не понравилось, но изза НДА не скажу что"


      1. event1
        16.07.2024 14:31

        А зачем это объяснять. Просто не пишите в резюме. У меня такая первая работа была. На полгода. Второй работодатель был единственный, кто про неё знал. Остальные считали второго первым.


        1. northrop
          16.07.2024 14:31

          Второй работодатель был единственный, кто про неё знал. Остальные считали второго первым.

          Тут главное чтобы в background check такое не всплыло.


        1. dpvpro
          16.07.2024 14:31

          В резюме то можно не указать, но в трудовой то будет фигурировать.


      1. MadeByFather
        16.07.2024 14:31

        Прямо и объяснит, что не понравились задачи, команда, зарплата, офис или что-то еще. Если для другой компании не валиден поинт "не захотелось там работать", то она тоже пропускается и ищется следующая адекватная


  1. namikiri
    16.07.2024 14:31
    +7

    Автора, похоже, больно укусила хранимка.


    1. ItwithMisha Автор
      16.07.2024 14:31

      Очень больно) Особенно, когда входной параметр XML, до сих пор в дрожь бросает)


      1. DMGarikk
        16.07.2024 14:31
        +1

        а вы программист на каком языке?

        я сталкивался с проектами (реальными энтерпрайзными продуктами-монстрами) на PL/SQL где буквально все - это хранимая процедура, тут чето мне кажется вы просто не в своем стеке находитесь раз вам приходится такое поддерживать


        1. ItwithMisha Автор
          16.07.2024 14:31

          Я работаю бекендером на .NET и в легаси проектах часто именно из кода дергаются ХП, как раз.


          1. DMGarikk
            16.07.2024 14:31

            наличие хранимок в БД это не показатель легаси проекта, это показатель особого мышления архитектора проекта

            потому что массовое использование хранимок должно иметь серьезное обоснование и иногда такое обоснование есть и даже в современных проектах


  1. Dmitri-D
    16.07.2024 14:31
    +4

    Вся жизнь - сплошной компромис. Или себя потеряешь, или коня, как написано на том камне. Но я не вижу больших проблем с выбором компаний, которые могут платить большую зарплату. Я вижу только проблему с процессами. И первые компании вовсе не обязательно имеют плохие процессы, скорее наоборот.
    С другой стороны - а что-то было сделано чтобы разобраться почему процессы именно такие? Чтобы было сделано чтобы люди писали самоочевидный код (aka чистый код) и документировали там, где он не самоочевиден? Подозреваю, судя по описанию, там CI/CD не ночевал. А почему? Небось и покрытие тестами околонулевое? Ну и т.п.
    В обязанности хорошего программиста на верхней части вилки обычно входит и установление / улучшение процессов.


    1. Newbilius
      16.07.2024 14:31
      +2

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


  1. iverzin
    16.07.2024 14:31
    +1

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


  1. artemfisher
    16.07.2024 14:31
    +2

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

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

    Программирование - это всё же ремесло. И здесь рутина как и в других сферах.

    Да даже свои проекты иногда пилить в лом, когда понимаешь что будешь большую часть функционала делать, которую уже делал не раз. А интерес в том, чтобы пилить что-то новое.


  1. andi123
    16.07.2024 14:31
    +2

    Одномерность дала сбой ))))

    Извините, не смог пройти мимо.


  1. manyakRus
    16.07.2024 14:31
    +3

    Всё это можно было описать коротко: "Не люблю чужой говнокод".

    Чтобы пилить что-то новое надо стереть старый чужой код и написать заново :-)


    1. vvbob
      16.07.2024 14:31
      +2

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

      Увы, но любые большие программные системы склонны к скатыванию в говнокод со временем, даже те что поначалу вроде бы были и неплохи.


  1. radioxoma
    16.07.2024 14:31
    +4

    навык ковыряния в куче кала не оценивают на собеседованиях.

    Обычно в резюме пишут "умение разбираться в чужом коде".


  1. Arm79
    16.07.2024 14:31
    +5

    Всегда есть что сделать

    1) Нет документации? Так начинай вести

    2) Нет ci/cd? Для финтеха сомнительно, ну ладно. Нужно выбивать. У меня в лохматые годы тоже не было. Ничего, не обломался, поднял tfs, Тим сити. Они бесплатные. Потом посмотрели, подняли на уровень управления

    3) Работа не повышает квалификацию? Есть курсы, конференции, разработка пет-проектов.

    Собственно, enterprise-программирование - это не искусство, а, в первую очередь, ремесло. Нужно искусство - смотри стартапы или отделы r&d


    1. ItwithMisha Автор
      16.07.2024 14:31

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

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

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


  1. Voffka39
    16.07.2024 14:31

    Господи, как же надоел этот всеобщий плач про новые технологии. Нет в них ничего нового. Скучно в банке, но хочешь кубер-докер, ну возьми и запили свой проект со всеми рюшками. Еще и денег может заработаешь.

    Причем народ реально не понимает, СКОЛЬКО стоит модное "ой, сейчас быстро перепишем все на новых супер-пупер-технологиях".