Quali sono i vantaggi dello sviluppo con tecnologie obsolete? [chiuso]


28

Un piccolo sfondo :

Sto lavorando in una grande azienda, usando Windows XP e codificando Winforms in VB6 / VB.Net e alcuni Web Form in VB.Net (codice di manutenzione al 95%). Ho uno schermo da 4: 3 da 19 ". Una versione più moderna di Windows non sta per accadere presto, e nemmeno il campo verde funziona con i suoi suoni!

Non mi è stato detto nulla di tutto ciò quando sono entrato in azienda, ero fuorviante nel pensare che avrei lavorato con tecnologie e framework molto più aggiornati.

Ho un'esperienza molto più aggiornata di precedenti lavori, sia con framework più moderni che con altri linguaggi di programmazione, e quando sto raggiungendo amici di sviluppatori di altre società, tutto ciò di cui sento parlare è come stanno utilizzando l'ultimo framework ASP MVC, oppure Vagrant / Ruby on Rails / etc e sto ottenendo gli occhi verdi!

Potrei risolvere un altro lavoro abbastanza rapidamente, ma mi sento come se dovessi dare a questo uno di più una possibilità.

La domanda :

Sto cercando di convincermi che il mio lavoro attuale non è poi così male. Quindi quali sono i vantaggi di questo tipo di ruolo? Ci sono vantaggi nel lavorare con tecnologie obsolete? Forse alcune tecniche che non imparerei a lavorare con quelle più moderne? O è questo il tipo di posto dove muoiono le carriere e dovrei uscire mentre ho ancora la mia anima?


1
Potresti voler riformulare il corpo della tua domanda, separare in modo chiaro la storia personale dalla domanda principale.
DougM,

2
Puoi far finta di costruire razzi o di lavorare sul controllo del traffico aereo. Quei campi generalmente usano una tecnologia molto vecchia in quanto a quel punto tutti i bug sono fissi o noti. Ma anche gli ingegneri del razzo o del controllo del traffico aereo non toccherebbero VB6 con un palo da 10 piedi. :)
DXM,

3
Sicurezza sul lavoro? ....
Robert Harvey,

2
Ho usato il codice in Delphi oltre un decennio fa. Mi è piaciuto, era un buon linguaggio, meglio di VB yardy yardy, ma non era il modo in cui le cose sembravano andare. Io saltai. Ma fino ad oggi i lavori di Delphi continuano a ribollire e stanno pagando buoni soldi! Dang it.
Mr White

11
Anche se ammiro il fatto che stai cercando di trarre il meglio da una brutta situazione, per favore non cercare di convincerti che il tuo attuale lavoro non è poi così male. Parlando per esperienza: rimanere troppo a lungo in un lavoro con una tecnologia obsoleta può facilmente trasformarsi in un buco che è davvero difficile scappare dal lavoro. Almeno prova a giocare con la tecnologia più moderna sul lato, se possibile.
Evicatos,

Risposte:


26

tutto quello che sento è come stanno usando l'ultimo framework ASP MVC, o Vagrant / Ruby on Rails / ecc. e sto ottenendo gli occhi verdi!

Ah, ma lì stanno giocando con i loro giocattoli e ci sei tu che fai un vero lavoro, usando uno strumento che fa il lavoro per ottenere una soluzione.

Questo è ciò che dovresti prendere in considerazione: il software è troppo spesso un affare amatoriale con le persone che saltano da una nuova fantastica tecnologia all'ultima moda più recente. Poi ci sono altri che lo trattano come una carriera molto più professionale in cui gli strumenti non contano tanto quanto il prodotto o la soluzione che crei.

Ci sono luoghi in cui la vecchia tecnologia deve essere sostituita con qualcosa di nuovo, ma in genere sono solo aggiornamenti, non sostituzioni all'ingrosso. Ad esempio VB6 viene aggiornato a VB.NET, Visual Studio 2002 viene aggiornato a Visual Studio 2012. Chiunque entri in una riscrittura completa trova sempre che le cose non sono così fantastiche con i nuovi strumenti. (ecco perché Joel, tra gli altri, dice che la riscrittura è sempre la risposta sbagliata)

Quindi concentrati sul raggiungimento delle cose e aggiorna dove puoi, lentamente e con attenzione dove ha senso, non perché vuoi giocare con i giocattoli più recenti (che verranno comunque scartati abbastanza presto, e l'ultima cosa che desideri è mantenere un sistema scritto da persone che hanno codificato nella fantastica tecnologia dell'anno scorso )


