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

28

Un po 'di background :

Sto lavorando in una grande azienda, utilizzando Windows XP e codificando Winforms in VB6 / VB.Net e alcuni WebForm in VB.Net (codice di manutenzione del 95%). Ho uno schermo 4: 3 da 19 "Una versione più moderna di Windows non sta succedendo presto, non c'è nemmeno un lavoro in campo verde con i suoni!

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

Ho un'esperienza molto più aggiornata dei precedenti lavori, sia con framework più moderni che con altri linguaggi di programmazione, e quando mi sto avvicinando agli amici sviluppatori di altre società tutto quello di cui sento è come stanno usando l'ultimo MVC ASP framework, o Vagrant / Ruby on Rails / etc e sto ottenendo gli occhi verdi!

Potrei risolverlo con un altro lavoro abbastanza rapidamente, ma mi sento come se dovessi dare a quest'altra occasione.

La domanda :

Sto cercando di convincermi che il mio attuale lavoro 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 vorrei riprendere lavorando con quelle più moderne? O è questo il tipo di posto in cui le carriere vanno a morire, e dovrei uscire mentre ho ancora la mia anima?

    
posta prisoner24601 14.01.2014 - 23:27
fonte

8 risposte

26

all I hear about is how they are using the latest ASP MVC framework, or Vagrant/Ruby on Rails/etc and I am getting the green eyes!

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

