Glossario

Termini e definizioni del progetto

A

Agile

La programmazione Agile è caratterizzata da uno sviluppo iterativo e incrementale. Si concentra sulla realizzazione di un MVP il più rapidamente possibile, ottenendo un feedback continuo dai clienti e rispondendo ai cambiamenti dei requisiti o della tecnologia.

Ambienti di sviluppo

Configurazioni specifiche di hardware e software utilizzate per lo sviluppo e il testing di applicazioni.

Amministratore

Un amministratore è una persona responsabile del controllo e dell'amministrazione dell'ambiente di lavoro utilizzato dal gruppo ed è anche il punto di riferimento per quanto concerne le norme di progetto. Le sue principali mansioni sono: affrontare e risolvere le problematiche associate alla gestione dei processi, gestire l'archiviazione e le versioni della documentazione, gestire la configurazione del prodotto, redigere ed attuare le norme e le procedure per la gestione della qualità, amministrare le infrastrutture e i servizi per i processi di supporto.

Analisi Dei Requisiti

L'analisi dei requisiti è una fase fondamentale nello sviluppo del software, che comprende la raccolta, l'analisi, la documentazione e la comprensione delle esigenze e delle specifiche richieste dagli stakeholder per un sistema o un'applicazione software da sviluppare. Durante questa fase si formalizza quanto raccolto e si ottiene un documento dei requisiti, che descrive in modo chiaro e dettagliato le funzionalità del sistema.

Analista

Figura professionale con competenze avanzate riguardo l'attività di analisi dei requisiti ed il dominio applicativo del problema. Il suo ruolo è quello di identificare, documentare e comprendere a fondo le esigenze e le specifiche del progetto, traducendole in requisiti chiari e dettagliati. Si occupa di: analizzare il contesto di riferimento, definire il problema in esame e stabilire gli obiettivi da raggiungere, comprendere il problema e definire la complessità e i requisiti, redigere il documento Analisi dei requisiti, studiare i bisogni espliciti ed impliciti.

API

Un'API è un'interfaccia che consente a due sistemi software di comunicare tra loro. Le API definiscono un insieme di regole e protocolli che specificano come i dati devono essere inviati e ricevuti. Sono utilizzate, ad esempio, per collegare frontend e backend, accedere a servizi di terze parti (come mappe, notifiche o dati meteo) e sviluppare applicazioni integrate.

Archittettura

Struttura organizzativa di un sistema software che definisce i componenti, le loro relazioni e i principi di progettazione.

Artefatti

Documenti, diagrammi, codici o output creati durante lo sviluppo software, utilizzati per supportare il processo di sviluppo e la comunicazione tra i team.

B

Backend

Parte di un'applicazione che gestisce la logica di business, l'elaborazione dei dati e l'interazione con il database.

Bad Practice

Pratica di sviluppo o gestione software considerata inefficace o dannosa per la qualità del prodotto.

Baseline

Riferimento fisso in un progetto, come specifiche, piani o documenti, utilizzato per monitorare e confrontare i progressi.

Best Practice

Un insieme di metodi o approcci riconosciuti come i più efficaci e affidabili per raggiungere un obiettivo. Le best practice sono spesso basate su esperienze consolidate e standard del settore.

Branch

Un branch è una linea indipendente di sviluppo all'interno di un repository. Consente di creare una copia separata del codice principale (solitamente chiamato main o master) per lavorare su nuove funzionalità, correzioni di bug o esperimenti, senza modificare il codice stabile.

Brew

Gestore di pacchetti per macOS che semplifica l'installazione e la gestione di software da riga di comando.

BuddyBot

"Un chatbot progettato per aiutare e supportare i membri del team

Budget At Completion

Costo totale pianificato di un progetto alla sua conclusione.

Bug

Un errore o malfunzionamento in un programma software che causa risultati imprevisti o indesiderati. I bug possono derivare da errori di programmazione, progettazione o configurazione.

C

camelCase

Uno stile di scrittura di identificatori simile a PascalCase, ma con la prima parola in lettere minuscole e le successive con iniziali maiuscole. Esempio: `myVariableName`.

Capitolato

Documento che contiene le specifiche e le condizioni per lo sviluppo di un progetto software. Il capitolato viene redatto dal proponente e viene presentato ai fornitori o agli sviluppatori interessati a partecipare all'appalto per la realizzazione del prodotto software.

Casi d'Uso (UC)

Descrizioni delle interazioni tra gli utenti e il sistema, utilizzate per definire i requisiti funzionali.

