Каковы преимущества для развития с устаревшими технологиями? [закрыто]


28

Немного предыстории :

Я работаю в большой компании, использую Windows XP и кодирую Winforms в VB6 / VB.Net и некоторые веб-формы в VB.Net (95% кода обслуживания). У меня есть один экран с диагональю 4: 3 и 19 ". Более современная версия Windows скоро не появится, и ни одна из них не работает по звукам!

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

У меня гораздо больше современного опыта работы с предыдущими работами, как с более современными фреймворками, так и с другими языками программирования, и когда я встречаюсь с друзьями-разработчиками из других компаний, я слышу только о том, как они используют новейшую ASP ASP Framework, или Vagrant / Ruby on Rails / etc и у меня зеленые глаза!

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

Вопрос :

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


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

2
Вы можете притворяться, что строите ракеты или работаете над управлением воздушным движением. Эти поля обычно используют действительно старую технологию, поскольку к этому моменту все ошибки либо исправлены, либо известны. Но даже инженеры по управлению ракетами или воздушным движением не будут касаться VB6 с 10-футовым полюсом. :)
ДХМ

3
Безопасность работы? ....
Роберт Харви

2
Я использовал для написания кода в Delphi более десяти лет назад. Я наслаждался этим, это был хороший язык, лучше, чем VB yardy yardy, но, казалось, дела шли не так. Я прыгнул. Но по сей день рабочие места Delphi продолжают пузыриться, и они платят хорошие деньги! Черт возьми.
MrWhite

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

Ответы:


26

все, что я слышу о том, как они используют последнюю платформу ASP MVC или Vagrant / Ruby on Rails / и т.д., и я получаю зеленые глаза!

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

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

Есть места, где старые технологии должны быть заменены чем-то новым, но обычно это просто обновления, а не оптовые замены. Например, VB6 обновляется до VB.NET, Visual Studio 2002 обновляется до Visual Studio 2012. Любой, кто проходит полное переписывание, всегда находит, что с новыми инструментами дела обстоят не так фантастично. (именно поэтому Джоэл, среди прочего, говорит, что переписать это всегда неправильный ответ)

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


1
VB6 был не более обновлен до VB.NET, чем DOS был обновлен до Windows NT. FWIW.
DougM

21

У компании действительно есть ряд преимуществ, связанных с устаревшими технологиями:

  1. Старые вещи иногда не работают с новыми

    Компания может инвестировать большие суммы в системы, которые просто не работают с более новыми языками или операционными системами. Классическим примером является множество веб-приложений для интрасети, которые совместимы только с IE6 и IE6. Выбор между версией Windows XP + IE6 и отказом от работающей системы и вложением денег в новую не очевиден.

  2. Перемены ради перемен не мудрый выбор

    Пример: многие банки продолжают поддерживать приложения, изначально написанные на языке COBOL. Когда все работает, почему бизнес решает переписать его на другом языке, учитывая стоимость переписывания крупной системы, критически важной для бизнеса, а также риск ошибиться, привнося кучу новых ошибок? (Одна из причин описана ниже)

  3. Лицензии стоят дорого

    Допустим, у компании есть несколько сотен рабочих столов, которые используют Windows XP. Они хотят перейти на Windows 8. Сколько стоит одна лицензия на Windows 8 Enterprise? Что если мы умножим эту стоимость на количество машин?

    Это становится еще хуже для серверов. Одна лицензия на Oracle или Microsoft SQL Server стоит около 30 000–40 000 долл. Если компания имеет, скажем, пятьдесят серверов баз данных, она быстро становится очень дорогой даже при корпоративном лицензировании.

    В моей компании мы застряли с Visual Studio 2010. Мы страдаем от ее многочисленных ошибок, и мы знаем, что они никогда не будут устранены, поскольку Microsoft отказалась от этой версии. Но 13 000 долларов (учитывая, что нам нужна Ultimate версия из-за ее уникальных функций, недоступных в других версиях), слишком велико, чтобы мы могли обновить ее до Visual Studio 2013.

Сказав это, есть также важные недостатки.

  1. Унаследованные вещи не привлекают новых талантов

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

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

  2. Старый не значит безопасный

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

  3. Наследие вирусное

    Несовместимость между унаследованными и более новыми системами означает, что часто, когда вы используете старый продукт, язык или инфраструктуру, вы не сможете выполнить обновление где-либо еще. Старое приложение интрасети, которое работает только в IE6, приводит к Windows XP на всех рабочих столах, что означает, что вы не можете перейти на новую версию Active Directory, а это означает, что вы не можете использовать новые приложения, для которых требуется самая последняя версия Active Directory, и скоро.

  4. производительность

    Новые версии продуктов приносят новые функции, которые иногда повышают производительность. Задача, которая займет один час с Visual Basic 6.0, может быть выполнена менее чем за час с Visual Studio 2013, потому что Visual Studio 2013 и .NET Framework 4.5 предоставляют улучшенные Intellisense, Entity Framework и тысячи других вещей, которые уменьшают объем кода, который у вас есть. писать, увеличивать скорость написания кода и снижать риск появления ошибок.

    Если пример недостаточно ясен, вот еще один. В Windows 3.1 системные администраторы настраивали каждую машину вручную, если не было какой-то автоматизации, о которой я не знал). Сегодня они будут использовать PXE и ​​Windows Assessment and Deployment Kit для автоматического развертывания в течение нескольких минут новой ОС и программного обеспечения на тысячах компьютеров.

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


