Які переваги розвивати із застарілими технологіями? [зачинено]


28

Невеликий фон :

Я працюю у великій компанії, використовую Windows XP та кодую Winforms у VB6 / VB.Net та деякі WebForms у VB.Net (95% код обслуговування). У мене один екран 19: 4: 3. Більш сучасна версія Windows не скоро з'являється, а також під звуки цього не відбувається жодна робота на зеленому полі!

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

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

Я міг досить швидко розібратися з іншою роботою, але мені здається, що я маю дати цьому ще один шанс.

Питання :

Я намагаюся переконати себе, що моя теперішня робота не така вже й погана. Тож які переваги має така роль? Чи є переваги в роботі із застарілими технологіями? Можливо, якісь прийоми, які я б не підібрав, працюючи з більш сучасними? Або це подібне місце, куди кар’єра помирає, і я повинен вийти, поки я ще маю душу?


1
Ви можете переказати основу свого питання, щоб чітко відокремити особисту історію від основного питання.
DougM

2
Ви можете робити вигляд, що ви будуєте ракети або працюєте над управлінням повітряного руху. Ці поля зазвичай використовують дійсно стару технологію, оскільки до цього моменту всі помилки або виправлені, або відомі. Але навіть інженери з управління ракетою або повітряним рухом не торкнулися б VB6 10-футовим полюсом. :)
DXM

3
Безпека роботи? ....
Роберт Харві

2
Я кодував у Delphi спосіб більше десяти років тому. Мені це сподобалось, це була гарна мова, краща, ніж двір дворів В.Б., але це було не так, як, здавалося, справи. Я стрибнув. Але по сьогоднішній день робочі місця Delphi продовжують кипіти, і вони платять хороші гроші! Заспівали.
MrWhite

11
Хоча я захоплююсь тим, що ти намагаєшся якнайкраще використати погану ситуацію, будь ласка, не намагайся переконати себе, що твоя нинішня робота не так вже й погана. Якщо говорити з досвіду: занадто довго перебувати на роботі із застарілою технологією можна легко перетворитись у діру, яку справді важко викопати з роботи. Принаймні, спробуйте пограти з більш сучасними технологіями на боці, якщо можливо.
Евікатос

Відповіді:


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. Вартість LIicensd: 0 доларів.
Демі

7

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

Я можу придумати три переваги роботи із застарілою, заміненою технологією:

  1. Ознайомлення зі самою старою технологією

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

  2. Шанс попрактикуватися навчитися чомусь новому

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

  3. Глибше розуміння того, чому їх замінили

    Важко пояснити HR-програмістському чи виконавчому типу, що не програміст, чому VB.NET або C # перевершує VB6, якщо ви не знайомі з самою технологією. І якщо ви не зовсім знайомі з останнім, вивчення того, що вони замінили, може допомогти зрозуміти, чому саме заміни написані як вони були.


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

Якщо його можна залишити в спокої, поки час роботи не завершиться через якийсь недокументований помилку, це одне - але щогодини розробник витрачає на старі технології без перехідного плану - це технічна заборгованість, яку підприємство доведеться врешті сплатити.


9
Я не погоджуюся з тим, що "немає абсолютно ніяких причин, щоб компанія не наполегливо підтримувала будь-яку програму, написану на технології, яка стала такою застарілою". Якщо це заробляє на підприємстві більше грошей, ніж витрачає їх на утримання, то вони повинні її підтримувати. Вони повинні шукати, щоб замінити його більш сучасним рішенням, але, хоча він заробляє гроші і його неможливо легко замінити, його слід підтримувати.
Стівен

Іноді це правда, але якщо програмне забезпечення «заробляє» гроші замість того, щоб «заощаджувати» гроші, то хтось робить своїх клієнтів сумлінною послугою.
DougM

Програмне забезпечення може заощадити гроші для замовника та зробити його для компанії, яка його розробляє. Не все є домашнім додатком. Хек, програмне забезпечення також може заробляти гроші і для замовника. Подивіться на Visual Studio. Це заробляє гроші як для продавця (Microsoft), так і для покупця (програмні будинки).
Стівен

Так, саме тому я сказав це так. І повторюся: якщо ви продаєте програмне забезпечення, побудоване на платформі, що живе десять років, ви робите своїм клієнтам послугу.
DougM

1
Я б не погодився. Як розробник, я хочу завжди використовувати новітні технології. Але з точки зору користувача, вони можуть отримати велику цінність зі старої програми VB6, яка підтримується. Переробити його з нуля може не бути економним чи практичним, але, можливо, варто його підтримувати (особливо це стосується спеціального програмного забезпечення, яке має лише невелику ринкову нішу).
Стівен

6

У якийсь момент компанії потрібно буде потурбуватися про закінчення терміну служби VB6, але, на жаль, у VB.NET залишилось деяке дихання.

Чи є яка-небудь пов’язана причина, що вам потрібно працювати на одному маленькому моніторі? Це звучить скоріше як компанія дешева, ніж турбота про добре перевірені технології. Це не так, як пара 21 "моніторів збирається вводити помилки.

Для того, щоб ваші навички були чіткими та отримували за них оплату, я б запропонував переглянути налаштування, тестування та розгортання. Це може бути можливістю почати впроваджувати новіші технології, використовуючи рейку, powerhell та / або nant для побудови та розгортання. Якщо у вас немає одиничних тестів, почніть додавати їх.

Зрештою, якщо компанія не перебуває у просторі технологій, то вона завжди буде для них другорядною. Для них має сенс підтримувати стабільність для захисту своїх основних бізнес-операцій.

Я уникатиму будь-яких кар’єрних порад, я впевнений, що інші охопили основи.


6

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