Chat

Sistema di comunicazione testuale in tempo reale tra utenti.

Chatbot

Applicazione software che utilizza algoritmi di intelligenza artificiale per simulare una conversazione umana. I chatbot sono progettati per interagire con gli utenti attraverso messaggi di testo o vocali, rispondendo a domande, eseguendo attività o fornendo supporto in maniera automatica e personalizzata.

Choco

Gestore di pacchetti per Windows che automatizza l'installazione e la gestione di software.

Code block

Blocco di codice sorgente che può essere eseguito come un'unità indipendente.

Code Coverage

Percentuale di codice sorgente che viene eseguito durante i test automatizzati. Misura l'efficacia dei test nel verificare il funzionamento del codice.

Commit

Operazione di salvataggio nel repository Git che memorizza una versione specifica dei file, permettendo di tracciare le modifiche nel tempo.

Committente

Il committente è la persona o l'organizzazione che richiede la realizzazione di un progetto software e finanzia il suo sviluppo. Il committente definisce i requisiti e le specifiche del progetto e valuta il prodotto finale rispetto ai propri obiettivi e aspettative.

Confluence

Confluence è uno strumento collaborativo di gestione della conoscenza e documentazione, sviluppato da Atlassian, progettato per aiutare i team a creare, organizzare e condividere contenuti in un'unica piattaforma centralizzata.

Content Switch

Un cambiamento dinamico e fluido del contenuto visualizzato in una pagina web o interfaccia, spesso senza ricaricare la pagina. Implementato comunemente con tecnologie come JavaScript e framework come React.

Context switch

Processo mediante il quale il sistema operativo salva lo stato di un thread o processo e carica lo stato di un altro, permettendo l’esecuzione concorrente.

Contratto

Un accordo formale tra due o più parti che stabilisce obblighi, diritti e responsabilità reciproche, solitamente in forma scritta e legalmente vincolante. In ambito software, un contratto può riguardare la fornitura di servizi, lo sviluppo di un progetto o l'uso di un prodotto.

Cruscotto

Un cruscotto è un'interfaccia utente che fornisce una panoramica visiva delle informazioni più importanti, utilizzando grafici, tabelle e altri elementi visivi per rappresentare i dati in modo chiaro e conciso. I cruscotti sono ampiamente utilizzati in diversi contesti, come il monitoraggio delle prestazioni aziendali, la visualizzazione dei dati di analisi e la gestione dei progetti. Nel contesto dello sviluppo software, si riferisce a un'interfaccia grafica o a un'applicazione web che fornisce una panoramica visiva delle metriche e delle statistiche rilevanti per il controllo della qualità del software. Questo cruscotto di solito raccoglie dati da varie fonti, come sistemi di gestione del versionamento del codice, strumenti di test automatizzati, sistemi di monitoraggio delle prestazioni e altri strumenti di analisi. Il suo obiettivo principale è quello di fornire agli sviluppatori, ai tester e ai responsabili un modo rapido ed efficace per valutare lo stato del progetto, identificare eventuali problemi o anomalie e prendere decisioni basate sui dati per migliorare la qualità del software.

D

Database Vettoriale

Un database vettoriale è progettato per archiviare e gestire dati sotto forma di vettori, che sono rappresentazioni numeriche di informazioni come testo, immagini o audio. Questi database sono ottimizzati per eseguire ricerche di similarità su grandi insiemi di dati, ad esempio per trovare elementi simili in base al loro contesto o contenuto. Sono comunemente usati in applicazioni di machine learning, AI e ricerca semantica.

Design Pattern

Soluzioni riutilizzabili a problemi ricorrenti nella progettazione del software. I design pattern offrono linee guida per scrivere codice più efficiente, leggibile e mantenibile. Esempi includono Singleton, Factory e Observer.

Dev team

In Scrum, il Development Team si riferisce all'insieme dei membri che svolge un ruolo nello sviluppo e nel supporto del prodotto e può includere ricercatori, architetti, designer, programmatori, e molti altri.

Diagramma dei casi d'uso

Un diagramma di casi d'uso è uno strumento grafico utilizzato nella modellazione UML (Unified Modeling Language) per rappresentare le interazioni tra gli attori (utenti o sistemi esterni) e un sistema software. Serve a descrivere le funzionalità del sistema dal punto di vista dell'utente e a documentare i requisiti funzionali in modo chiaro e visivo.

Diagrammi dei casi d'uso