1
VB6 non è stato più aggiornato a VB.NET di DOS è stato aggiornato a Windows NT. FWIW.
DougM,

21

Ci sono, in effetti, diversi vantaggi per un'azienda che si attacca a tecnologie obsolete:

  1. Le cose legacy a volte non funzionano con le cose nuove

    Una società potrebbe aver investito una grande quantità di denaro in sistemi che semplicemente non funzionano con nuove lingue o sistemi operativi. Un classico esempio sono molte app Web Intranet compatibili solo con IE6 e IE6. La scelta tra restare con Windows XP + IE6 e buttare via un sistema funzionante e investire denaro in quello nuovo non è ovvia.

  2. Cambiare per motivi di cambiamento non è una scelta saggia

    Esempio: molte banche continuano a mantenere le applicazioni originariamente scritte in COBOL. Quando le cose funzionano, perché un'azienda dovrebbe decidere di riscriverle in un'altra lingua, visti i costi di riscrittura di un grande sistema aziendale critico e il rischio di sbagliare, introducendo un sacco di nuovi bug? (Uno dei motivi è descritto di seguito)

  3. Le licenze sono costose

    Supponiamo che un'azienda abbia alcune centinaia di desktop che utilizzano Windows XP. Vogliono passare a Windows 8. Qual è il costo di una singola licenza di Windows 8 Enterprise? E se moltiplichiamo questo costo per il numero di macchine?

    Peggio ancora per i server. Una singola licenza per Oracle o Microsoft SQL Server costa circa $ 30.000 - $ 40.000. Se un'azienda ha, diciamo, cinquanta server di database, diventa rapidamente molto costosa anche con le licenze Volume.

    Nella mia azienda, siamo bloccati con Visual Studio 2010. Soffriamo per i suoi numerosi bug e sappiamo che non verranno mai risolti, dal momento che Microsoft ha abbandonato questa versione. Ma $ 13000 (dato che abbiamo bisogno della versione definitiva a causa delle sue caratteristiche uniche che non sono disponibili in altre versioni) è troppo alto per noi per l'aggiornamento a Visual Studio 2013.

Detto questo, ci sono anche importanti svantaggi.

  1. Le cose legacy non attirano nuovi talenti

    Questo è uno dei problemi delle aziende che mantengono le app COBOL: fanno fatica a trovare sviluppatori economici. Inoltre, lavorare su mainframe e scrivere codice COBOL non è qualcosa di attraente per le persone creative.

    Pur essendo una buona scelta per i sistemi backbone che richiedono di rimanere solidi, tali sistemi e linguaggi non si adattano bene ai prodotti che richiedono una costante innovazione.

  2. Vecchio non significa sicuro

    Poiché la riscrittura di un prodotto in una nuova lingua può introdurre nuovi bug, mantenere anche vecchi sistemi che non sono più supportati può essere pericoloso. Immagina di trovare un bug in Windows 98, che potrebbe compromettere l'intero sistema: Microsoft rilascerebbe un aggiornamento per risolverlo?

  3. L'eredità è virale

    L'incompatibilità tra sistemi legacy e nuovi significa che spesso, quando si utilizza un vecchio prodotto, lingua o infrastruttura, non sarà possibile eseguire l'aggiornamento da qualche altra parte. Una vecchia app Intranet che funziona solo su IE6 porta a Windows XP su tutti i desktop, il che significa che non è possibile migrare a una nuova versione di Active Directory, il che significa che non è possibile utilizzare nuove app che richiedono la versione di Active Directory più recente e presto.

  4. Produttività

    Le nuove versioni dei prodotti offrono nuove funzionalità che, a volte, aumentano la produttività. Un'attività che richiederebbe un'ora con Visual Basic 6.0 potrebbe essere eseguita in meno di un'ora con Visual Studio 2013, poiché Visual Studio 2013 e .NET Framework 4.5 migliorano Intellisense, Entity Framework e migliaia di altre cose che riducono il codice per scrivere, aumentare la velocità di scrittura del codice e ridurre il rischio di introdurre bug.

    Se l'esempio non è abbastanza chiaro, eccone un altro. In Windows 3.1, gli amministratori di sistema avrebbero configurato manualmente ogni macchina una per una (a meno che non ci fosse qualche automazione di cui non sono a conoscenza). Oggi utilizzerebbero PXE e Windows Assessment and Deployment Kit per distribuire automaticamente in pochi minuti un nuovo sistema operativo e software su migliaia di macchine.

    L'uso di versioni precedenti potrebbe semplicemente diventare proibitivo in termini di costi. Potrebbe non essere ovvio per alcuni utenti che sono felici di usare Windows 95, ma è molto più ovvio per sviluppatori, amministratori di sistema, progettisti, scienziati e altre persone che fanno molto affidamento sulla potenza dell'hardware e delle applicazioni.


