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

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

  • Они используют технологии, полностью устаревшие (10+) лет.
  • Они почти не занимаются CI / CD
  • используемые инструменты работают очень медленно и действительно устарели. Кроме того, они используют его в испорченном виде.
  • Они используют совершенно старые и малопроизводительные языки и фреймворки. Я сомневаюсь, что какой-либо потенциальный работодатель заинтересован в этих технологиях.
  • Кроме того, у них есть такая плохая практика в том, что касается организации файлов программных проектов, упаковки файлов и т. д.
    • У них нет никаких программных пакетов, поэтому весь исходный код представляет собой единый проект. Это создает узкое место везде
    • Они смешивают программное обеспечение с инфраструктурой таким образом, что с этим очень сложно работать и отделять их, если это необходимо.

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

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

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

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

Что вы подразумеваете под своим «карьерным ростом» ? У каждой компании есть устаревшее программное обеспечение, и возможность поддерживать его является такой же частью вашей «карьеры» как разработчика, как и способность использовать новые тенденции в программном обеспечении.
Вы говорили со своим менеджером о своих опасениях? Возможно, они не осознают ошибку, которую совершают, и вы можете стать героем, который покажет им ошибочность их пути.
@IDrinkandIKnowThings, исходя из ситуации, я бы даже посоветовал OP рассмотреть исход этой встречи, чтобы определить, нужно ли им уйти, переход от нового стека к старому - это не способ получить удовлетворение от работы в ИТ, лол.
@Dan Я полагаю, что ОП был заманен на приманку, чтобы присоединиться к его нынешней компании, специально под предлогом, что он будет работать над передовыми технологиями. Иначе он бы не присоединился.
Здравствуйте @Worker, я отредактировал ваш пост, чтобы задать конкретный вопрос и сделать его немного короче. Если я испортил ваше первоначальное намерение, пожалуйста, не стесняйтесь откатывать мои изменения или редактировать их. И добро пожаловать на рабочее место!
@Worker: Вы перечисляете кучу изменений, которые, по вашему мнению, должны быть на месте. Тем не менее, вы не приводите никаких конкретных причин, почему они должны быть включены. Какие конкретно проблемы у вас есть, которые ваши изменения могли бы решить, и насколько велики улучшения, которые принесут включение этих изменений? Если у вас нет ответов на эти вопросы, то ваши рекомендации довольно бессмысленны. Тем более, что у вас нет послужного списка, в котором вы создали свой авторитет до такой степени, что люди склонны «доверять» вашему мнению, а не своему собственному.
Причина для компании - эффективность. То есть они сделают больше дел за меньшее время. т.е. дешевле, так как нужно меньше людей и меньше времени, чтобы сделать вещи.

Ответы (7)

Если вам нужно уйти, уходите.

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

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

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

Я сделал больше, работая с (ассемблированием, JCL и Fortran 77) на мейнфрейме 20-летней давности, чем я когда-либо думал, что это возможно. Есть вещи, которые эти системы позволяют делать, но невозможные в новейших версиях Java, C++ и C#. Это не меняет факта, я по-прежнему создаю инструменты на других языках, в дополнение к этим унаследованным языкам. Я стал лучшим инженером благодаря знакомству с этими унаследованными языками.

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

Похоже, что ОП меньше озабочен событиями на своем новом рабочем месте, чем, возможно, сожалеет о том, что ушел с последнего.
Если ОП быстро увольняется и находит другую работу, он может сгладить трещины в своем резюме. Лично я бы не стал упоминать текущую работу при приеме на новую.
Как человек, который провел всего несколько месяцев на различных должностях в качестве разработчика .NET, поднимаясь по карьерной лестнице, я могу сказать вам, что спрос на ваши навыки будет означать, что они будут игнорировать любые пробелы в карьере. У меня никогда не было никаких проблем, кроме нескольких вопросов о том, почему я работал в течение коротких периодов времени. Мои навыки были великолепны, и это то, что им было нужно. Я работал на ужасных работах и ​​в результате бросил их. Я объяснил, что в некоторых случаях меня нанимали для программирования, но в итоге я стал тестировщиком, щелкая вручную. Кто бы не хотел? Получив навыки, вы можете быть наняты в качестве старшего/ведущего разработчика, а затем внедрять новые технологии.

Я был там. Это более распространено, чем вы думаете.

Приоритетом бизнеса номер один является получение прибыли его владельцами (акционерами и т. д.). Если современные технологии удовлетворяют потребности бизнеса , то зачем им вкладывать средства во что-то модное и новое?

Что касается меня, я начал заниматься ИТ как программист на COBOL (тьфу) в 94-м. Фирма, в которой я работал, была очень успешной брокерской фирмой. Код был написан на языке COBOL68, а некоторым исходникам уже около 25 лет. Это было старо, но работало. Нас попросили обновить версию COBOL вместе с изменениями, необходимыми для Y2K.

Переход на более современную среду произошел из-за давления со стороны бизнеса, а не потому, что я (как разработчик, знающий C, C++ и т. д.) хотел использовать новейшие инструменты.

Так что же делать тем временем? Для меня мой первый проект VB6 заключался в замене перфоратора настольным приложением, которое могло создавать изображения карт (текст ASCII), совместимые с Y2K. Я могу пошутить, что создал перфоратор, совместимый с Y2K (в 1999 году!).

Что еще важнее, я смог использовать что-то «новое» (это было до .NET и более современных вещей), чтобы помочь решить бизнес-задачу. Лучше всего определить, как вы можете помочь бизнесу достичь своих целей, используя новейшие технологии. Говорите деловыми терминами.

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

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

Мне кажется, ты скучаешь по своей предыдущей работе. Вы уверены, что на самом деле это не сожаление о том, что вы уволились и упустили то, над чем работали?

Что я могу сказать потенциальному работодателю? Я провел последние 2 года, работая и чиня устаревшие вещи? Или сделали базовую настройку современных вещей?

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

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

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

Вы бы не акцентировали внимание на технических, а на мягких навыках. Как вы были постоянным защитником. Может быть, проводить семинары или презентации новых инструментов для персонала (или руководства). С анализом рентабельности.

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

Мягкие навыки. Процедуры. Протоколы. Если руководство в вашем углу. Это то, что вы хотели бы подчеркнуть потенциальным новым работодателям/клиентам.

Дело в том, что если я скажу потенциальному работодателю: «Я провел для своих колледжей семинар о технологии X и о том, как она улучшит их рабочий процесс», вес не будет сравниваться с «Я работал над большим проектом каждый день с технологии X в течение двух лет, так что теперь я чувствую себя с ней очень уверенно». Кроме того, я не уверен в обучении. Зачем мне проходить обучение по технологии X от компании, если они не планируют ее использовать? Но да, я понимаю, что вы имеете в виду. Я также думал так же об обучении, преподавании в колледжах и т. д. и т. д.

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

Это зависит от того, хотя, и это чисто предположение с моей стороны. Почему бы вам не сообщить об этом своему руководителю и не попытаться разработать план (если его еще нет — спросите об этом!)?

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

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

Работая как над инженерной, так и над инженерной частью, ваш аргумент, что все «устарело», не является сильным. Звучит как разглагольствование и не подкреплено цифрами. Есть ли хорошее экономическое обоснование для разделения базы кода на несколько репозиториев? Или это просто требует дополнительного обслуживания из-за отсутствия непрерывной интеграции/непрерывного развертывания (CI/CD)? Насколько быстрее вы могли бы выполнить развертывание для клиентов, если бы у вас была CI/CD? Как можно свести к минимуму ошибки в процессе сборки и развертывания?

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

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