Skip to main content

Come sicuramente saprai, nell'ingegneria del software, la gestione della configurazione software (SCM) si riferisce a un processo per mantenere sistemi informatici, server e software in uno stato desiderato e coerente. 

A volte chiamata gestione delle modifiche software o automazione IT, l'idea è di avere un sistema in grado di tracciare e confrontare le modifiche apportate a un sistema durante il processo di sviluppo software e anche identificare chi ha effettuato queste revisioni.

Lo scopo è rendere la gestione del progetto più semplice, minimizzare gli errori, aumentare la tracciabilità e migliorare la qualità complessiva del software. 

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

I vantaggi di un processo SCM sono:

  • Aggiornamenti Multi-Utente: Spesso molte persone lavorano allo sviluppo software, il che significa che ci sono aggiornamenti e cambiamenti costanti. L’SCM consente di tracciare tutto il codice e le configurazioni distribuite in produzione (nota anche come audit di configurazione) e introduce anche la tracciabilità determinando quale contributore ha effettuato ciascuna modifica.
  • Produttività: L’SCM aumenta la produttività del software assicurando il minimo numero di errori. Ad esempio, è sempre possibile assicurarsi che gli ambienti di test e di produzione siano corrispondenti.
  • Comunicazione e Collaborazione: La comunicazione tra i membri del team è facilitata dall’SCM, rendendo semplice per tutte le parti coinvolte nel progetto lavorare insieme e migliorare la qualità del prodotto. 
  • Test su Piattaforme e Sistemi Operativi: Garantisce che il software funzioni efficacemente su più piattaforme e sistemi operativi. 
  • Gestione dei Cambiamenti: L’SCM rende più semplice accogliere cambiamenti di programma, politica e utenti.
  • Controllo dei Costi: Tracciando i membri del team e il flusso di lavoro del progetto, l’SCM aiuta a controllare i costi e ad aumentare l’efficienza.

In questo articolo, ti guiderò attraverso i diversi passaggi di un processo SCM, chi deve essere coinvolto e quali strumenti sono disponibili per aiutarti.

I 5 passaggi di un piano SCM

Il processo di gestione della configurazione software è una serie di passaggi progettati per tracciare e gestire tutti i difetti, risorse, codici, documenti, hardware e budget durante un progetto.

L’SCM è un processo interdisciplinare che coinvolge persone a ogni livello, inclusi DevOps, sviluppatori, project manager/owner, SysAdmin e tester. 

1. Pianificazione e Identificazione

Il primo passo del processo è la pianificazione e identificazione. In questa fase, l'obiettivo è pianificare lo sviluppo del progetto software e identificare gli elementi all'interno dell’ambito. Questo si realizza organizzando riunioni e sessioni di brainstorming con il team per definire i criteri di base per il resto del progetto. 

Parte di questo processo consiste nel capire come proseguirà il progetto e nell'identificare i criteri di uscita. In questo modo, il team saprà riconoscere quando tutti gli obiettivi del progetto sono stati raggiunti. 

Le attività specifiche durante questo passaggio includono:

  • Identificare elementi come casi di test, requisiti di specifiche e moduli di codice
  • Identificare ciascun elemento di configurazione software nel processo
  • Raggruppare i dettagli base su perché, quando e quali cambiamenti saranno effettuati e chi sarà incaricato di effettuarli
  • Creare un elenco delle risorse necessarie, come strumenti, file, documenti, ecc.

2. Controllo delle Versioni e Baseline

La fase di controllo delle versioni e baseline assicura l’integrità continua del prodotto identificando una versione accettata del software. Questa baseline viene designata in un momento specifico del processo SCM e può essere modificata solo tramite una procedura formale. 

Lo scopo di questa fase è controllare i cambiamenti apportati al prodotto. Man mano che il progetto si sviluppa, vengono stabilite nuove baseline, dando origine a diverse versioni del software.  