Rappresentazioni grafiche che mostrano le interazioni tra gli attori e il sistema, utilizzate nella modellazione UML.

Discord

Piattaforma di comunicazione VoIP e messaggistica istantanea con supporto per server, canali e integrazioni.

Docker

Docker è una piattaforma che consente di creare, distribuire ed eseguire applicazioni in container. Un container è un ambiente isolato che include tutto il necessario per eseguire un'applicazione, come il codice, le librerie e le dipendenze. Docker facilita il deployment, garantendo che le applicazioni funzionino in modo coerente su diverse piattaforme e infrastrutture.

Documentation as code

Un approccio alla documentazione che tratta i documenti come codice sorgente, archiviandoli in repository versionati, usando strumenti di automazione per la generazione e manutenzione. Favorisce l'allineamento continuo con il codice.

E

Endpoint

Punto di accesso a un'API o servizio web, rappresentato da un URL specifico che accetta richieste HTTP.

F

Feature

Una feature è una caratteristica o una funzionalità specifica di un software o applicazione progettata per soddisfare un bisogno o offrire un vantaggio agli utenti. Una feature può essere un'azione che l'utente può eseguire, un comportamento del sistema o un miglioramento che aggiunge valore al software.

Feature branch

Branch di sviluppo dedicato a una nuova funzionalità, creato per isolare le modifiche prima dell’integrazione nel branch principale.

Feedback

Informazioni o commenti ricevuti su un prodotto, processo o servizio, usati per apportare miglioramenti.

Fetch

API JavaScript per effettuare richieste HTTP e gestire le risposte in modo asincrono.

Fogli Google

Applicazione web per la creazione e gestione di fogli di calcolo in cloud, parte della suite Google Workspace.

Fornitura

Processo di consegna di beni o servizi secondo specifiche contrattuali.

Framework

Una struttura riutilizzabile e predefinita di codice che fornisce un insieme di strumenti, regole e librerie per sviluppare applicazioni software. I framework riducono il lavoro manuale, offrono standardizzazione e accelerano lo sviluppo.

Frontend

Parte di un'applicazione con cui l'utente interagisce direttamente, gestendo la presentazione e l'interfaccia utente.

G

Git

Sistema di controllo di versione distribuito che consente a più sviluppatori di lavorare su un progetto contemporaneamente, mantenendo un registro delle modifiche apportate al codice.

GitHub

GitHub è una piattaforma di sviluppo collaborativo basata su Git, un sistema di controllo delle versioni distribuito. È ampiamente utilizzato da sviluppatori di software e team di sviluppo per gestire progetti, tenere traccia delle modifiche al codice sorgente, coordinare il lavoro tra i membri del team e facilitare la collaborazione su larga scala.

GitHub Organization

Struttura su GitHub che consente la gestione collaborativa di repository e permessi per team di sviluppo.

Glossario

Elenco strutturato di termini tecnici o specializzati, ognuno corredato dalla propria definizione o spiegazione. Questo strumento aiuta a migliorare la comunicazione tra le varie parti coinvolte in un progetto, riducendo le ambiguità e garantendo una comprensione condivisa dei termini utilizzati in un determinato contesto.

Gmail

Servizio di posta elettronica di Google basato su cloud.

Google Calendar

Servizio di gestione e condivisione di eventi e appuntamenti in cloud.

Google Meet

Piattaforma di videoconferenza di Google, integrata con Google Workspace.

GroqCloud

"GroqCloud è un servizio di cloud computing che offre risorse di calcolo

GUI (Graphical User Interface)

Una GUI (acronimo di Graphical User Interface, in italiano Interfaccia Grafica Utente) è un'interfaccia che consente agli utenti di interagire con un sistema informatico o un software attraverso elementi visivi e grafici, anziché utilizzare solo comandi testuali o linee di comando.

I

IA (Intelligenza Artificiale)

Disciplina informatica che sviluppa sistemi capaci di eseguire compiti tipicamente associati all’intelligenza umana.

Inspection

Una tecnica formale di revisione del software in cui un team analizza codice o documentazione per identificare errori o incongruenze rispetto agli standard. L'ispezione include solitamente un moderatore, lettori e un protocollo definito.

Issue

Un GitHub Issue è uno strumento offerto da GitHub per la gestione delle attività e il tracciamento dei problemi all'interno di un progetto software. Ogni issue rappresenta un'unità di lavoro o un problema specifico, e può essere personalizzata tramite assegnatari, che identificano i responsabili della sua risoluzione, label, che ne permettono la categorizzazione e milestone, che raggruppano più issue sotto un obiettivo comune per monitorare il progresso verso una scadenza o un risultato.