Questo è quello che dovresti prendere in considerazione: il software è troppo spesso un affare amatoriale con persone che saltano da una nuova tecnologia alla moda successiva. 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 generalmente si tratta solo di aggiornamenti, non di 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 realizzare le cose, e aggiorna dove puoi, lentamente e attentamente dove ha senso - non perché vuoi giocare con i giocattoli più nuovi (che saranno comunque scartati abbastanza presto, e l'ultima cosa che vuoi assolutamente è per mantenere un sistema scritto da persone che hanno codificato in lo scorso anno cool tech)

    
risposta data 15.01.2014 - 00:03
fonte
21

Esistono, infatti, numerosi vantaggi per un'azienda di restare con tecnologie obsolete:

  1. A volte gli elementi legacy non funzionano con le nuove cose

    Una società potrebbe aver investito una grande quantità di denaro in sistemi che semplicemente non funzionano con linguaggi o sistemi operativi più recenti. Un esempio classico sono molte applicazioni web intranet compatibili con IE6 e IE6. La scelta tra attaccare con Windows XP + IE6 e buttare via un sistema funzionante e investire denaro in quello nuovo non è ovvia.

  2. Il cambiamento a scopo di cambiamento non è una scelta saggia

    Esempio: molte banche continuano a mantenere le applicazioni originariamente scritte in COBOL. Quando la roba funziona, perché un'azienda dovrebbe decidere di riscriverla in un'altra lingua, considerato il costo di riscrivere un grande sistema di business critical, oltre al rischio di sbagliare, introducendo un sacco di nuovi bug? (Uno dei motivi è descritto di seguito)

  3. Le licenze sono costose

    Diciamo che un'azienda ha poche centinaia di desktop che usano Windows XP. Vogliono passare a Windows 8. Qual è il costo di una singola licenza di Windows 8 Enterprise? Cosa succede se moltiplichiamo questo costo per il numero di macchine?

    Diventa ancora peggio per i server. Una singola licenza per Oracle o Microsoft SQL Server costa circa $ 30.000 - $ 40.000. Se un'azienda ha, ad esempio, cinquanta server di database, diventa rapidamente molto costosa anche con le multilicenze.

    Nella mia azienda, siamo bloccati con Visual Studio 2010. Soffriamo dei numerosi bug e sappiamo che non verranno mai risolti, poiché Microsoft ha abbandonato questa versione. Ma $ 13 000 (dato che abbiamo bisogno della versione Ultimate 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 degli svantaggi importanti.

  1. Il materiale legacy non attira nuovi talenti

    Questo è uno dei problemi delle società che gestiscono le app COBOL: hanno difficoltà a trovare sviluppatori poco costosi. 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, quei sistemi e linguaggi non si adattano bene ai prodotti che richiedono un'innovazione costante.

  2. Vecchio non significa sicuro

    Poiché la riscrittura di un prodotto in una nuova lingua può introdurre nuovi bug, anche i vecchi sistemi non più supportati possono essere pericolosi. Immagina che un bug si trovi in Windows 98, che potrebbe compromettere l'intero sistema: Microsoft rilascia un aggiornamento per risolverlo?

  3. Legacy is viral

    L'incompatibilità tra sistemi legacy e più recenti significa che spesso, quando ti trovi con un vecchio prodotto, una lingua o un'infrastruttura, non sarai in grado di aggiornare 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 più recente di Active Directory e così via.

  4. Produttività

    Le nuove versioni di prodotti offrono nuove funzionalità che, a volte, aumentano la produttività. Un'attività che richiede 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 uno scrivere, aumentare la velocità di scrittura del codice e diminuire il rischio di introdurre bug.

    Se l'esempio non è abbastanza chiaro, eccone un altro. In Windows 3.1, gli amministratori di sistema avrebbero configurato ogni macchina una per una, a mano (a meno che non esistesse un'automazione di cui non sono a conoscenza). Oggi, utilizzano PXE e il kit di valutazione e distribuzione di Windows per distribuire in pochi minuti un nuovo sistema operativo e software su migliaia di macchine automaticamente.

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

risposta data 15.01.2014 - 00:27
fonte
7

Ci sono alcuni vantaggi nello sviluppo con tecnologie obsolete, ma anche se questi superano il costo che si subisce per aver perso la fluidità con le loro sostituzioni e il dolore di lavorare con loro è una scelta personale tra te e loro.

Posso pensare a tre vantaggi del lavorare con la 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 sono meno costose da mantenere che sostituire. Essere in grado di elencare esperienze lavorative con una tecnologia così antica può, di per sé, aiutarvi a ottenere un altro lavoro lavorando nella stessa area. E via via che sempre più sviluppatori si spostano, il premio che puoi pagare per lavorare su tali aumenti.

  2. Una possibilità di praticare l'apprendimento di qualcosa di nuovo

    Non sei un vero programmatore se puoi programmare solo in lingue che qualcun altro ti ha insegnato. Essere in grado di adattare le tue tecniche e modelli a tecnologie obsolete richiede gran parte delle stesse competenze di cui avresti bisogno per adattarti alla nuova tecnologia.

  3. Comprensione approfondita del motivo per cui 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, imparare ciò che hanno sostituito può aiutare a capire perché i sostituti sono stati scritti come erano.

Tutto quanto sopra detto, non vi è assolutamente alcuna ragione per cui una società debba persistere nel mantenimento di qualsiasi applicazione scritta in tecnologia che è diventata così obsoleta.

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

    
risposta data 14.01.2014 - 23:44
fonte
6

A un certo punto la compagnia dovrà preoccuparsi della fine della vita di VB6, ma purtroppo VB.NET ha ancora un po 'di respiro.

C'è qualche motivo correlato di cui hai bisogno per lavorare su un singolo monitor di piccole dimensioni? Sembra più che un'azienda sia a buon mercato che essere preoccupata di tecnologie ben testate. Non è come se un paio di monitor da 21 "introdurranno bug.

Per mantenere le tue competenze ben definite e pagarti, ti suggerisco di esaminare la configurazione, testare e distribuire l'installazione. Questa potrebbe essere un'opportunità per iniziare a introdurre alcune tecnologie più recenti utilizzando rake, powershell e / o nant per la compilazione e la distribuzione. Se non hai test unitari, inizia ad aggiungerli.

Alla fine della giornata, se la società non si trova nello spazio tecnologico, sarà sempre secondaria a loro. È assolutamente logico per loro mantenere la stabilità per proteggere le loro attività di core business.

Eviterò di dare qualsiasi consiglio di carriera, sono sicuro che altri hanno coperto le basi.

    
risposta data 15.01.2014 - 05:27
fonte
6

Per le persone anziane, verso la fine della loro carriera professionale, vendendo la loro profonda conoscenza di una tecnologia precedente a un'azienda che usa ancora le vecchie cose, potrebbe essere attraente dal punto di vista finanziario . Ad esempio, se hai esperienza in PDP-11 potresti trasferirti in Canada .

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

    
risposta data 15.01.2014 - 08:25
fonte
3

Ci sono molti vantaggi:

1) Ci saranno molte risorse disponibili per le tecnologie, purché non siano di quelle oscure che non sono state ampiamente utilizzate.

2) Speriamo che gli altri membri della società siano esperti nelle tecnologie in quanto non sono cambiati.

3) Se non ci sono molti nuovi sviluppi, puoi lavorare sul refactoring del vecchio codice per renderlo più pulito o più veloce. Nota che il tipo di negozio che mantiene questa vecchia tecnologia probabilmente non cambierà alcun codice che "funziona" nonostante quanto possa essere odioso.

    
risposta data 14.01.2014 - 23:43
fonte
3

Mi concentrerò sul rovescio della questione, cioè sugli svantaggi dell'uso di nuove tecnologie, poiché i vantaggi delle tecnologie obsolete sono stati sufficientemente trattati in altre risposte.

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

