Una guida completa sulle strategie di migrazione tecnologica: (Parte 1 – Introduzione)
Pubblicato: 2020-12-23Con la nuova tecnologia in evoluzione ogni giorno, le vecchie tecnologie stanno diventando obsolete. È diventato necessario che ogni azienda là fuori rimanga aggiornata per sopravvivere nel mercato di oggi. Qualsiasi azienda che fornisce vari servizi e piattaforme ai propri utenti deve essere pronta a far fronte alle tecnologie di aggiornamento quotidiano. In questi momenti, entra in gioco la migrazione. Un'azienda può sempre migrare a una piattaforma nuova e migliore. Ora, si potrebbe pensare che cos'è la migrazione? La risposta è breve e un po' complessa allo stesso tempo. Migrazione è un termine molto semplice per i babbani non tecnologici là fuori, il che significa migrare da un luogo all'altro. Ma quando si tratta di maghi della tecnologia come noi, ha un significato leggermente diverso. Quindi, facciamo il primo passo e comprendiamo la migrazione in termini tecnici. Migrazione significa passare dalla piattaforma attuale a un'altra piattaforma. Nella maggior parte dei casi, la migrazione avviene su una piattaforma migliore perché fornisce un ambiente di lavoro e un'esperienza utente migliori. A volte, i problemi di sicurezza possono anche portare alla migrazione. Esistono molti tipi di migrazione e qui ci sono alcuni degli argomenti di migrazione più discussi che potresti voler conoscere:
- Migrazione tecnologica
- Migrazione della tecnologia front-end
- Migrazione della tecnologia back-end
- Migrazione del sito Web creata da CMS
- Migrazione database
- Migrazione di domini e server di hosting
La migrazione in termini tecnici è un argomento molto più ampio di quanto tu possa mai immaginare. È un po' difficile trattare tutti gli argomenti di migrazione e le sue tipologie in un unico blog. Pertanto, questo argomento è diviso in diverse parti, spiegando l'importanza della migrazione insieme ai suoi tipi. Puoi leggerli nei prossimi blog.
La migrazione è un compito cruciale e se domande come quando migrare, come migrare, definire l'ambito della migrazione, ecc. ti danno fastidio, allora potresti voler continuare a leggere questo blog per schiarirti le idee.
Perché è necessaria la migrazione?
- Quando la tua attuale tecnologia su cui hai lavorato così a lungo, non è più in grado di soddisfare le aspettative delle tue esigenze aziendali.
- Quando la tecnologia diventa obsoleta e anche il supporto del fornitore non è disponibile per la versione obsoleta.
- Quando i tuoi clienti sono importanti per te e devi essere al top nel tuo campo.
- Quando non vuoi più l'enorme costo di licenza dello stack attuale passando a una piattaforma open source.

A quel tempo, la migrazione sarà la tua migliore opzione. La migrazione è un processo complesso e richiede molta pianificazione.
Il primo passo verso il processo di migrazione è che è necessario impostare alcune definizioni e regole di base che possano svolgere il processo di migrazione senza intoppi. A seconda delle esigenze del progetto:
- Innanzitutto, è necessario analizzare lo stato corrente del progetto o dell'applicazione di cui è necessario eseguire la migrazione.
- Preparerai una tabella di marcia dei rischi calcolati e delle possibili soluzioni che potrebbero verificarsi durante la migrazione.
- È necessario selezionare una tecnologia adeguata che soddisfi tutti i requisiti del progetto.
- Successivamente, avrai bisogno di un piano adeguato per eseguire il processo di migrazione
- Infine, al termine del processo di migrazione, verificare se l'applicazione funziona come previsto sulla nuova piattaforma o meno.

Ci sono alcuni punti che devi tenere a mente prima di andare avanti con la fase di pianificazione della migrazione.
- Decidere un budget e una tempistica del progetto prima della fase di pianificazione della migrazione a seconda del problema aziendale.
- Decidi un modello di lavoro come impostare tariffe orarie o tariffe settimanali per qualsiasi nuovo cliente che desidera migrare da qualsiasi sistema esistente a quello nuovo. Ci sono diverse aree grigie di cui parleremo nelle future serie di blog e possono essere incontrate solo quando un nuovo team di sviluppo inizia il proprio lavoro. La migrazione non può essere gestita con un lavoro a preventivo fisso per nessun nuovo team.
- Se il cliente è una persona non tecnica, si consiglia sempre di firmare un contratto che indichi l'ambito della migrazione prima della fase di pianificazione della migrazione oppure il cliente può anche assumere un project manager contrattuale in loco che possa collaborare con il team di sviluppo.
Definire l'ambito di migrazione
Per tutti i team di sviluppatori che lavorano al progetto di migrazione che non sono a conoscenza del sistema corrente, il client dovrebbe trascorrere del tempo con il nuovo team per assicurarsi che il team comprenda il flusso del sistema. Il nuovo team deve impiegare tempo sufficiente per analizzare il sistema esistente e per elaborare un piano di migrazione. Nel frattempo, il cliente può sempre sollevare quali sono i problemi di business che sta affrontando con il sistema attuale.
Per definire l'ambito di un progetto, il cliente deve condividere un requisito di progetto dettagliato per completare con successo la migrazione. Gli sviluppatori e il cliente devono essere d'accordo con il piano di migrazione e deve esserci una discussione adeguata su tutti gli aspetti della migrazione per salvaguardare il da tutti i problemi futuri.
A volte può capitare che il team di sviluppo non crei una documentazione dettagliata della logica di business mappata nella tecnologia back-end. Se la migrazione viene eseguita dallo stesso team, non creerà alcun problema importante, ma quando la migrazione viene eseguita da un nuovo team, la documentazione è davvero importante. Quindi si consiglia vivamente di disporre di una documentazione dettagliata della logica aziendale.