Issue Tracking System

Strumento per registrare, monitorare e gestire problemi, richieste di miglioramento o errori in un progetto software.

J

Jira

Jira è uno strumento software sviluppato da Atlassian, utilizzato per la gestione di progetti, il monitoraggio dei problemi e il controllo dello sviluppo agile. È particolarmente popolare tra i team di sviluppo software, specie grazie al servizio di ticketing che offre, ma è anche ampiamente utilizzato in altri ambiti aziendali.

K

Key Performance Indicator (KPI)

I Key Performance Indicator (KPI) sono misure quantitative utilizzate per valutare le prestazioni di un'organizzazione, di un progetto o di un processo rispetto agli obiettivi prefissati. I KPI forniscono un modo oggettivo per monitorare e valutare il successo di un'attività, identificare le aree di miglioramento e prendere decisioni informate per ottimizzare le prestazioni.

L

Label

Tag o etichette usate in GitHub (o altri strumenti di issue tracking) per classificare problemi, richieste di pull o attività secondo criteri specifici.

LangChain

LangChain è un framework progettato per costruire applicazioni basate su modelli di linguaggio (LLM). Consente di combinare LLM con altre tecnologie come database, API o strumenti di esecuzione per creare flussi di lavoro complessi. È particolarmente utile per la costruzione di chatbot, sistemi di recupero informazioni e strumenti di automazione.

LaTeX

LaTeX è un linguaggio di markup e un sistema di preparazione di documenti utilizzato principalmente per la produzione di documenti scientifici, accademici e tecnici, ma anche per altri tipi di pubblicazioni come libri, tesi, articoli e presentazioni. È basato su TeX, un sistema di tipografia creato da Donald Knuth negli anni '70, ma LaTeX aggiunge una serie di funzionalità e pacchetti per semplificare la scrittura e la formattazione dei documenti.

Librerie

Collezioni di codice precompilato che forniscono funzionalità specifiche e possono essere riutilizzate in diversi progetti.

LLM

Un LLM (large language model) è un modello di intelligenza artificiale basato su reti neurali di grandi dimensioni, addestrato su enormi quantità di testo per comprendere e generare linguaggio naturale. Esempi popolari includono GPT (Generative Pre-trained Transformer) e BERT. Questi modelli sono usati in applicazioni come chatbot, traduzione automatica, completamento del testo e analisi del sentiment.

M

Manuale Utente

Documento che spiega agli utenti finali come utilizzare il software, spesso includendo istruzioni dettagliate e risoluzioni comuni ai problemi.

Merge

Operazione di fusione tra più branch in un sistema di controllo versione.

Milestone

Le Milestone sono strumenti utilizzati nella gestione dei progetti per segnare punti specifici lungo la timeline di un progetto. Questi punti possono segnalare ancore come una data di inizio e di fine del progetto, o la necessità di una revisione. In molti casi, le milestone, non incidono sulla durata del progetto ma si concentrano invece sui principali punti di avanzamento che devono essere raggiunti per ottenere il successo.

Minimum Viable Product

È una versione semplificata di un prodotto software che include solo le funzionalità essenziali per soddisfare i bisogni dei primi utenti. L'obiettivo principale di un MVP è testare e validare l'idea di base del prodotto, raccogliere feedback dagli utenti e ridurre al minimo il tempo e le risorse necessarie per il suo sviluppo.

Modello a V

Un modello di sviluppo software che rappresenta visivamente il ciclo di vita di un progetto, enfatizzando la relazione tra le fasi di sviluppo e quelle di testing. La V simboleggia la verifica durante lo sviluppo e la validazione nella fase di testing.

N

Next.JS

Framework React per lo sviluppo di applicazioni web che offre funzionalità come il rendering lato server e la generazione di siti statici.

Norme di Progetto

Regole e linee guida stabilite all'interno di un progetto per garantire coerenza e qualità nelle attività svolte. Definiscono standard e procedure, come documentazione, gestione delle versioni e criteri di codifica, per assicurare uniformità nell'approccio e nel risultato finale.

Npm

Node Package Manager, gestore di pacchetti per JavaScript che facilita l'installazione e la gestione delle dipendenze.

O

Onboarding

