NaN1fy

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.