Questa fase prevede le seguenti attività:

  • Identificare e classificare i componenti coperti dal progetto
  • Sviluppare un metodo per tracciare la gerarchia delle diverse versioni del software
  • Individuare le relazioni essenziali tra i vari componenti
  • Stabilire diverse baseline per il prodotto, comprese quella di sviluppo, funzionale e di prodotto
  • Sviluppare uno schema standardizzato di etichettatura per tutti i prodotti, revisioni e file in modo che tutti siano allineati.

Stabilire una baseline per un attributo di progetto implica l’applicazione obbligatoria di procedure formali di controllo delle modifiche di configurazione nel caso in cui questi attributi vengano modificati. 

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

3. Controllo delle Modifiche

Il controllo delle modifiche è il metodo utilizzato per garantire che tutte le variazioni apportate siano coerenti con il resto del progetto. Avere questi controlli in atto facilita l'assicurazione della qualità, oltre che l'approvazione e il rilascio di nuove baseline. Il controllo delle modifiche è essenziale per il successo del progetto. 

In questa fase, le richieste di modifica delle configurazioni vengono presentate al team e approvate o respinte dal responsabile della configurazione del software. I tipi di richieste più comuni riguardano l'aggiunta o la modifica di vari elementi di configurazione o il cambiamento dei permessi utente.

Questa procedura include:

  • Controllo delle modifiche ad hoc richieste dal cliente
  • Verifica della validità della richiesta di modifica analizzando l'impatto complessivo sul progetto
  • Realizzazione delle modifiche approvate o spiegazione delle motivazioni per cui le richieste sono state respinte.

4. Registrazione dello stato della configurazione

La fase successiva consiste nell'assicurarsi che il progetto si stia sviluppando secondo il piano, attraverso test e verifiche basati sulle baseline predefinite. Ciò comporta l'esame delle note di rilascio e dei documenti correlati per garantire che il software soddisfi tutti i requisiti funzionali. 

La registrazione dello stato della configurazione traccia ogni versione rilasciata durante il processo, valutando le novità di ciascuna versione e le motivazioni delle modifiche. Alcune delle attività in questa fase includono:

  • Registrazione e valutazione delle modifiche effettuate da una baseline all'altra
  • Monitoraggio dello stato e della risoluzione di tutte le richieste di modifica
  • Mantenimento della documentazione relativa a ogni modifica effettuata come conseguenza delle richieste e per raggiungere una nuova baseline
  • Verifica delle versioni precedenti per analisi e test.

5. Audit e revisioni

L'ultima fase consiste in una revisione tecnica di ogni fase del ciclo di vita dello sviluppo software. Audit e revisioni analizzano il processo, le configurazioni, il flusso di lavoro, le richieste di modifica e tutto ciò che è stato svolto per sviluppare ciascuna baseline durante tutto il progetto. 

Il team esegue più revisioni dell'applicativo per verificarne l'integrità e prepara inoltre la documentazione essenziale di accompagnamento come note di rilascio, manuali utente e guide di installazione.

Le attività di questa fase includono:

  • Verifica che gli obiettivi definiti nella fase di pianificazione e identificazione siano stati raggiunti
  • Assicurarsi che il software sia conforme agli standard di controllo della configurazione identificati
  • Verifica che le modifiche delle baseline siano coerenti con la documentazione
  • Validazione che il progetto sia coerente e completo rispetto agli obiettivi prefissati.

A differenza dei sistemi tradizionali di gestione file, un software specializzato per la gestione dei database può offrire funzionalità avanzate come integrità e sicurezza dei dati, aspetti fondamentali per una gestione efficace della configurazione software.

Chi è coinvolto nel processo di configurazione del software?

Il processo SCM è multidisciplinare e coinvolge praticamente tutti i membri del team di sviluppo software.

Responsabile della configurazione

Il responsabile della configurazione è incaricato di definire chi è responsabile di cosa lungo tutto il processo di sviluppo. Si assicura che tutti seguano il processo SCM nell'intero progetto ed è l'autorità finale su ogni richiesta di modifica. 

Project Manager