Processo per integrare nuovi membri in un team o progetto, fornendo loro le informazioni e le risorse necessarie per iniziare a lavorare in modo efficace, efficiente, e in linea con le pratiche e gli standard dell'azienda.

P

PascalCase

Uno stile di scrittura di identificatori in cui ogni parola inizia con una lettera maiuscola e non ci sono spazi o separatori. Esempio: `VariableName`.

Piano Di Progetto

Documento formale che delinea in dettaglio la pianificazione, l'esecuzione, il monitoraggio e il controllo di tutte le attività coinvolte nella realizzazione di un progetto. Questo documento fornisce una roadmap chiara e organizzata, comprensiva di obiettivi, risorse, scadenze e strategie di gestione dei rischi. Essenziale per la gestione efficace di un progetto, il piano di progetto serve come guida per il team di lavoro e gli stakeholder, fornendo una struttura che facilita il coordinamento delle attività e l'assegnazione delle risorse.

Piano Di Qualifica

Documento che stabilisce gli standard di qualità, i processi e le attività di testing che saranno implementati durante lo sviluppo di un progetto. Contiene una descrizione dettagliata delle strategie di testing, delle metriche di valutazione e dei criteri di accettazione del prodotto finale. L'obiettivo principale del Piano di Qualifica è garantire che il prodotto soddisfi gli standard di qualità prefissati e che il processo di sviluppo segua procedure coerenti ed efficaci.

PostgreSQL

Database relazionale open-source avanzato con supporto a transazioni ACID, estendibilità e scalabilità elevata.

Processo

Un processo è un insieme di attività correlate e coordinate che trasformano input in output, seguendo regole e procedure.

Product Backlog

Consiste in un elenco prioritizzato di tutte le funzionalità, i requisiti, le correzioni di bug e le modifiche che devono essere fatte a un prodotto software. Il Product Backlog è dinamico e può essere aggiornato in qualsiasi momento per riflettere le esigenze e le priorità del progetto. È gestito dal Product Owner e utilizzato dal team di sviluppo per pianificare e organizzare il lavoro da svolgere.

Product Baseline (PB)

Fase di progetto durante la quale il focus si sposta dall'analisi dei requisiti e dalla progettazione concettuale all'implementazione e alla costruzione effettiva del prodotto software. Le attività principali comprendono la scrittura del codice, i test unitari e l'integrazione di componenti software. L'obiettivo è raggiungere una versione stabile e funzionante del prodotto che rappresenti la base per ulteriori sviluppi e miglioramenti.

Product Owner

Un product owner supervisiona lo sviluppo di un prodotto software. È il membro di un team di sviluppo Scrum che mantiene la visione di un progetto di sviluppo secondo la metodologia Agile. Le sue responsabilità comprendono il mantenimento di un backlog del prodotto, ovvero un elenco prioritario di opzioni di funzionalità.

Progettista

Il progettista è la figura di riferimento per quanto riguarda le scelte progettuali partendo dal lavoro dell'analista. Spetta al progettista assumere decisioni di natura tecnica e tecnologica, oltre a supervisionare il processo di sviluppo. Tuttavia, non è responsabile della manutenzione del prodotto. In particolare si occupa di: progettare l'architettura del prodotto secondo specifiche tecniche dettagliate, prendere decisioni per sviluppare soluzioni che soddisfino i criteri di affidabilità, efficienza, sostenibilità e conformità ai requisiti, redige la Specifica Architetturale e la parte pragmatica del Piano di Qualifica.

Programmatore

Il programmatore è la figura professionale incaricata della scrittura del codice software. Il suo compito primario è implementare il codice conformemente alle specifiche fornite dall'analista e all'architettura definita dal progettista. In particolare, il programmatore: scrive codice manutenibile in conformità con le Specifiche Tecniche, codifica le varie componenti dell'architettura seguendo quanto ideato dai progettisti, realizza gli strumenti per verificare e validare il codice, redige il Manuale Utente.

Project

Iniziativa temporanea con obiettivi specifici, risorse definite e una data di completamento.

Project board

Strumento visivo per la gestione del flusso di lavoro e il monitoraggio dell’avanzamento di un progetto.

Project manager

Figura responsabile della pianificazione, esecuzione e monitoraggio di un progetto, garantendone il successo in termini di obiettivi, tempi e budget.

Proof Of Concept

Dimostrazione pratica per verificare la fattibilità o la validità di un'idea, di un concetto o di un progetto specifico. Nel contesto dello sviluppo software, un PoC consiste nella creazione di una versione semplificata di un'applicazione per testare un nuovo approccio tecnologico o per dimostrare la fattibilità di una funzionalità specifica.

