Ci sono molte variabili che dovrebbero essere considerate quando si decide di aggiungere nuove tecnologie a un'applicazione legacy.
Innanzitutto, qual è il piano a lungo termine per questa applicazione? C'è un piano con soldi e una data per ritirarlo? In tal caso, la nuova tecnologia introdotta si riferisce a ciò che sta sostituendo la vecchia app? Se è così, ottimo, vai avanti. Se no, allora perché stai introducendo questa tecnologia? Le vecchie app non sono parchi giochi: di solito servono uno scopo critico in un'organizzazione (sono spesso le prime app create in un'azienda e, di conseguenza, sono fondamentali per la salute finanziaria dell'azienda).
In secondo luogo, qual è la curva di apprendimento della nuova tecnologia? Il tuo popolo è pronto per questo? Ad esempio, diciamo che hai una vecchia applicazione scritta in COBOL / IMS / CICS. È piuttosto improbabile che tu possa trasferire rapidamente le persone che stanno lavorando su questo per dire HTML5 / CSS3 / Javascript / JSON / REST / NoSQL in un breve periodo di tempo. Allora, qual è la tua strategia della forza lavoro? Ne hai uno? Non può essere "lo impareranno mentre vanno". Questo è irresponsabile e rischia di tradire lo staff.
In terzo luogo, sai dove si trova questa nuova tecnologia nella sua fase di diffusione dell'innovazione? Probabilmente la cosa peggiore che puoi fare a un'applicazione legacy è gravarla di innestarla con una "nuova" tecnologia che è già in fase di adozione a maggioranza o ritardo. Perché? Perché tra due anni avrà DUE vecchie tecnologie morenti sotto il suo ombrello, quindi è effettivamente peggiorato. Cerca di limitare le tue introduzioni tecnologiche alle cose all'inizio o alla fase iniziale della maggioranza.
Quarto, quante persone stanno ONESTEmente contribuendo alla salute e al benessere della nuova tecnologia? Ad esempio, se vai a GitHub, quanto sono frequenti i commit e quanto sono importanti questi commit? Ancora una volta, non caricare un'app legacy con una tecnologia morente solo perché è "nuova per te".
Ci sono probabilmente molte altre cose da considerare, ma quelle sono alcune che vengono in mente sulla base dei miei anni di architetto che hanno preso questo tipo di decisioni.