Usa Linux ed Eclipse o MonoDevelop. Costo LIicensd: $ 0.
Demi,

7

Ci sono alcuni vantaggi nello sviluppo con tecnologie obsolete, ma se questi superano o meno i costi che si subiscono per perdere fluidità con i loro sostituti e il dolore di lavorare con loro è una scelta personale tra te e loro.

Posso pensare a tre vantaggi di lavorare con una tecnologia obsoleta e sostituita:

  1. Familiarità con la stessa tecnologia precedente

    Le uniche vecchie tecnologie ancora in uso sono quelle che qualcuno, da qualche parte, ha deciso che sono più economiche da mantenere che da sostituire. Essere in grado di elencare l'esperienza di lavoro con una tecnologia così vecchia può, di per sé, aiutarti a ottenere un altro lavoro lavorando nella stessa area. E man mano che sempre più sviluppatori passano, il premio che puoi pagare per lavorare su questo aumenta.

  2. Un'occasione per esercitarsi nell'apprendimento di qualcosa di nuovo

    Non sei davvero un programmatore se puoi programmare solo in lingue che ti hanno insegnato qualcun altro. Essere in grado di adattare le tue tecniche e i tuoi modelli alle tecnologie più vecchie richiede molte delle stesse esatte competenze di cui avresti bisogno per adattarti alle nuove tecnologie.

  3. Comprensione più profonda del perché sono stati sostituiti

    È difficile spiegare a un tipo di HR o Executive non programmatore perché VB.NET o C # è superiore a VB6 se non si ha familiarità con la tecnologia stessa. E se non hai familiarità con quest'ultimo, sapere cosa hanno sostituito può aiutare a capire alcuni dei motivi per cui i rimpiazzi sono stati scritti come erano.


Tutto quanto detto sopra, non vi è assolutamente alcun motivo per cui un'azienda dovrebbe mantenere la manutenzione di qualsiasi applicazione scritta in tecnologia che è diventata così obsoleta.

Se può essere lasciato solo fino a quando il tempo di esecuzione non fallisce a causa di un bug non documentato, questa è una cosa - ma ogni ora uno sviluppatore spende in vecchia tecnologia senza un piano di transizione è debito tecnico che l'impresa dovrà eventualmente pagare.


9
Non sono d'accordo con "non c'è assolutamente alcun motivo per cui un'azienda debba perseverare nel mantenimento di qualsiasi applicazione scritta in tecnologia che è diventata così obsoleta". Se sta facendo guadagnare all'azienda più denaro di quanto non costi da mantenere, allora dovrebbe mantenerlo. Dovrebbero cercare di sostituirlo con una soluzione più moderna, ma mentre sta facendo soldi e non può essere facilmente sostituito, dovrebbe essere mantenuto.
Stephen,

A volte è vero, ma se il software sta "facendo" soldi invece di "risparmiare" qualcuno sta comunque facendo un cattivo servizio ai suoi clienti.
DougM,

Il software può risparmiare denaro per il cliente e farlo per l'azienda che lo sviluppa. Non tutto è un'applicazione interna. Diamine, il software può anche fare soldi anche per il cliente. Guarda Visual Studio. Guadagna sia per il venditore (Microsoft) che per l'acquirente (software house).
Stephen,

Sì, ecco perché l'ho detto così. E per ripetere, se vendi software costruito su una piattaforma morta di dieci anni, stai facendo un cattivo servizio ai tuoi clienti.
DougM,

1
Non sarei d'accordo. Come sviluppatore, desidero utilizzare sempre la tecnologia più recente. Ma dal punto di vista dell'utente, possono ottenere un grande valore da un vecchio programma VB6 che viene mantenuto. Potrebbe non essere economico o pratico riqualificarlo da zero, ma può valere la pena mantenerlo (questo è particolarmente vero per i software speciali che hanno solo un mercato di nicchia molto piccolo).
Stephen,

6