Proponente

"Il proponente è la persona o l'organizzazione che presenta un capitolato d'appalto per la realizzazione di un progetto software. Il proponente definisce i requisiti e le specifiche del progetto e valuta le proposte dei fornitori o degli sviluppatori interessati a partecipare all'appalto."

Pull Request

Una Pull Request (PR) è una richiesta che un sviluppatore invia per proporre modifiche al codice di un progetto in un repository, tipicamente su piattaforme di versionamento del codice come GitHub, GitLab o Bitbucket. La PR permette ad altri membri del team o ai manutentori del progetto di revisionare il codice proposto prima che venga integrato nel ramo principale (di solito chiamato main o master).

Q

QDrant

Qdrant è un motore di database vettoriale open-source progettato per memorizzare e cercare rappresentazioni vettoriali di dati (embeddings). Supporta ricerche di similarità ad alta velocità e applicazioni di machine learning, come motori di raccomandazione e ricerca semantica. È spesso utilizzato con LLM per migliorare l'elaborazione dei dati.

R

RabbitMQ

Sistema di messaggistica open-source che implementa il protocollo AMQP, utilizzato per la comunicazione asincrona tra componenti di un'applicazione.

Repository

Un repository (o repo) è un archivio digitale che contiene file, cartelle e informazioni relative al progetto, inclusi il codice sorgente, la documentazione e la cronologia delle modifiche. È uno spazio organizzato, solitamente gestito tramite un sistema di controllo versione come Git, dove i file sono archiviati e tenuti sotto controllo, permettendo di monitorare le modifiche nel tempo. I repository sono usati per gestire il ciclo di vita di un progetto software, facilitando la collaborazione tra sviluppatori e il versionamento del codice. I repository possono essere locali (sul proprio computer) o remoti (su piattaforme come GitHub, GitLab, Bitbucket).

Requisiti

Specifiche dettagliate che descrivono ciò che un sistema o un prodotto deve fare (requisiti funzionali) o le qualità che deve avere (requisiti non funzionali). Possono essere raccolti tramite interviste, analisi e documentazione, e sono fondamentali per la progettazione e lo sviluppo.

Requisiti di qualità

Criteri relativi alle prestazioni, usabilità, sicurezza e manutenibilità del software.

Requisiti di vincolo

Limitazioni imposte al progetto, come budget, tecnologia o regolamenti.

Requisiti funzionali

Specificano cosa deve fare un sistema software per soddisfare le esigenze dell’utente.

Responsabile

Figura fondamentale che coordina il gruppo, funge da punto di riferimento per il committente e per il team, svolgendo il ruolo di mediatore tra le due parti. In particolare si occupa di: gestire le relazioni con l'esterno, pianificare le attività (quali svolgere, data di inizio e fine, assegnazione delle priorità), valutare i rischi associati alle decisioni da prendere, controllare i progressi del progetto, gestire le risorse umane e approvare la documentazione.

Rest-Api

Architettura software per la progettazione di API web che utilizza il protocollo HTTP e segue i principi REST.

Retrieval Periodico

Processo di recupero automatico e regolare di dati da una fonte esterna a intervalli di tempo prestabiliti.

Rischi organizzativi

Problemi legati alla gestione, alla pianificazione o alla comunicazione che possono influire sul successo di un progetto.

Rischi tecnologici

Problemi legati a una o più tecnologie utilizzate, come software obsoleti, bug critici o incompatibilità.

RTB

Fase iniziale e fondamentale del processo di sviluppo di un 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.

S

Scheduler

Componente software che gestisce l'esecuzione programmata di attività o processi a intervalli regolari.

Scrum

Scrum è una struttura Agile di collaborazione tra team, comunemente utilizzata nello sviluppo di software e in altri settori. Scrum prescrive ai team di suddividere il lavoro in obiettivi da completare entro iterazioni a tempo, chiamate sprint.

Scrum master

Il ruolo di uno Scrum Master è quello di utilizzare la gestione agile dei progetti per sostenere un progetto, i team e i membri del team. Poiché gli Scrum Master possono lavorare in diversi contesti, i compiti e le responsabilità possono variare.

Software

Insieme di programmi, dati e istruzioni che consentono a un computer di eseguire specifiche operazioni.

SPA

Single Page Application. Applicazione web che carica una singola pagina HTML e la aggiorna dinamicamente senza ricaricare l'intera pagina.

