Glossario
A
Modello iterativo/incrementale che si basa sulla comunicazione/collaborazione. Lo scopo di questo modello è di suddividere il lavoro a piccoli incrementi a valore aggiunto, realizzati in sequenza continua dall’analisi all’integrazione, dimostrando in modo trasparente al cliente quanto fatto e tracciando l’avanzamento secondo un progresso reale e concreto.
Segnalazioni automatiche generate dal sistema in risposta a eventi rilevanti, come esauri mento scorte, errori di trasferimento, o necessità di approvazione.
Ricopre un ruolo di alto livello e dedica il minor numero di ore, in quanto non è costante mente coinvolto nello sviluppo. È responsabile di garantire l’efficacia delle tecnologie e degli strumenti utilizzati, supportando la collaborazione del team con attività come test automatici e risoluzione di malfunzionamenti. Assicura l’efficienza di procedure, strumenti e tecnologie a supporto del Way of Working, contribuendo alla stabilità del progetto e riducendo i tempi di inattività, migliorando così l’efficienza complessiva.
Processo di esame e interpretazione del capitolato per individuare i bisogni del committente, formalizzare i requisiti funzionali e non funzionali del sistema, e proporre soluzioni che li soddisfino. Il risultato è un documento strutturato che guida lo sviluppo del software, assicurando coerenza tra le aspettative del cliente e il prodotto finale.
Svolge un ruolo chiave nelle fasi iniziali, fornendo basi solide a progettisti e programmatori. Il suo impegno orario, inferiore alla media degli altri ruoli, si concentra sull’analisi e la definizione dei requisiti, garantendo chiarezza e completezza delle specifiche progettuali.
Sta per «Application Programming Interface» e significa «interfaccia di programmazione delle applicazioni». È un insieme di regole e protocolli che consentono a diverse applicazioni software di interagire e scambiarsi dati e funzionalità.
Attività di acquisizione di prodotti o materiali necessari per garantire il funzionamento del magazzino. Include ordini da fornitori esterni o trasferimenti da altri magazzini.
Struttura organizzativa di un sistema, sia esso hardware, software o di rete, che definisce come i suoi componenti interagiscono e cooperano per svolgere le funzioni richieste. Si tratta di una progettazione che include dettagli come l’organizzazione fisica dei componenti, i protocolli di comunicazione e le interazioni tra i diversi elementi.
Meccanismo per verificare l’identità di un utente prima di concedere accesso al sistema.
Sistema di autenticazione che richiede due forme di verifica (es. password + codice via SMS) per garantire una maggiore sicurezza.
B
Elenco ordinato di attività, funzionalità o modifiche da implementare in un progetto.
Copia di sicurezza dei dati, utile per ripristinare le informazioni in caso di guasti o perdite.
La baseline di progetto è un punto di riferimento fisso utilizzato per confrontare le prestazioni dei progetti nel tempo. Le baseline di progetto sono utilizzate dai project manager per verificare l’andamento dell’ambito, della programmazione e dei costi del progetto fino al suo completamento.
Versione separata di un progetto o codice, utilizzata per sviluppare nuove funzionalità senza modificare la versione principale.
Correzione di un bug, ovvero di un errore nel software o nel codice.
C
Documento formale che descrive in modo dettagliato le esigenze, i requisiti e i vincoli di un progetto software, forniti dal committente. Costituisce la base per l’analisi dei requisiti e guida lo sviluppo del sistema. Viene utilizzato anche come base per la negoziazione e per la gestione delle modifiche durante l’esecuzione del progetto.
Documento elettronico che attesta l’identità di un’entità online, garantendo comunicazioni sicure.
Dirigente di primo livello responsabile delle scelte tecnologiche di un’azienda. Valuta, seleziona e propone le soluzioni tecniche più adatte per supportare lo sviluppo di prodot ti o servizi, garantendo l’allineamento tra innovazione tecnologica e obiettivi strategici dell’organizzazione. Fa parte del consiglio direttivo e collabora con le altre funzioni aziendali per guidare l’evoluzione tecnologica.
Insieme di pratiche di integrazione continua (Continuous Integration) e distribuzione conti nua (Continuous Deployment) per automatizzare test e rilascio del software.
Processo di trasformazione dei dati in un formato illeggibile, al fine di proteggerli da accessi non autorizzati.
È un componente software o hardware che accede ai servizi o risorse di un «server». In sostanza, il client è il programma o dispositivo che effettua una richiesta al server per ricevere dati, servizi o per eseguire un’azione.
Persona, azienda o ente che commissiona, finanzia e utilizzerà direttamente o indirettamente il prodotto software. Il cliente può coincidere o meno con il committente, e ha interesse nel risultato finale del progetto. È coinvolto nei processi decisionali, nella validazione del prodotto e nella sua eventuale accettazione e manutenzione post rilascio.
Operazione con cui si salvano modifiche al codice sorgente in un sistema di controllo versione.
Persona o organizzazione che incarica formalmente un team di sviluppo di realizzare un sistema software. È responsabile della definizione iniziale degli obiettivi, dei requisiti e dei vincoli del progetto, e può partecipare attivamente alle fasi di analisi, verifica e validazione. Il committente rappresenta il punto di riferimento principale per comprendere le esigenze da soddisfare.
Capacità dei sistemi dei magazzini di restare collegati alla rete o al sistema centrale.
Ambiente isolato e leggero che include tutto il necessario per eseguire un’applicazione (codice, Code Alchemists librerie, dipendenze), utilizzando il kernel del sistema operativo sottostante, garantendo portabilità e coerenza tra diversi sistemi.
D
Interfaccia utente centralizzata che visualizza in tempo reale informazioni sul sistema.
E
F
È un metodo sicuro e legale per firmare documenti digitali, garantendo l’autenticità, l’integrità e il non ripudio del firmatario.
G
Documento contenente parole o frasi che non sono di uso comune, ma che sono state scelte per essere più specifiche e per evitare ambiguità.
H
Processo che converte un input di dati di lunghezza variabile in un output di lunghezza fissa, chiamato «hash» o «digest». Questo output è una sequenza di caratteri che può essere utilizzata per rappresentare in modo compatto l’input originale, e che cambia in modo sensibile al cambiamento del contenuto dell’input. L’obiettivo principale dell’hashing è garantire l’integrità dei dati e convalidare i dati originali.
I
Qualcosa che viene sviluppato o costruito in modo graduale, per piccoli passi, aggiungendo funzionalità o miglioramenti a una versione precedente.
Correttezza e coerenza dei dati nel sistema.
Accesso non autorizzato a un sistema informatico.
Elenco dettagliato e aggiornato delle scorte disponibili in un magazzino.
Un processo iterativo è un ciclo di lavoro ripetuto in cui un team crea, prototipizza, testa e migliora un prodotto o un progetto fino a raggiungere il risultato desiderato. Questo approccio è molto comune nello sviluppo software, dove si suddivide il progetto in cicli o iterazioni più piccoli, permettendo di ricevere feedback e apportare modifiche in corso d’opera.
J
K
L
M
Figura esperta che supporta uno sviluppatore o un team junior nell’ambito dell’ingegneria del software, offrendo guida tecnica, consigli pratici e orientamento nel processo di crescita professionale.
Operazione che unisce due rami di sviluppo in un unico ramo.
Meccanismo di autenticazione che richiede più elementi di verifica per confermare l’identità di un utente.
Architettura software composta da piccoli servizi indipendenti che comunicano tra loro.
Caratteristica di un sistema progettato come insieme di componenti indipendenti e riutiliz zabili.
Processo di osservazione, controllo e valutazione delle prestazioni di un sistema, di un componente o di un servizio informatico. Questo processo permette di monitorare lo stato attuale e le prestazioni di un sistema per individuare eventuali problemi o anomalie.
N
Unità del sistema distribuito che può operare in modo autonomo e sincronizzarsi con il sistema centrale.
O
Coordinamento automatico di più servizi o componenti di un sistema complesso.
Richieste formali per trasferimenti o rifornimenti di prodotti.
P
Termine utilizzato anche per riferirsi a una password o a un identificatore.
Documento che ha lo scopo di definire le modalità di qualifica e verifica del prodotto software. Esso rappresenta un indice di valutazione del prodotto software, delle sue componenti e degli strumenti utilizzati, al fine di garantire la qualità del prodotto finale e un continuo miglioramento del processo di sviluppo.
Oggetto fisico stoccato in un magazzino, trasferibile, vendibile o utilizzabile.
Con un impegno orario medio alto, garantisce una solida base al progetto. Trasforma i requisiti in un design architetturale strutturato, definendo l’organizzazione del sistema. Un progetto mal progettato può compromettere lo sviluppo, rendendo cruciale il suo ruolo. Assicura soluzioni affidabili, efficienti, sicure e conformi ai requisiti degli utenti finali.
Figura centrale nello sviluppo, dedica il maggior numero di ore al progetto. È responsabile dell’implementazione del software, rispettando specifiche e requisiti, in collaborazione con il Progettista. Cura l’ottimizzazione del codice per migliorarne le prestazioni e sviluppa funzio nalità avanzate, richiedendo competenze nei linguaggi di programmazione, nelle tecnologie adottate e nella risoluzione di problemi tecnici.
Dimostrazione pratica, limitata e sperimentale, utilizzata per verificare la fattibilità tecnica o funzionale di un’idea, tecnologia o soluzione software. In ingegneria del software, una PoC serve a validare concetti chiave prima di investire risorse nello sviluppo completo, mostrando che un certo approccio può funzionare in un contesto reale. Non è un prodotto finito, ma uno strumento per ridurre il rischio progettuale e supportare decisioni tecniche o strategiche.
Insieme di regole che regolano la comunicazione tra dispositivi di rete o componenti software.
Q
R
Soprattutto nel contesto di Git, «rebase» significa ricalcolare o riapplicare i commit di un branch (una linea di sviluppo) su un altro branch, creando una cronologia lineare e pulita. In pratica, si muovono i commit di un branch su un altro, come se fossero stati fatti in sequenza invece di essere stati originati da un punto di divergenza.
Indica il processo di ripristino di dati, applicazioni o sistemi informatici dopo un malfunzio namento, un errore o un disastro. Questo può includere il ripristino di dati da un backup, il recupero di file cancellati, o la riattivazione di un sistema interrotto.
È una tecnica di ingegneria del software che consiste nel ristrutturare il codice sorgente di un programma, senza alterare il suo comportamento esterno, per migliorarne la qualità, leggibilità e manutenibilità. L’obiettivo è rendere il codice più semplice, efficiente e più facile da comprendere per gli sviluppatori.
Archivio centralizzato e strutturato che consente la conservazione, la gestione e la condivi sione di risorse digitali, quali codice sorgente, documentazione, librerie, configurazioni e dati. Garantisce la collaborazione tra più sviluppatori, l’integrità e la tracciabilità del progetto nel tempo.
Nel contesto dello sviluppo software, la baseline di progetto è un riferimento stabile che definisce i requisiti del sistema e le tecnologie impiegate per la loro realizzazione. Comprende la specifica dei requisiti funzionali e non funzionali, l’elenco delle tecnologie, delle librerie e delle piattaforme adottate, nonché le strategie di sviluppo e testing. Questa baseline è essenziale per il controllo dell’avanzamento del progetto e per la verifica della conformità del prodotto rispetto ai requisiti concordati con il cliente.
Specifica condizione o capacità che un sistema deve soddisfare per rispondere ai bisogni di business o utente.
Garantisce il completamento efficiente del progetto, rispettando obiettivi, tempistiche e aspettative del committente, coordinando ruoli e risorse. Data la rilevanza economica della posizione, il team ne ottimizza l’impiego per massimizzare l’efficienza e contenere i costi. Il ruolo richiede competenze nella gestione, risoluzione di criticità, coordinamento della comunicazione e pianificazione. Spetta inoltre al Responsabile approvare il rilascio di prodotti parziali o finali, software o documenti.
Processo di rifornimento delle scorte per mantenere livelli adeguati di disponibilità. Può essere attivato manualmente o in modo automatico.
Duplicazione di componenti critici per garantire la continuità di servizio anche in caso di guasti. Code Alchemists
Procedura per riportare un sistema operativo o dati persi allo stato precedente al guasto
S
Capacità del sistema di aumentare prestazioni e risorse in base alla domanda.
Quantità di prodotti o materiali presenti in magazzino in un dato momento.
È un framework agile che definisce un modo di lavorare per gestire progetti di sviluppo software in modo iterativo e incrementale. Si tratta di un approccio strutturato che aiuta i team a collaborare in modo efficace e a fornire risultati di alta qualità.
Dato che richiede protezione speciale contro accessi non autorizzati o divulgazioni.
Componente funzionale del sistema, responsabile ciascuno di una specifica attività.
Periodo di tempo specifico (timebox) in cui un team di sviluppo lavora in modo coordinato, seguendo una metodologia agile come Scrum, per completare una determinata quantità di lavoro.
T
Operazione che comporta lo spostamento fisico di prodotti tra magazzini.
U
V
È il processo di verificare che un software, un sistema o un processo informatico soddisfi determinati requisiti, standard o aspettative, e che sia idoneo all’uso previsto. Viene fatto una volta completato il progetto, confrontando il prodotto finale con le specifiche concordate.
È un’attività continua. Accerta che l’esecuzione delle attività attuate nel periodo concordato non abbia introdotto errori. La verifica viene eseguita ad ogni avanzamento intermedio meritevole di attenzione.
Assicura l’affidabilità dei test e migliora la qualità del software e della documentazione, rispettando gli standard concordati. Conoscendo il metodo di lavoro, garantisce l’esecuzione precisa di ogni task secondo le best practice. Il suo ruolo è continuo, assicurando il rispetto delle aspettative del cliente e il successo del progetto.
Debolezza o difetto che può essere sfruttato per compromettere la sicurezza o il funziona mento del sistema.
W
Approccio operativo e insieme di pratiche adottate da un team o organizzazione per gestire e completare un progetto.