A
Action
Su GitHub, un "action" (azione) si riferisce a GitHub Actions, che è un servizio di automazione integrato direttamente nella piattaforma GitHub. GitHub Actions consente l'automatizzazione di diversi processi nel ciclo di vita dello sviluppo del software, quali la compilazione del codice, i test automatici, la distribuzione e altro ancora.
Apache Maven
Strumento di gestione di progetti software basati su Java e build automation.
Architettura
Organizzazione fondamentale di un sistema, definita dai suoi componenti, dalle relazioni reciproche tra i componenti e con l'ambiente, e i principi che ne governano la progettazione e l'evoluzione.
B
Bar chart
Particolare tipo di diagramma, si tratta di una variante dell'istogramma, in cui la frequenza assoluta è posizionata nell'asse delle ascisse, mentre le diverse variabili sono associate all'asse delle ordinate e rappresentate quindi come rettangoli a sviluppo orizzontale.
Baseline
Una "baseline" indica una configurazione stabile e controllata di un sistema o di un prodotto in un particolare momento del suo ciclo di vita. Questa configurazione può comprendere specifiche tecniche, documentazione, codice sorgente o altri elementi critici che definiscono le caratteristiche e le funzionalità del sistema. Le baseline costituiscono un punto di riferimento essenziale per valutare eventuali modifiche, monitorare il progresso e garantire la coerenza nel tempo.
Best practice
Il modo migliore per condurre la produzione. Si basa su procedure ripetibili che nel tempo hanno dimostrato di essere le migliori sia per l'efficienza (meno sforzo richiesto) sia per l'efficacia (migliori risultati). Seguire le buone pratiche assicura il raggiungimento degli obiettivi massimizzando economia e qualità.
Board
Su GitHub, un project board, o più semplicemente board, rappresenta uno strumento fondamentale per organizzare e monitorare le attività di un progetto. È composto da colonne che riflettono lo stato delle attività. Gli issue e le pull request possono essere assegnati a tali colonne per indicarne lo stato attuale.
Boolean
Tipo di dato che esprime un valore di verità secondo un'algebra di Bool. Viene espresso con i due valori "true" e "false" rappresentati dai numeri 1 e 0.
Branch
Nel campo dello sviluppo software, un branch costituisce una copia indipendente del codice sorgente che consente agli sviluppatori di lavorare su modifiche separate senza impattare direttamente il flusso principale. I branch agevolano lo sviluppo simultaneo e la gestione delle versioni.
Broker
Nel contesto Kafka, è il nodo del cluster Kafka che riceve, memorizza, replica e distribuisce i messaggi ai consumatori.
Budget At Completion
Costo complessivo del progetto pianificato per eseguire tutte le attività e consegnare il prodotto finale.
C
CA
Acronimo di "Customer Acceptance", identifica la fase nella quale il prodotto viene approvato pubblicamente dalla Proponente.
Capitolato
Un capitolato è un documento che definisce le specifiche, i requisiti e le principali condizioni di un progetto o di un appalto. Serve a delineare in modo dettagliato ciò che deve essere realizzato, le prestazioni attese e le regole da seguire. Fornisce una base solida per la pianificazione e l'esecuzione del progetto, garantendo una chiara comprensione delle aspettative da parte di tutte le parti coinvolte e identificando un problema o un bisogno da risolvere.
ClickHouse
Database distribuito open-source progettato per eseguire query analitiche su grandi quantità di dati con prestazioni elevate. Ideale per applicazioni che necessitano di analisi e report in tempo reale su dataset di grandi dimensioni, quali log di sistema, dati di sensori, analisi delle attività online, e altro ancora.
Commit
Salvataggio e versionamento di uno snapshot di tutti i file modificati nella repository.
Committente
Soggetto per conto del quale viene realizzata un'opera o svolto un servizio.
Consuntivo
Bilancio dei risultati ottenuti a rendiconto di un certo periodo temporale di attività, in termini di tempo e risorse.
Container
Un container è una tecnologia che permette di eseguire e distribuire applicazioni in un ambiente isolato e portatile all'interno di un sistema operativo ospite. In un container sono inclusi tutti gli elementi necessari per l'esecuzione di un'applicazione, come il codice, le librerie, le dipendenze e i file di esecuzione. I container sono leggeri, veloci da avviare e possono essere gestiti in modo efficiente su infrastrutture distribuite. Una delle implementazioni più diffuse dei container è Docker.
D
Dashboard
Interfaccia grafica per utente che mette a disposizione vari elementi grafici atti alla visualizzazione di dati o gestione di sistemi.
Data pipeline
Una data pipeline nell'ambito del data engineering è un flusso organizzato di processi che estraggono, trasformano e caricano i dati da diverse fonti verso un luogo di destinazione, spesso un sistema di archiviazione o un data warehouse. In modo conciso, potrebbe essere considerata come un "condotto" che gestisce il flusso dei dati attraverso diverse fasi.
Database
Un sistema organizzato per la raccolta, la memorizzazione e la gestione di dati strutturati in modo che possano essere facilmente recuperati, aggiornati ed elaborati.
Discord
Discord è una piattaforma di comunicazione online che unisce chat testuale, vocale e video. Gli utenti possono creare server, organizzare discussioni in canali e personalizzare l'esperienza di comunicazione. Discord offre anche un sistema di ruoli e autorizzazioni per controllare l'accesso degli utenti e definire le loro capacità all'interno del server. Supporta inoltre bot e integrazioni di terze parti per aggiungere funzionalità personalizzate ai server.
Docker
Una piattaforma open-source che automatizza il processo di distribuzione delle applicazioni all'interno di contenitori leggeri e portabili.
Docker Compose
Uno strumento per definire ed eseguire applicazioni Docker multi-container. Permette di configurare un'applicazione complessa con più servizi e relative dipendenze in un singolo file.
F
Flink
Stream-processing e batch-processing framework open-source, che offre uno streaming engine con alto throughput, bassa latenza. Supporta event-time processing e state management.
Framework
Il framework è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) sulla quale un software può essere progettato e realizzato, spesso facilitandone lo sviluppo da parte del programmatore.
Funzionalità
Attributo di un particolare prodotto o componente software utilizzato per scopi operativi.
G
Gantt
Grafico a barre di completamento utilizzato per tracciare lo stato di avanzamento (anche temporalmente) di un insieme o più di task correlati a una determinata milestone.
Gauge
Grafico, detto a quadrante o a tachimetro, in cui il dato interessato viene visualizzato in relazione alla quantità dei dati di quel grafico.
Geomap
Mappa, concernente una determinata zona, nella quale vengono rappresentati insieme ai dati geografici anche eventuali dati che interessano il prodotto.
Git
Git è un sistema di controllo delle versioni distribuito (DVCS), progettato per tracciare le modifiche nel codice sorgente durante lo sviluppo del software. È uno strumento essenziale per la gestione del controllo delle versioni, che consente agli sviluppatori di lavorare in modo collaborativo e di tenere traccia delle modifiche apportate al codice nel tempo, permettendo inoltre il ripristino a versioni precedenti del software in modo controllato.
GitHub
GitHub è una piattaforma di sviluppo collaborativo basata su Git che consente agli sviluppatori di lavorare insieme, gestire le versioni del codice sorgente e facilitare la collaborazione in progetti software. Le sue principali caratteristiche includono repository per il controllo delle versioni, strumenti di tracciamento dei problemi (issues) e funzionalità di gestione dei progetti (project boards).
Grafana
Piattaforma open-source per analizzare e visualizzare i dati, dotata di strumenti avanzati per creare dashboard interattive, report e grafici, permettendo agli utenti di monitorare e comprendere meglio le metriche provenienti da diverse fonti di dati.
I
IEC
Acronimo di International Electrotechnical Commission, organizzazione internazionale che si occupa dello studio e della pubblicazione di standard per tutte le tecnologie elettriche, elettroniche e correlate. L'IEC gestisce anche quattro sistemi globali di valutazione che certificano la conformità di apparecchiature, sistemi e componenti agli standard internazionali.
ISO
Acronimo di International Organization for Standardization, organizzazione di riferimento a livello mondiale per le normative di qualità, definite come standard nel settore.
Issue
In ambito di GitHub, un issue (problema) rappresenta un meccanismo attraverso il quale gli utenti possono segnalare, discutere e tenere traccia di attività specifiche all'interno di un progetto. Ogni issue ha un thread di commenti associato, consentendo la comunicazione tra i membri del team o i collaboratori esterni. Questo strumento facilita la collaborazione e la gestione delle attività nello sviluppo del software.
J
JSON
JSON (JavaScript Object Notation) è un formato di file standard aperto e un formato di interscambio dati che utilizza testo leggibile dall’uomo per memorizzare e trasmettere oggetti dati composti da coppie attributo-valore e array (o altri valori serializzabili).
Java
Linguaggio di programmazione ad alto livello, orientato agli oggetti e a tipizzazione statica.
K
Kafka
Piattaforma di streaming distribuita, progettata per la gestione di flussi di dati in tempo reale. Offre una soluzione scalabile e affidabile per la pubblicazione, la sottoscrizione e l'elaborazione di eventi in tempo reale all'interno di un sistema distribuito.
L
LaTeX
Un sistema di preparazione dei documenti basato su un linguaggio di markup. È spesso utilizzato per la creazione di documenti tecnici, accademici e scientifici.
Librerie
Insieme di funzioni o strutture dati predefinite e predisposte per essere riutilizzate da altri programmi software attraverso un'opportuna procedura di collegamento.
M
MVP
Minimum Viable Porduct è la versione di un prodotto con caratteristiche appena sufficienti per essere utilizzabile dai primi clienti, i quali possono quindi fornire feedback per lo sviluppo futuro del prodotto stesso.
Milestone
Una milestone è una data di calendario che indica un punto di avanzamento atteso. Nel contesto di GitHub o di altre piattaforme di gestione dei progetti, le milestone sono spesso utilizzate per organizzare e tenere traccia di gruppi di issues o di attività correlate. Associare un gruppo di issues a una milestone può aiutare a monitorare il progresso e a stabilire obiettivi intermedi, contribuendo a gestire in modo più efficace lo sviluppo del progetto.
Modello a V
Modello di sviluppo software che mette in luce i legami esistenti tra fase di sviluppo e fase di verifica. Predispone inoltre la creazione e l'utilizzo dei test di pari passo alle altre fasi dello sviluppo.
O
OLAP
Acronimo di "On-Line Analytical Processing", designa un insieme di tecniche software utili all'analisi interattiva e veloce di grandi moli di dati.
P
PB
Acronimo di "Product Baseline", identifica l'ultima revisione che un prodotto software, nel suo ciclo di vita, deve sostenere prima di essere considerato una versione stabile e funzionante di se stesso. Tale revisione si concentra sull'implementazione del codice e dei test e l'integrazione dei vari componenti.
Planning
Pianificazione.
Preventivo
Calcolo dei costi per un determinato lavoro o servizio, proposto da un professionista ad un'azienda o ad un privato.
Processo
Un insieme di attività collegate tra loro che trasformano gli input (bisogni) in output (prodotti), sfruttando risorse e conformandosi a regole prestabilite. Deve essere eseguito in modo sistematico, disciplinato e quantificabile.
Proof of Concept
Artificio usa-e-getta, sotto forma di demo eseguibile, realizzato all'inizio del progetto per valutare la fattibilità tecnologica del prodotto atteso rispetto a specifiche funzionalità individuate con il proponente. Non si pone quindi l'obiettivo di essere una baseline architetturale bensì tecnologica, per dimostrare la padronanza delle tecnologie necessarie da parte del team.
Proponente
Il proponente è colui che presenta ufficialmente l'iniziativa e promuove la sua realizzazione. È il cliente rispetto alle esigenze del prodotto e il mentore rispetto alle scelte di sviluppo.
Pull Request
Richiesta di fondere le modifiche eseguite su un branch con un'altro branch, intorno alla quale i collaboratori possono revisionare e discutere tali modifiche prima di integrarle nel branch.
Python
Linguaggio di programmazione ad alto livello, interpretato e general-purpose, noto per la sua sintassi chiara, facilità d'uso e ampia disponibilità di librerie e framework.
Q
Qualità
Riscontro oggettivo di misurazione di conformità alle specifiche attese. Viene misurata quantitativamente tramite scrutinio automatico/terzo e monitorabile.
R
RTB
Nel contesto dell'ingegneria del software, è una fase iniziale e fondamentale del processo di sviluppo del software. In questa fase, l'obiettivo principale è stabilire e comprendere i requisiti del sistema e definire la base tecnologica sulla quale il progetto si svilupperà. Le tre principali attività di questa fase sono: l'analisi dei requisiti, la definizione della baseline tecnologica e la definizione della baseline di progetto.
Real-time
Aggettivo utillizzato per definire che un attività in risposta ad un evento avviene immediatamente, o con ritardi trascurabili.
Refactoring
Rifacimento di una o più funzionalità di un prodotto rispetto alla progettazione e implementazione precedente, causato da una permuta di intenzioni e/o requisiti riguardanti il progetto.
Repository
Un repository, o più semplicemente repo, è uno spazio di archiviazione digitale utilizzato per conservare e gestire i file di un progetto, in particolare nel contesto del controllo delle versioni del software. Un repository può includere file di codice, documentazione, risorse multimediali o qualsiasi altro elemento necessario per il progetto.
S
SAL
Lo Stato Avanzamento dei Lavori (SAL) è un'attività che viene svolta periodicamente con l'azienda proponente del progetto con lo scopo di controllare come sta procedendo l'operato.
SQL
Linguaggio standardizzato per database basati sul modello relazionale che permette di creare, gestire e amministrare database.
Scrum
Scrum è una framework agile per la gestione dei progetti e lo sviluppo dei prodotti. Si basa su un approccio iterativo e incrementale, organizzando il lavoro in cicli chiamati "sprint". Ogni sprint ha una durata fissa (di solito da 2 a 4 settimane) e produce un incremento di prodotto funzionante. Le attività sono divise in compiti gestiti da un team auto-organizzato, con incontri regolari per la pianificazione, la revisione e il miglioramento continuo del processo.
Sensore
Dispositivo in grado di effettuare misurazioni relative al proprio dominio di interesse. Questi dati possono essere letti ed utilizzati dal sistema.
Sistema
Insieme di parti che interagiscono tra loro seguendo un determinato set di regole e concorrono al funzionamento dell'insieme stesso come singola entità.
Sistema
Insiemi di programmi che individuano prodotti software complessi. Questi prodotti sono costruiti o studiati in termini di macro-componenti, della loro organizzazione e delle loro interazioni. La struttura di un sistema software è detta architettura software.
Smart City
Area urbana che implementa tecnologie avanzate per gestire in modo intelligente le risorse e creare un ambiente di vita più sostenibile, efficiente e abitabile.
Sprint
Periodo di tempo prefissato entro il quale lavorare producendo dei risultati documentati: sono il nucleo delle metodologie Agile, atte a produrre risultati discreti in dimensione ma in maniera costante.
Stakeholder
Qualsiasi individuo, gruppo o organizzazione che ha un interesse diretto o indiretto in un'impresa, progetto o decisione.
Standard
Insieme di norme o modello utilizzati per l'uniformazione e omologazione di una data attività.
Stream Processing
Pipeline di elaborazione e trasporto dati
T
Task
Attività correlata ad una issue e assegnata a un membro del team.
Telegram
Telegram è un'applicazione di messaggistica istantanea e una piattaforma di comunicazione che consente agli utenti di scambiare messaggi di testo, foto, video, documenti e altri tipi di file.
Test
Attività atta a verificare le funzionalità di un determinato prodotto, individuandone eventuali carenze.
Time Series
Grafico nel quale l'asse delle ascisse è costituito da unità temporali.
Topic
In Apache Kafka, un "topic" è una categoria o una suddivisione logica dei dati che consente di organizzare e suddividere i flussi di messaggi. I topic sono fondamentali nel modello di pubblicazione/sottoscrizione di Kafka, dove i produttori inviano messaggi a specifici topic e i consumatori si sottoscrivono a tali topic per ricevere i messaggi di loro interesse.
U
UML
Acronimo di Unified Modeling Language, utilizzato comunemente nel contesto dello sviluppo software per descrivere ed analizzare in modo immediato un progetto, illustrando le interazioni con il sistema da parte degli attori coinvolti.
User Story
Breve descrizione, in linguaggio naturale, di una funzionalità desiderata dal punto di vista dell'utente finale o del cliente.
V
Versionamento
Processo che realizza il cosiddetto "version control", stabilendo la cronologia delle azioni compiute per una determinata attività, tracciando i cambiamenti e fornendo la possibilità di tornare a uno stato precedente se necessario.
W
Way of Working
Il Way of Working, noto anche come "modo di lavorare", stabilisce l'organizzazione ottimale delle attività di progetto per garantire un'operatività professionale del team. Questo comprende processi operativi, procedure, norme comportamentali e l'utilizzo di strumenti o tecnologie specifiche. L'adozione di un Way of Working efficace può favorire il successo e migliorare la produttività nell'esecuzione delle attività necessarie.
Widget
Un widget in Grafana è un componente grafico utilizzato per visualizzare i dati su una dashboard.
X
XML
Metalinguaggio per la definizione di linguaggi di markup, ovvero un linguaggio basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo.
Y
YAML
Formato per la serializzazione di dati e gestione delle configurazioni.