Specifica Tecnica

Un documento che descrive dettagliatamente come un sistema o un componente software deve essere costruito. Include requisiti funzionali, architettura, interfacce e altre informazioni necessarie per lo sviluppo.

Sprint

Gli sprint sono periodi di tempo che vanno da una settimana a un mese, durante i quali il Product Owner, lo Scrum Master e il Development Team lavorano per completare una specifica aggiunta al prodotto. Durante uno sprint, si lavora per creare nuove funzionalità basate sulle user stories e sul backlog.

Sprint Review

Un evento Scrum che si tiene alla fine di uno sprint, in cui il team presenta gli incrementi di prodotto completati agli stakeholder per ricevere feedback e verificare che siano in linea con gli obiettivi.

Stakeholder

Gli stakeholder sono le persone o le organizzazioni coinvolte o interessate a un progetto o a un'organizzazione. Gli stakeholder possono includere clienti, utenti finali, fornitori, dipendenti, investitori, partner commerciali, organizzazioni non governative e altri soggetti che possono influenzare o essere influenzati dalle decisioni e dalle azioni di un'organizzazione.

Stato Avanzamento Lavori

Nell'ambito del project management, è una riunione periodica (o attività di confronto analoga) che viene stabilita per garantire e verificare l'avanzamento di un progetto rispetto agli obiettivi prestabiliti.

T

TailwindCSS

Framework CSS utility-first che permette di costruire interfacce personalizzate direttamente nel markup HTML.

Task

Un task è un'unità di lavoro o attività specifica che deve essere completata come parte di un progetto o di un processo. I task sono generalmente definiti in modo chiaro e conciso, con obiettivi, scadenze e responsabilità ben definiti. Possono essere assegnati a singoli membri del team o a gruppi di lavoro e sono utilizzati per organizzare e monitorare il lavoro da svolgere.

Tech stack

Insieme di tecnologie, framework e strumenti utilizzati per sviluppare un'applicazione software.

Telegram

Telegram è un'applicazione di messaggistica istantanea e di comunicazione basata su cloud, sviluppata da Telegram.

Term

"Un periodo di tempo con una durata specifica o una parola/frase utilizzata in un contesto particolare."

Termine

"La fine o la conclusione di un periodo di tempo o di un'attività."

Test di Accettazione

Verifica finale condotta dall'utente o dal cliente per assicurarsi che il prodotto soddisfi le loro aspettative e sia pronto per l'uso.

Test di Integrazione

Test che verificano l'interazione tra diverse unità o moduli di codice per garantire che lavorino insieme correttamente.

Test di Sistema

Valutazione dell'intero sistema software per verificare che soddisfi i requisiti specificati.

Test di Unità

Verifica di singole unità o componenti del codice (come funzioni o metodi) per assicurarsi che funzionino correttamente in isolamento.

Text-to-Text

Un chatbot text-to-text è un tipo di intelligenza artificiale conversazionale che utilizza il Natural Language Processing (NLP) e algoritmi di machine learning per comprendere e rispondere a input testuali forniti dagli utenti. Questi chatbot sono progettati per simulare conversazioni simili a quelle umane, offrendo risposte utili e informative alle domande degli utenti.

Ticket

Un ticket è una registrazione formale di un'attività, problema o richiesta all'interno di un sistema di gestione del lavoro o del supporto tecnico. I ticket sono utilizzati per tracciare, monitorare e gestire le richieste di assistenza, i bug, le nuove funzionalità o qualsiasi altra attività che richiede attenzione. Ogni ticket contiene informazioni come la descrizione del problema o della richiesta, lo stato attuale (ad esempio, 'aperto', 'in corso', 'chiuso'), l'assegnazione a una persona o team responsabile, e altre informazioni utili per risolvere la questione. I sistemi di ticketing sono comunemente usati nei progetti di software, nei servizi di supporto e nei flussi di lavoro aziendali.

Tracciamento

Processo di monitoraggio e registrazione delle attività di sviluppo, modifiche ai requisiti o avanzamento di un progetto.

TypeORM

ORM (Object-Relational Mapping) per TypeScript e JavaScript che semplifica l'interazione con database relazionali.

Typst