Tuttavia, stiamo portando avanti nuove tecnologie in cui possiamo apportare nuovi sviluppi.

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

L'utilizzo di tecnologie all'avanguardia è indubbiamente divertente in quanto spesso comporta notevoli vantaggi in termini di produttività. Tuttavia, il rovescio della medaglia è che si può imbattersi in un bug / glitch che ti riporta indietro giorni / settimane. Si chiama bleeding edge per un motivo!

Anche se la società dovesse accumulare denaro per aggiornare il software, questo (come ho scoperto per esperienza personale) può essere un po 'trascinante in qualsiasi modo l'azienda scelga 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 è superata dal fatto che non puoi usare nessuno dei nuovi wizard della GUI.

Aggiornamento di Visual Studio

Non utilizzi correttamente nessuna delle nuove funzionalità mentre passi molto tempo a correggere i glitch nel codice in cui funziona bene in una versione di studio ma non nell'altra.

Migrazione funzionale

Esegui la migrazione del software mantenendo le funzionalità principali. Ciò consente la massima libertà dal punto di vista dello sviluppatore, ma potrebbero essere introdotti errori che potrebbero indurre la società a mettere in discussione il valore di tale esercizio a meno che non siano incluse anche nuove funzionalità a valore aggiunto.

Il Nirvana per la maggior parte degli sviluppatori è un addestramento di qualità sulle tecnologie moderne, una possibilità di mettere in pratica ciò che hai appreso e un progetto greenfield su cui tagliare i denti.

Ciò che dovresti fare dipende in gran parte dal tipo di persona che sei. I neofili vorranno sempre lavorare con le nuove cose mentre i luddisti pensano che la vecchia tecnologia sia la migliore. La maggior parte di noi è nel mezzo. Devi lavorare dove ti trovi bene. Se ritieni di poter vivere con lo status quo allora fantastico, altrimenti prendi la moneta per ora e tieni un occhio per una posizione più adatta.

    
risposta data 15.01.2014 - 11:05
fonte
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 esperienza quando alla fine si rendono conto che devono migrare. XP verrà dismesso quest'anno, quindi immagino che il reparto IT stia già considerando una migrazione strategia. (In caso contrario, prepara il tuo curriculum, perché la compagnia non sarà a lungo.)

Tenendo presente questo, potrebbe essere prudente iniziare a compilare un elenco di vantaggi per la migrazione dei set di strumenti software primari in concomitanza con la migrazione del sistema operativo / piattaforma. Aiuta ad educare la tua catena di gestione tecnicamente non invadente riguardo al ROI in relazione alle nuove tecnologie. I tuoi manager non daranno spari di quadri whiz-bang e giocattoli tecnologici, ma dovrebbero essere molto interessati alle tue proiezioni a lungo raggio per quanto riguarda i costi comparativi delle spese di manutenzione in corso, lo sviluppo futuro, ecc. .

Sulla stessa falsariga, potresti cogliere questa opportunità per scoprire il livello di soddisfazione dei tuoi clienti (i dipendenti che usano il tuo software). Quali miglioramenti vorrebbero vedere? Quali bug li fanno impazzire? Quali caratteristiche migliorerebbero in modo significativo la loro efficienza? Se riesci a dimostrare ai tuoi datori di lavoro che un nuovo investimento in tecnologia influirà in modo determinante sui profitti, potresti guadagnare il titolo di Technical Migration Manager.

E QUESTO sarebbe perfetto su QUALSIASI curriculum.

AGGIORNAMENTO: sembra che tu non sia il solo nel tuo settore: " il 95% degli ATM del mondo esegue XP ". Non fraintendermi: XP è fantastico - Sono sempre stato un fan. Ma la realtà è che, una volta terminate le patch di sicurezza e gli aggiornamenti, XP non sarà un prodotto praticabile per una banca. Il tuo lavoro (per il bene dei clienti della tua banca) è di informare gentilmente ma costantemente i tuoi dirigenti che finiranno per pagare molto di più (in accordi di servizio estesi o mitigazione degli attacchi) per mantenere XP oltre la data di pensionamento. Come sottolineato dal link @ RobbieDee: hai tempo fino al 14 luglio 2015. Questo è solo il tempo (se inizi ora) per progettare, implementare e implementare un sistema sostitutivo.

(Ma NON provare a vendere questa idea al ragazzo che ha appena firmato l'installazione di Windows a livello aziendale.) Non è il tuo alleato. Con un giudizio del genere, i suoi giorni in quel ruolo sono contati. intorno a lui fino a quando prevalgono le teste più sagge.)

    
risposta data 17.01.2014 - 00:52
fonte

Leggi altre domande sui tag