Git e le fondamenta della Continuos Delivery
Git è sicuramente il miglior amico di un programmatore come solo un strumento essenziale ed esaustivo può esserlo.
Usato per tener traccia delle modifiche al codice prima e potente strumento di condivisione dopo, vediamo in questo articolo in che modo entra nel mondo della continuos delivery,

Partiamo dalla considerazione che ogni cosa che è necessaria alla build, al deploy, ai test e alla release dell’applicazione dovrebbe essere conservato in un sistema di versionamento.
Un elenco non esaustivo di cosa dovrebbe essere versionato:
- Script di test
- Test automatici
- Librerie
- Librerie esterne
- Script di creazione database
- Script di configurazione
- script di inizializzazione
- Codice dell’applicazione (naturalmente)
- Documentazione tecnica
- Documentazione dei requisiti
Tutte queste cose, ed altre, dovrebbero essere conservate in un sistema di versionamento e le versioni principali dovrebbero essere identificabili in modo semplice.
Perché tutto questo?
Perché rende possibile per un nuovo sviluppatore che entra a far parte del team sedersi ad una postazione e con un singolo comando (o pochi comandi) generare l’ambiente di sviluppo completo delle infrastrutture necessarie all’applicazione e l’applicazione stessa.
Quindi un ridotto costo di onboarding.
Non solo, attraverso le versioni si è sempre certi non solo dello stato dell’applicazione ma anche dell’infrastruttura e di conseguenza è facile passare da una versione all’altra con pochi passaggi (se non proprio un singolo passaggio).
Quindi un ridotto costo di gestione del ciclo di sviluppo/deploy.
Questo vuol dire avere un sistema sempre attivo che consegna valore agli utenti finali.
In questi tempi altamente mutevoli, che premiano le aziende che maggiormente sono in grado di raccogliere i feedback dei clienti, privarsi di un sistema che velocemente porta in contatto il prodotto con il cliente è sicuramente una scelta tattica e strategica sbagliata.
Costruire quindi un sistema di Continuos Integration / Continuos Delivery efficiente ed efficace potrebbe essere l’unica scelta se si vuole continuare a competere.
Le fondamenta di tutto è integrare un sistema di versionamento: Git è il vostro migliore alleato.
Sono un sviluppatore web.
La tecnologia che uso è quella di Microsoft (.NET MVC, .NETCore…)
Nella mia carriera ho ricoperto varie funzioni all’interno del team di sviluppo a partire dalla parte grafica con AngularJs/Angular8 e finendo con il coordinare il team da Business Owner (Agile/Scrum).
Ho tenuto diversi corsi di formazione e avvicinamento alla professione per giovani talenti; ho scoperto con stupore di avere una naturale propensione a questo tipo di attività a cui sicuramente darò seguito.
Nel team attualmente sono un developer, un po’ perché mi piace, un po’ perché così riesco a tenere sempre aggiornate le mie competenze.
Lavoro solo in consulenza e a progetto.