Ad un certo punto l'azienda dovrà preoccuparsi della fine del ciclo di vita di VB6, ma purtroppo VB.NET ha ancora un po 'di respiro.

C'è qualche motivo correlato necessario per lavorare su un singolo monitor di piccole dimensioni? Sembra più che la compagnia sia economica piuttosto che preoccuparsi delle tecnologie ben collaudate. Non è come se un paio di monitor da 21 "introducessero dei bug.

Per migliorare le tue abilità e farti pagare, ti suggerirei di guardare la tua configurazione, test e distribuzione. Questa potrebbe essere un'opportunità per iniziare a introdurre alcune nuove tecnologie utilizzando rake, powershell e / o nant per la compilazione e la distribuzione. Se non si dispone di unit test, iniziare ad aggiungerli.

Alla fine della giornata, se la società non è nello spazio tecnologico, sarà sempre secondaria rispetto a loro. Ha perfettamente senso per loro mantenere la stabilità per proteggere le loro operazioni di core business.

Eviterò di dare consigli sulla carriera, sono sicuro che altri hanno coperto le basi.


6

Per le persone anziane, spostarsi verso la fine della loro carriera professionale, vendere la loro profonda conoscenza di una tecnologia più vecchia a un'azienda che utilizza ancora le cose vecchie, può essere interessante dal punto di vista finanziario . Ad esempio, se hai esperienza con PDP-11 ti consigliamo di trasferirti in Canada .

Tuttavia, all'inizio della tua carriera, consiglierei di andare avanti.


3

I vantaggi sono molteplici:

1) Ci saranno molte risorse disponibili per le tecnologie fintanto che non erano oscure che non erano ampiamente utilizzate.

2) Speriamo che altri nell'azienda siano esperti delle tecnologie poiché non sono cambiati.

3) Se non ci sono molti nuovi sviluppi, puoi lavorare sul refactoring del vecchio codice per essere più pulito o più veloce. Si noti che il tipo di negozio che mantiene questa vecchia tecnologia probabilmente sarà contro la modifica di qualsiasi codice che "funzioni" nonostante quanto sia odioso.


5
Se il codice funziona, non dovrebbe essere modificato se puoi evitarlo. Ogni volta che uno sviluppatore apporta una modifica, esiste la possibilità di introdurre nuovi bug e i nuovi bug annullano in gran parte il vantaggio dell'utilizzo del vecchio codice.
DougM,

Il cambiamento per il gusto di farlo ovviamente non è una buona idea. Tuttavia, una volta che il software ha raggiunto un certo livello di maturità, l'attenzione si rivolge spesso alla messa a punto di parti più lente dell'applicazione.
Robbie Dee,

3

Mi concentrerò sul rovescio della medaglia di questa domanda, vale a dire gli svantaggi dell'utilizzo di nuove tecnologie, poiché i vantaggi di tecnologie obsolete sono stati sufficientemente coperti in altre risposte.

Abbiamo ancora una grande base di codice di Visual Studio 6 e non sembra che verrà presto sostituita.

Tuttavia, stiamo spingendo avanti con le nuove tecnologie in cui possiamo per i nuovi sviluppi.

Come penso tu alludi, è possibile scrivere VB.NET che si interfaccia abbastanza bene con il codice VB6 legacy usando COM.

L'uso di tecnologie all'avanguardia è senza dubbio divertente poiché spesso portano significativi vantaggi in termini di produttività. Tuttavia, il rovescio della medaglia è che puoi imbatterti in un bug / glitch che ti riporta indietro giorni / settimane. Si chiama bordo sanguinante per un motivo!

Anche se la società dovesse impadronirsi di denaro per aggiornare il software, questo (come ho scoperto per esperienza personale) può essere un po 'trascinante, indipendentemente dal modo in cui la società sceglie di andare:

Porta software

Il software viene riscritto ma deve apparire esattamente come il vecchio software in modo da non turbare gli utenti. La gioia di lavorare con le nuove tecnologie è annullata dal fatto che non è possibile utilizzare nessuna delle nuove procedure guidate della GUI.

Aggiornamento di Visual Studio

Non puoi davvero usare nessuna delle nuove funzionalità in modo appropriato poiché passi molto tempo a risolvere i problemi nel codice in cui funziona bene in una versione di Studio ma non nell'altra.

Migrazione funzionale

Si migra il software mantenendo le funzionalità di base. Ciò consente la massima libertà dal punto di vista dello sviluppatore, ma potrebbero essere introdotti bug che potrebbero indurre l'azienda a mettere in discussione il valore di tale esercizio a meno che non vengano incluse anche nuove funzionalità a valore aggiunto.