Typst è un linguaggio di markup e un sistema di composizione tipografica moderno e innovativo, progettato per creare documenti di alta qualità, come articoli, tesi, report e libri, con un approccio più semplice e flessibile rispetto a LaTeX. Typst si distingue per la sua sintassi più intuitiva e per la sua capacità di generare automaticamente un design tipografico professionale. È particolarmente utile per gli utenti che cercano un'alternativa moderna a LaTeX, ma senza rinunciare alla qualità tipografica e alla potenza nella gestione dei documenti complessi. Typst supporta anche l'integrazione di elementi grafici, come immagini e tabelle, e offre un'esperienza di compilazione veloce e fluida.

U

UI

Interfaccia utente, l'insieme degli elementi grafici e interattivi con cui l'utente interagisce in un'applicazione.

UML

Un linguaggio di modellazione standardizzato utilizzato per visualizzare, specificare, costruire e documentare i sistemi software. Include diagrammi strutturali (es. diagrammi di classi) e comportamentali (es. diagrammi di sequenza).

User

Entità (persona o sistema) che interagisce con un software o servizio digitale.

User experience (UX)

Insieme delle percezioni e risposte di un utente durante l'interazione con un sistema o prodotto software.

User Story

Una user story è una descrizione informale, in linguaggio naturale, delle caratteristiche di un sistema software.

V

Validazione

La validazione è il processo volto ad assicurare che il prodotto software, modulo o sistema soddisfi le necessità e le aspettative dell'utente finale, indipendentemente dalle specifiche tecniche. Si concentra, quindi, sul garantire che il sistema svolga ciò per cui è stato progettato.

Verifica

La verifica è il processo volto ad accertare che un prodotto software, un modulo, un sistema o un processo soddisfi i requisiti specificati o i criteri di progettazione. Si concentra sul fatto che il sistema sia stato costruito correttamente, ovvero in conformità alle specifiche tecniche o funzionali.

Verificatore

La principale responsabilità del verificatore consiste nell'ispezionare il lavoro svolto da altri membri del team per assicurare la qualità del prodotto e la conformità alle attese prefissate. Stabilisce se il lavoro è stato svolto correttamente sulla base delle proprie competenze tecniche, esperienza e conoscenza delle norme. In particolare il verificatore si occupa di: verificare che il lavoro svolto sia conforme alle Norme di Progetto, verificare che il lavoro svolto sia conforme alle Specifiche Tecniche, ricercare ed in caso segnalare eventuali errori, redigere la sezione retrospettiva del Piano di Qualifica, descrivendo le verifiche e le prove effettuate durante il processo di sviluppo del prodotto.

W

Walkthrough

Una revisione informale di codice, documentazione o requisiti, guidata dall'autore, con lo scopo di ottenere feedback iniziale. I walkthrough sono meno strutturati rispetto alle inspection.

Way of Working

Il Way of Working (WoW) si riferisce al modo in cui un team, un'organizzazione o un'azienda svolge le proprie attività quotidiane, gestisce i flussi di lavoro e raggiunge i propri obiettivi. Include le pratiche, i processi, le metodologie, le tecniche e le convenzioni adottate per eseguire il lavoro in modo efficiente e coerente. Il WoW può riguardare aspetti come la comunicazione, la collaborazione, la gestione del tempo, l'uso di strumenti e tecnologie, nonché le modalità di decision-making e il coinvolgimento delle persone. Un WoW ben definito aiuta a garantire l'efficacia operativa, la qualità del lavoro e la soddisfazione del team, adattandosi alle esigenze e alla cultura aziendale.

WebApp

Applicazione software accessibile tramite un browser web, che può funzionare sia online che offline.

Webhook

Meccanismo che permette a un'applicazione di inviare notifiche in tempo reale ad altre applicazioni tramite HTTP.

Workflow

Un workflow è un insieme strutturato di attività o processi interconnessi che vengono eseguiti in sequenza o in parallelo per raggiungere un obiettivo specifico. In sostanza, rappresenta il flusso di lavoro, ossia come le informazioni, i compiti e le risorse vengono gestiti all'interno di un sistema o di un'organizzazione. Un workflow può essere manuale o automatizzato e viene utilizzato per ottimizzare, monitorare e controllare i processi aziendali, facilitando la cooperazione tra diversi attori o strumenti. I workflow sono fondamentali per la gestione di progetti, l'automazione dei processi aziendali e per garantire l'efficienza e la coerenza nelle operazioni quotidiane.

Workshop

Un evento collaborativo in cui un gruppo di persone si riunisce per affrontare e risolvere problemi specifici, acquisire conoscenze o creare risultati condivisi. Spesso utilizzato nella raccolta dei requisiti o nel brainstorming.