Assicurati di indicare chiaramente nel tuo documento di scopo che qualsiasi tipo di lavoro al di fuori dell'ambito originale sarà considerato come lavoro extra e sarà soggetto a una tariffa maggiorata compreso il budget originale. Questo ti aiuterà a prevenire possibili Scope Creeps che potrebbero verificarsi in futuro.
Come soddisfare gli Scope Creeps?
Prima di comprendere la gestione di Scope Creeps, lascia che ti parli del termine Scope Creep e di come influisce sul team di sviluppo. Scope Creep è il risultato della modifica dei requisiti tecnici che vengono introdotti nel progetto senza l'estensione della sequenza temporale o l'incremento del budget del progetto.

Ci sono molte ragioni che provocano Scope Creeps e alcuni dei motivi molto comuni sono elencati di seguito per evitare questi creep nella migrazione del progetto.
- L'incomprensione dei requisiti del progetto è uno dei motivi più comuni alla base dell'oscillazione dell'ambito che crea problemi agli sviluppatori nelle fasi successive della migrazione.
- Evita le trappole, come il feedback frequente dell'utente finale. Non ha senso intrattenere tutti i punti di feedback. Ma non è che non accetti affatto feedback. Seleziona solo quelli più ripetitivi e spettacolari.
- Accettare tutte le richieste di cambiamento può aiutare a costruire una relazione positiva in un primo momento, ma finirà nell'insoddisfazione del cliente per il progetto. Quindi, prima di accettare un feedback o una richiesta di modifica, assicurati solo della priorità e dell'urgenza dello stesso e informa il cliente finale dell'impatto sugli sforzi.
- Ci sono innumerevoli altri fattori che influiscono sull'ambito del progetto che non è sotto il tuo controllo come nuove funzionalità aggiunte alla tecnologia esistente, cambiamenti economici nel mercato, emergenze personali, ecc., quindi è meglio prepararsi per queste possibilità.
Ora che hai compreso il termine Scope Creep e conosci le possibili cause che finiscono, una cosa è chiara: il piano preventivo è il miglior modo possibile per evitare qualsiasi insinuazione nell'ambito del tuo progetto di migrazione. Indipendentemente da tutta la pianificazione che hai effettuato, non è possibile assumere con precisione ogni futura richiesta di modifica delle funzionalità nei requisiti del tuo progetto. In momenti come questo, la documentazione per l'ambito della migrazione può salvarti.
Selezione dello stack tecnologico
Come sviluppatore, ci sono molte opzioni presenti di fronte a te come MongoDB a MySQL, AngularJS a React, stack MEAN a stack LAMP e server di hosting cloud come Amazon AWS a server di self hosting come Apache. Queste opzioni possono confondere chiunque. Quindi è responsabilità dello sviluppatore selezionare uno stack tecnologico pianificato per la migrazione. Devi essere preparato anche per ogni esigenza futura.
Nel caso, se desideri selezionare la piattaforma di migrazione e non comprendi chiaramente i requisiti per la nuova piattaforma, c'è un'opzione in cui puoi assumere un Solution Architect che ha esperienza e ha lavorato in sistemi complessi. Idealmente, sarebbe una consulenza di terze parti in modo che entrambi i clienti possano assumere il Solution Architect da soli o possono pagare alla società in via di sviluppo. Questo dovrebbe essere negoziato e concordato sull'attività da svolgere prima di pianificare la fase di migrazione.

Devi essere sicuro che le funzionalità della nuova piattaforma siano provate e testate. Sicuramente, non vuoi essere il primo a conoscere gli svantaggi e le insidie della nuova piattaforma. È necessario assicurarsi che tutti i dati siano conservati in modo sicuro e che altre funzionalità non richiedano molte modifiche dopo la migrazione a una nuova piattaforma. La migrazione è un processo complesso ma, se eseguita correttamente, può dare un nuovo inizio alla vecchia tecnologia obsoleta.
Assicurati di controllare se il sistema corrente ha DevOps in atto o meno. DevOps aiuta ad abbreviare il ciclo di vita dello sviluppo del sistema e fornisce un'erogazione continua. Se il sistema attuale sta già utilizzando questi strumenti, puoi scegliere la versione aggiornata o continuare con lo stesso. Si consiglia sempre di utilizzare una sorta di strumenti CI/CD in quanto rende il processo di migrazione un po' semplice e sistematico per gli sviluppatori. Inoltre, il team di sviluppo dovrebbe seguire una rigorosa revisione del codice e un approccio push del codice, ad es. Modello GitFlow o GitHubFlow.
Dopo aver ottenuto i requisiti del progetto, l'ambito della migrazione e lo stack tecnologico, puoi facilmente selezionare un sostituto migliore per la tua piattaforma. Esistono diversi tipi di migrazione e prima di procedere con essa, vorrei chiarire una cosa che non tutte le migrazioni sono uguali e ciascuna delle migrazioni richiede un'adeguata pianificazione ed esecuzione. La migrazione e i suoi tipi sono argomenti molto più ampi, quindi ci sono 3 parti diverse in continuazione con questo blog in cui puoi ottenere informazioni dettagliate su ciascuna migrazione. Nel prossimo blog parleremo di Technology Migration con i suoi tipi. Quindi, resta sintonizzato!