Che cos’è l’ingegneria di rilascio?

L’ingegneria del rilascio, o releng, è il processo di preparazione del software completo per la distribuzione. Ciò può coinvolgere molte discipline di programmazione e di ingegneria separate e non tutte le definizioni di ingegneria di rilascio sono le stesse tra aziende diverse. Alcune delle attività che possono essere coinvolte nell’ingegneria dei rilasci includono la compilazione del codice sorgente, il monitoraggio e la manutenzione degli strumenti e degli ambienti di sviluppo, il mantenimento di una libreria di rilasci per tutta la durata di un programma e talvolta l’implementazione della distribuzione del software su un server o sistema live. Alcuni dei vantaggi di avere un tecnico di rilascio dedicato nel ciclo di sviluppo del software sono una migliore esperienza per gli utenti finali, poiché i metodi di rilascio vengono prima testati, una migliore documentazione complessiva del programma durante gli aggiornamenti e una sorta di controllo di qualità in situazioni in cui diversi parti di un programma provengono da fonti separate.

Durante lo sviluppo del software, arriva un momento in cui l’applicazione è completata e deve essere distribuita ai clienti o installata su un server live per poter essere utilizzata. Senza un ingegnere di rilascio, questo processo potrebbe comportare che gli sviluppatori compilino un programma tramite strumenti di sviluppo e quindi spostino i file binari sul supporto o sul server di destinazione. Alcuni dei problemi che si possono incontrare con questo processo sono che il programma potrebbe avere dipendenze non quantificate, che alcune modifiche potrebbero essere dimenticate o, in definitiva, che il processo potrebbe non essere necessariamente riproducibile in futuro.

Una delle parti più grandi dell’ingegneria del rilascio è il monitoraggio dei progressi di come si sviluppa un programma. Ciò potrebbe significare utilizzare un sistema di versioning o impiegare altri software non solo per tracciare ed etichettare ogni passaggio di un programma durante il suo sviluppo, ma anche per memorizzare istantanee del programma in modo che possano essere richiamate in seguito. Oltre a gestire solo il codice sorgente, la creazione di un programma con successo richiede che vengano archiviate anche le informazioni sugli strumenti utilizzati e le diverse librerie o altre risorse impiegate. L’obiettivo finale è essere in grado di ricompilare un programma in qualsiasi fase del suo sviluppo, indipendentemente dai sistemi di sviluppo utilizzati per crearlo.

Un’altra possibile parte dell’ingegneria del rilascio è la preparazione di un’applicazione per la distribuzione ai clienti. Una volta che il programma è stato compilato in binari, vengono sviluppati ed esplorati i metodi per ottenere l’installazione del programma sul computer di un utente finale. Ciò potrebbe comportare la scrittura di un programma di installazione o il test del programma in diverse situazioni se è attivo per garantire che funzioni secondo le specifiche. L’ingegneria del rilascio a volte comporta l’installazione di un programma più volte su più sistemi per garantire che configurazioni o errori diversi vengano gestiti nel modo corretto.