Il ruolo del project manager è fondamentale per il processo SCM. Definisce i tempi del progetto per garantire il rispetto delle scadenze e redige resoconti sull'avanzamento del team. Un altro ruolo importante è assicurarsi che ogni membro segua le linee guida predefinite per la creazione, la modifica e il test del software.

Sviluppatori software

Gli sviluppatori sono responsabili della scrittura del codice durante lo sviluppo oltre che dell'adattamento a qualsiasi richiesta di modifica approvata. 

Auditor

Questo ruolo si occupa di tutti gli audit e le revisioni e deve garantire che la versione finale sia completa e coerente.

Quali sono i vantaggi dell'utilizzo di strumenti di gestione della configurazione?

Esistono numerosi strumenti disponibili per facilitare il processo di gestione della configurazione software. Lo scopo di questi strumenti è l'automazione di attività tradizionalmente manuali, consentendo maggiore accuratezza, velocità e controllo. Più specificamente, possono essere d'aiuto per:

  • Avvisi e Report: Un buon strumento SCM fornirà avvisi e report se ci sono deviazioni rispetto alla baseline concordata. Questi dati verranno inviati quasi in tempo reale, consentendo ai responsabili di agire rapidamente se qualcosa va storto. 
  • Tracciamento delle Modifiche: Gli strumenti SCM tracceranno automaticamente le modifiche ai server o alle applicazioni e permetteranno anche l'inserimento manuale di tali dati. L'audit delle modifiche può essere eseguito anche tramite il monitoraggio degli output degli script. 
  • Confronto delle Configurazioni: I migliori strumenti di gestione della configurazione software offrono un modo per identificare le differenze tra le configurazioni.
  • Risoluzione dei Problemi più Rapida: Errori, passi falsi e problemi vengono individuati rapidamente così che gli sviluppatori possano intervenire prima che il problema si aggravi. 
  • Tracciamento dell'Inventario: La maggior parte degli strumenti SCM dispone di una funzione per tracciare le risorse hardware e software così da non dover mantenere un elenco manuale. 
  • Gestione delle Patch: Gli strumenti SCM possono aiutarti a tracciare tutti i dettagli relativi alla gestione delle patch mentre distribuisci il software aggiornato. 

Ci sono svantaggi nell'usare uno strumento di gestione della configurazione software?

Ci sono alcuni aspetti da considerare prima di adottare uno strumento SCM, tra cui:

  • Consumo di Risorse: È necessario disporre delle risorse per supportare il processo dall'inizio alla fine 
  • Limiti di Conoscenza: Tutte le persone coinvolte devono avere una conoscenza approfondita degli strumenti di gestione del software utilizzati
  • Svantaggio per le PMI: L'entità di quanto necessario per utilizzare efficacemente questi strumenti può essere difficile da sostenere per una piccola azienda
  • Specifiche Hardware: È richiesto hardware veloce e altamente configurato affinché il processo si svolga senza intoppi.

Considerazioni Finali sulla Gestione della Configurazione Software

Qui sopra ho presentato una panoramica generale di ciò che devi sapere per impostare un processo di gestione della configurazione software che consenta di tracciare, controllare e gestire i tuoi progetti. 

Strumenti SCM come Ansible o TeamCity aiutano ad automatizzare molti aspetti del processo SCM e possono rappresentare un ottimo ritorno sull’investimento. Puoi vedere la nostra selezione in questo articolo sui 10 migliori strumenti di gestione della configurazione software.
Il mondo della gestione della configurazione software e della QA si sta evolvendo rapidamente. Iscriviti alla newsletter The QA Lead per ricevere direttamente nella tua casella suggerimenti pratici, trucchi e strumenti utili.

Oppure, continua ad approfondire ascoltando questo podcast: LA GENERAZIONE DELL'AUTOMAZIONE AUTONOMA E COSA SIGNIFICA (CON BERTOLD KOLICS DI MABL) oppure leggi questa lista: GLI ULTIMI 10 STRUMENTI DI TESTING UTILIZZATI DAI QA