Однак на початку вашої кар’єри я б рекомендував рухатися далі.


3

Є кілька переваг:

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

2) Сподіваємось, інші компанії будуть добре розбиратися в технологіях, оскільки вони не змінилися.

3) Якщо нових розробок не так багато, ви можете працювати над рефакторингом старого коду, щоб бути чистішим чи швидшим. Зауважте, що тип магазину, який зберігає цю стару техніку, ймовірно, буде проти змінити будь-який код, який "працює", незважаючи на те, наскільки це може бути огидно.


5
Якщо код працює, його не слід змінювати, якщо ви можете його уникнути. Кожен раз, коли розробник вносить зміни, існує можливість введення нових помилок - а нові помилки значною мірою заперечують перевагу використання старого коду.
DougM

Змінити заради цього, очевидно, не дуже добре. Однак, як тільки програмне забезпечення досягає певного рівня зрілості, увага часто звертається до налаштування повільніших частин програми.
Роббі Ді

3

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

У нас ще є велика база коду Visual Studio 6, і, схоже, вона незабаром буде замінена.

Однак ми наполегливо розвиваємо нові технології, де можна досягти нових розробок.

Як я думаю, на вас натякає, можна написати VB.NET, який досить добре взаємодіє зі застарілим кодом VB6 за допомогою COM.

Використання передових технологій, безперечно, цікаво, оскільки вони часто приносять значну користь продуктивності. Однак, зворотний бік полягає в тому, що ви можете зіткнутися з помилкою / збоями, яка повертає вас назад днів / тижнів. Це називається кров’яним краєм з причини!

Навіть якби компанія збирала грошові кошти на оновлення програмного забезпечення, це (як я з’ясував із особистого досвіду) може бути дещо затяжним, залежно від того, яким способом вирішить піти компанія:

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

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

Оновлення Visual Studio

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

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

Ви переносите програмне забезпечення, зберігаючи основну функціональність. Це дозволяє отримати найбільшу свободу з точки зору розробника, але можуть бути введені помилки, які можуть змусити компанію поставити під сумнів цінність такого вправи, якщо також не будуть включені нові функції з доданою вартістю.

Nirvana для більшості розробників - це якісне навчання сучасним технологіям, шанс практикувати те, що ви навчились, а потім проект "greenfield", щоб вирізати зуби.

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


1

Це може бути не саме те, що ви запитуєте, але я маю кілька пропозицій:

Я думаю, що найбільша користь - це те, що ти можеш запропонувати своєму роботодавцеві з точки зору знань, коли вони зрештою зрозуміють, що їм потрібно мігрувати. Цього року XP буде припинено , тому я думаю, що ваш ІТ-відділ вже розглядає міграційну стратегію. (Якщо ні, підготуйте своє резюме, оскільки компанія не збирається довго.)

Зважаючи на це, може бути доцільним розпочати складання списку переваг для міграції основних наборів програмних засобів у поєднанні з міграцією ОС / платформи. Допоможіть навчити свій технічно-ненадійний ланцюжок управління щодо рентабельності інвестицій щодо нових технологій. Ваші менеджери не дають гудок про рамках висхідна бац і техно-іграшки, але вони повинні бути дуже зацікавлені в ваших довгострокових прогнозів щодо порівняльних витрат на поточні витрати на технічне обслуговування, розвиток в майбутньому і т.д.

У цій же лінії ви можете скористатися цією можливістю, щоб дізнатися рівень задоволеності своїх клієнтів (працівників, які використовують ваше програмне забезпечення). Які вдосконалення вони б хотіли бачити? Які помилки зводить їх з розуму? Які особливості значно підвищили б їх ефективність? Якщо ви зможете показати своїм роботодавцям, що нова інвестиція в технології демонстративно вплине на їх суть, ви можете отримати титул менеджера з технічної міграції.

І що б добре виглядало в будь-якому резюме.

ОНОВЛЕННЯ: Схоже, ви не самотні у своїй галузі: " 95% банкоматів світу працює на XP ". Не зрозумійте мене неправильно: XP - це чудово - я завжди був шанувальником. Але насправді, коли патчі безпеки та оновлення закінчуються, XP не стане життєздатним продуктом для банку. Ваша робота (заради клієнтів вашого банку) полягає в тому, щоб люб’язно, але наполегливо інформувати своїх менеджерів, що вони в кінцевому підсумку заплатять набагато більше (за розширену схему обслуговування або пом'якшення наслідків атаки), щоб зберегти XP після його виходу на пенсію. Як зазначає посилання @ RobbieDee: у вас є до 14 липня 2015 року. Це достатньо часу (якщо ви почнете зараз) для розробки, впровадження та розгортання системи заміни.

(НЕ намагайтеся продати цю ідею хлопцеві, який щойно підписався на встановлення XP для всієї компанії. Він не ваш союзник. З таким рішенням, його дні в цій ролі перелічені. Просто спокійно працюйте навколо нього, поки переважають мудріші голови.)


FYI - підтримка (як мінімум, частково) була розширена за вихідний термін 2014 року: bbc.co.uk/news/technology-25758308
Robbie Dee

Привіт, дякую за відповідь. Це просто не буває сумно, нещодавно (остання частина 2013 року) компанія (банк) пройшла оновлення ПК, під час якого вони витратили багато грошей на заміну кожного комп’ютера в ланцюзі на новий комплект від Dell. Потім вони заплатили людям з IBM, щоб витерти всі ці машини та встановити XP! Як я вважаю, якщо вони хотіли перейти на більш сучасну ОС, це була золота можливість. Як правило, ваша відповідь була б твердою порадою, хоча так +1
ув'язнений24601

@RobbieDee - це дає користувачеві114764 достатньо часу.
kmote
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.