Nirvana per la maggior parte degli sviluppatori è una formazione di qualità sulle tecnologie moderne, un'opportunità per mettere in pratica ciò che hai imparato e quindi un progetto greenfield su cui tralasciare i denti.

Quello che dovresti fare dipende in gran parte dal tipo di persona che sei. I neofili vorranno sempre lavorare con le nuove cose mentre i ludditi pensano che la vecchia tecnologia sia la migliore. Molti di noi sono nel mezzo. Devi allenarti dove ti senti a tuo agio. Se ritieni di poter vivere con lo status quo, allora ottimo, altrimenti prendi la moneta per ora e tieni d'occhio per una posizione più adatta.


1

Questo potrebbe non essere esattamente quello che stai chiedendo, ma ho alcuni suggerimenti:

Penso che il più grande vantaggio sia quello che puoi offrire al tuo datore di lavoro in termini di competenza quando alla fine si rendono conto che devono migrare. XP verrà sospeso quest'anno, quindi immagino che il tuo reparto IT stia già considerando una strategia di migrazione. (In caso contrario, prepara il tuo curriculum, perché la loro compagnia non durerà a lungo.)

Tenendo presente ciò, potrebbe essere prudente iniziare a compilare un elenco di vantaggi per la migrazione dei set di strumenti software principali insieme alla migrazione del sistema operativo / della piattaforma. Aiutate a educare la vostra catena di gestione tecnicamente sfavorevole al ROI per quanto riguarda le nuove tecnologie. I tuoi manager non daranno uno spasso sui quadri e sui giocattoli tecnologici, ma dovrebbero essere molto interessati alle tue proiezioni a lungo termine riguardanti i costi comparativi delle spese di manutenzione in corso, lo sviluppo futuro, ecc.

Sulla stessa linea, potresti cogliere l'occasione per scoprire il livello di soddisfazione dei tuoi clienti (i dipendenti che utilizzano il tuo software). Quali miglioramenti vorrebbero vedere? Quali bug li fanno impazzire? Quali caratteristiche migliorerebbero significativamente la loro efficienza? Se puoi dimostrare ai tuoi datori di lavoro che un nuovo investimento in tecnologia avrebbe un impatto dimostrativo sui loro profitti, potresti ottenere il titolo di Technical Migration Manager.

E QUESTO starebbe bene su QUALUNQUE curriculum.

AGGIORNAMENTO: Sembra che tu non sia solo nel tuo settore: "Il 95% degli sportelli automatici mondiali utilizza XP ". Non fraintendetemi: XP è fantastico, sono sempre stato un fan. Ma la realtà è che, una volta terminate le patch di sicurezza e gli aggiornamenti, XP non sarà più un prodotto praticabile per una banca. Il tuo lavoro (per il bene dei clienti della tua banca) è di informare cortesemente ma persistentemente i tuoi manager che finiranno per pagare molto di più (in accordi di assistenza estesa o mitigazione degli attacchi) per mantenere XP oltre la sua data di pensionamento. Come ha sottolineato il link di @ RobbieDee: hai tempo fino al 14 luglio 2015. È il tempo sufficiente (se inizi subito) per progettare, implementare e distribuire un sistema di sostituzione.

(Ma NON tentare di vendere questa idea al ragazzo che ha appena sottoscritto l'installazione XP a livello aziendale. Non è il tuo alleato. Con un giudizio del genere, i suoi giorni in quel ruolo sono contati. Basta lavorare tranquillamente attorno a lui fino a prevalgono le teste più sagge.)


FYI - il supporto (almeno in parte) è stato esteso oltre la scadenza originale del 2014: bbc.co.uk/news/technology-25758308
Robbie Dee

Ciao, grazie per la risposta. Questo semplicemente non sta accadendo tristemente, la società (una banca) recentemente (ultima parte del 2013) ha subito un aggiornamento del PC, in cui ha speso molti soldi per sostituire tutti i computer della catena con un nuovo kit di Dell. Hanno quindi pagato le persone di IBM per cancellare tutte queste macchine e installare XP! Secondo me, se volessero passare a un sistema operativo più moderno, è stata un'opportunità d'oro. Normalmente la tua risposta sarebbe un valido consiglio, quindi +1
prigioniero24601,

@RobbieDee -che dà a user114764 il tempo sufficiente.
km
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.