Используйте Linux и Eclipse или MonoDevelop. Стоимость лицензии: $ 0.
Деми

7

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

Я могу представить себе три преимущества работы с устаревшей замененной технологией:

  1. Знакомство с самой старой технологией

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

  2. Возможность попрактиковаться в изучении чего-то нового

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

  3. Более глубокое понимание того, почему они были заменены

    Трудно объяснить непрограммисту HR или Executive, почему VB.NET или C # лучше VB6, если вы не знакомы с самой технологией. И если вы не совсем знакомы с последним, изучение того, что они заменили, может помочь понять, почему замены были написаны так, как они были.


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

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


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

Иногда это так, но если программное обеспечение «зарабатывает» деньги, а не «экономит» деньги, кто-то все равно оказывает своим клиентам медвежью услугу.
DougM

Программное обеспечение может сэкономить деньги для клиента и сделать это для компании, которая его разрабатывает. Не все это в домашнем приложении. Черт, программное обеспечение также может зарабатывать деньги для клиента. Посмотрите на Visual Studio. Он приносит деньги как продавцу (Microsoft), так и покупателю (дома программного обеспечения).
Стивен

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

1
Я бы не согласился. Как разработчик, я хочу всегда использовать новейшие технологии. Но с точки зрения пользователя, они могут получить большую выгоду от старой программы VB6, которая поддерживается. Это может быть неэкономично или практично, чтобы перестроить его с нуля, но это может стоить поддерживать (это особенно верно для специализированного программного обеспечения, которое имеет очень небольшую нишу на рынке).
Стивен

6

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

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

Чтобы сохранить ваши навыки и получить за это деньги, я бы посоветовал взглянуть на ваши настройки сборки, тестирования и развертывания. Это может быть возможностью начать внедрение некоторых более новых технологий, используя rake, powershell и / или nant для сборки и развертывания. Если у вас нет юнит-тестов, начните добавлять их.

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

Я не буду давать какие-либо советы по карьере, я уверен, что другие охватили основы.


6

Для пожилых людей продвижение к концу своей профессиональной карьеры, продажа глубоких знаний о старых технологиях компании, которая все еще использует старые вещи, может быть финансово привлекательным . Например, если у вас есть опыт в PDP-11, вы можете переехать в Канаду .

Однако в начале вашей карьеры я бы порекомендовал двигаться дальше.


3

Есть несколько преимуществ:

1) Будет много ресурсов, доступных для технологий, если они не были неясными и широко не использовались.

2) Надеюсь, что другие в компании будут хорошо разбираться в технологиях, поскольку они не изменились.

3) Если новых разработок не много, вы можете поработать над рефакторингом старого кода, чтобы он стал чище или быстрее. Обратите внимание, что тип магазина, который сохраняет эту старую технологию, вероятно, будет против изменения любого кода, который «работает», несмотря на то, насколько отвратительным он может быть.


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

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

3

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

У нас все еще есть большая база кода Visual Studio 6, и, похоже, она не будет заменена в ближайшее время.

Тем не менее, мы продвигаемся вперед с новыми технологиями, где мы можем для новых разработок.

Как я думаю, вы намекаете на то, что можно написать VB.NET, который довольно хорошо взаимодействует с унаследованным кодом VB6, используя COM.

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

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

Порт программного обеспечения

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

Обновление Visual Studio

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

Функциональная миграция

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

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

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


1

Это может быть не совсем то, что вы спрашиваете, но у меня есть несколько предложений:

Я думаю, что наибольшая выгода - это то, что вы можете предложить своему работодателю с точки зрения опыта, когда они в конечном итоге поймут, что им нужно мигрировать. В этом году XP будет прекращена , поэтому я думаю, что ваш ИТ-отдел уже рассматривает стратегию миграции. (Если нет, подготовьте свое резюме, потому что компания не будет вокруг долго.)

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

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

И это будет хорошо смотреться на ЛЮБОМ резюме.

ОБНОВЛЕНИЕ: Похоже, вы не одиноки в своей отрасли: « 95% мировых банкоматов работают под управлением XP ». Не поймите меня неправильно: XP - это здорово, я всегда был фанатом. Но реальность такова, что после того, как исправления безопасности и обновления закончатся, XP не будет жизнеспособным продуктом для банка. Ваша задача (ради клиентов вашего банка) заключается в том, чтобы любезно, но настойчиво сообщать вашим менеджерам, что они в конечном итоге будут платить гораздо больше (в рамках расширенного обслуживания или смягчения атак), чтобы поддерживать XP после даты его выхода на пенсию. Как указала ссылка @ RobbieDee: у вас есть до 14 июля 2015 года. Это достаточно времени (если вы начнете сейчас) для разработки, внедрения и развертывания системы замены.

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


К вашему сведению - поддержка (по крайней мере частично) была продлена после первоначального крайнего срока 2014 года: bbc.co.uk/news/technology-25758308
Робби Ди

Привет, спасибо за ответ. К сожалению, этого просто не происходит, недавно компания (банк) (последняя часть 2013 года) прошла обновление ПК, на котором они потратили много денег, заменив каждый компьютер в цепочке новым комплектом от Dell. Затем они заплатили людям из IBM, чтобы они стерли все эти машины и установили XP! Насколько я понимаю, если бы они захотели перейти на более современную ОС, это была прекрасная возможность. Обычно ваш ответ был бы твердым советом, хотя бы так +1
Заключенный24601

@RobbieDee - это дает пользователю 114764 достаточно времени.
кмот
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.