Definizioni di concetti legati allo sviluppo software, al processo produttivo, ai test, al deployment e alle pratiche di lavoro dei team IT.
Che cos’è la programmazione?
La programmazione è il processo di progettazione, creazione, test e manutenzione del software. Comprende la scrittura del codice, ma anche la scelta dell’architettura, degli strumenti, dei metodi di lavoro e delle pratiche che garantiscono qualità e sicurezza dei sistemi.
Ambito dei concetti
La programmazione unisce temi tecnici e organizzativi: linguaggi di programmazione, API, test, controllo versione, automazione dei deployment, gestione delle dipendenze e ciclo di vita del software. Sono rilevanti anche approcci come TDD, DDD, Agile, Scrum, DevOps, GitOps e CI/CD.
Rilevanza nell’IT
Le buone pratiche di programmazione influenzano la stabilità delle applicazioni, la velocità di rilascio delle modifiche e i costi di manutenzione dei sistemi. Nei team moderni, la programmazione è strettamente collegata a test, monitoraggio, sicurezza, infrastruttura e collaborazione tra business e tecnologia.
Agile è un insieme di principi e pratiche che favorisce una gestione flessibile dei progetti, lo sviluppo iterativo dei prodotti e una risposta rapida ai requisiti variabili.
Ansible è uno strumento open source agentless per automatizzare la configurazione dei sistemi, il deployment delle applicazioni e la gestione dell’infrastruttura IT.
Il Chaos Engineering verifica la resilienza dei sistemi introducendo guasti e anomalie controllati, per individuare i punti deboli prima che si verifichino incidenti reali.
DDD, o Domain-Driven Design, è un approccio allo sviluppo software che organizza architettura e codice intorno al dominio aziendale, ai suoi concetti e alle sue regole.
Un Easter Egg è un elemento nascosto, generalmente umoristico, presente in un software, un’app o un sito web e scoperto dall’utente in un modo specifico.
Un feature toggle consente di attivare o disattivare dinamicamente le funzioni di un’applicazione senza distribuire una nuova versione del codice. Facilita test, rilasci graduali e interventi rapidi in caso di errori.
Un freelance è uno specialista indipendente che realizza progetti per i clienti, definendo autonomamente attività, scadenze e condizioni della collaborazione.
GitHub è una piattaforma cloud basata su Git per archiviare codice, gestire le versioni, collaborare, revisionare le modifiche e automatizzare i deployment.
GitOps è una metodologia per gestire l’infrastruttura e distribuire applicazioni, in cui un repository Git funge da fonte autorevole per configurazioni e automazione.
Jira è una piattaforma Atlassian per la gestione dei progetti, il tracciamento dei bug e l’organizzazione del lavoro dei team, soprattutto con Agile, Scrum e Kanban.
Il linting è l’analisi automatizzata del codice sorgente che rileva errori, incoerenze, problemi di sicurezza e violazioni degli standard di programmazione.
MLOps è un insieme di pratiche, processi e strumenti per automatizzare l’intero ciclo di vita dei modelli di machine learning, dalla preparazione dei dati all’addestramento, al monitoraggio e agli aggiornamenti.
Il no-code permette di creare applicazioni, siti web e automazioni con strumenti visivi, componenti pronti e configurazioni invece della programmazione tradizionale.
npm è un gestore di pacchetti per JavaScript e Node.js che semplifica l’installazione delle librerie, la gestione delle dipendenze e l’automazione dello sviluppo.
Un PoC, o Proof of Concept, è un prototipo funzionante che serve a verificare la fattibilità di un’idea, tecnologia o soluzione prima dell’implementazione completa.