Grazie per aver inviato la tua richiesta! Uno dei nostri team membri ti contatterà a breve.
Grazie per aver inviato il tuo prenotazione! Uno dei nostri team membri ti contatterà a breve.
Struttura del corso
Fondamenti del pensiero Agile
- Il Manifesto Agile e la sua rilevanza al di fuori del mondo dello sviluppo software
- Confronto tra le metodologie agili e i modelli tradizionali a cascata o pianificati in anticipo
- Ruoli, eventi e artefatti Scrum adattati ai cicli di progetto accademici
- Kanban e gestione del flusso per team di ricerca e didattica
- Scelta di approcci ibridi adatti all’ambiente ingegneristico e progettuale
Pianificazione Agile e Collaborazione
- Stesura delle cosiddette "user story" e definizione dei criteri di accettazione per problemi ingegneristici.
- Tecniche di prioritizzazione: metodo MoSCoW, valutazione in base a sforzo e rischio.
- Pianificazione delle iterazioni (sprint) ed stima dei tempi anche con team non tecnologici.
- Riunioni di retrospettiva e miglioramento continuo in un contesto universitario.
- Strumenti di collaborazione e bacheche virtuali per gruppi multidisciplinari.
Introduzione alla cultura DevOps
- Cos’è il DevOps: superamento dei divari tra sviluppo e operazioni.
- Il modello CALMS: Cultura, Automazione, Lean, Misurazione e Condivisione.
- DevOps nei laboratori di ricerca, nelle squadre di ingegneria civile e negli studi di architettura.
- Creazione di un clima senza colpevolizzazioni e sistemi di feedback in ambienti formativi.
- Aspetti etici, di sicurezza e conformità normativa nell’adozione DevOps nelle università.
Controllo delle versioni e gestione collaborativa del codice
- Nozioni fondamentali su Git per il lavoro ingegneristico e progettuale replicabile.
- Strategie di gestione dei rami: sviluppo centralizzato, rami funzionali e versione semplificata di GitFlow.
- Richieste di modifica (pull request), revisione tra pari e attribuzione della proprietà del codice nelle squadre didattiche.
- Gestione di risorse non code: file CAD, modelli BIM e dataset per simulazioni.
- Organizzazione dei repository in modo da contenere materiali didattici e progetti studenteschi.
Integrazione Continua e Automazione della Build
- Nozioni sull’integrazione continua e il suo impiego con strumenti ingegneristici compilati o basati su script.
- Configurazione di processi automatizzati per software, simulazioni e documentazione.
- Fasi principali del pipeline: compilazione, confezionamento, analisi statica e controlli preliminari.
- Panoramica delle piattaforme di integrazione continua più diffuse: GitHub Actions, GitLab CI, Jenkins.
- Gestione di artefatti pesanti, memorizzazione temporanea delle dipendenze e esecuzione parallela dei processi.
Qualità del Software e Analisi Statica
- Cos’è la qualità del software: manutenibilità, affidabilità, usabilità ed efficienza.
- Misurazione della complessità del codice, grado di accoppiamento e ripetizioni nel codice stesso.
- Strumenti di analisi statica per Python, Java, C++ e altri linguaggi tipici nei contesti ingegneristici.
- Il ruolo della documentazione: formati standardizzati per i commenti, le descrizioni e la guida all’utilizzo.
- Integrazione di controlli qualitativi nei pipeline CI senza ostacolare il progresso degli studenti.
Strategie di Test e Progettazione dei Test
- La piramide dei test: unitari, d’integrazione, di sistema e di accettazione.
- Redazione di test unitari per calcoli ingegneristici, simulazioni e utilità programmative.
- Nozioni base sullo sviluppo guidato dai test (TDD) e sullo sviluppo basato sui comportamenti (BDD).
- Simulazione di sistemi esterni: sensori, API o risolutori di problemi mediante elementi finiti.
- Strutturazione dei piani di test in base alle peculiarità dei progetti multidisciplinari.
Automazione dei Test e Test Continui
- Esecuzione automatizzata dei test nei pipeline CI/CD.
- Rapporti sui risultati, soglie di copertura del codice e gestione dei test instabili o non deterministici.
- Test basati su proprietà e tecniche di generazione casuale per algoritmi ingegneristici.
- Strategie di regression testing adatte agli aggiornamenti continui degli esercizi universitari.
- Test di carico e prestazioni per ambienti di simulazione o rendering grafico intensivo.
Concetti di Continuous Delivery e Deployment
- Fondamenti della CD: differenza tra consegna, distribuzione ed ambienti successivi.
- Tecniche tipiche di rilascio: approcci blue-green, canary e uso dei toggle per le funzionalità.
- Applicazione dei principi della CD alla pubblicazione di risultati di ricerca, siti didattici o applicazioni.
- Nozioni base sui container Docker per la creazione di ambienti ingegneristici riproducibili.
- Introduzione all’Infrastructure as Code: gestione dichiarativa di infrastrutture di laboratorio e cloud.
Osservabilità, Monitoraggio e Feedback
- Registrazione degli eventi, raccolta di metriche e tracciamento delle interazioni nei software universitari e nelle simulazioni.
- Implementazione di sistemi di monitoraggio semplici adatti ai progetti studenteschi e agli strumenti di ricerca.
- Utilizzo dei dati emersi per aggiornare materiali didattici ed esercizi laboratoriali.
- Dashboard e avvisi mirati alle necessità formative ed accademiche.
- Verifiche post-distribuzione e procedure di rollback in caso di problemi rilevati.
Sicurezza Informatica e Best Practice di Qualità
- Nozioni essenziali sulla scrittura di codice sicuro: validazione degli input, autenticazione e gestione delle chiavi riservate.
- Rilevamento automatico di vulnerabilità e monitoraggio del materiale software proveniente da fonti aperte.
- Conformità alle licenze d’uso per codice condiviso tra docenti e studenti.
- Protezione della privacy dei dati legati agli studenti e ai risultati delle ricerche.
- Sviluppo di una cultura incentrata sulla sicurezza all’interno degli indirizzi formativi ingegneristici e progettuali.
Trasposizione delle Pratiche in Moduli Didattici
- Creazione di assegnazioni basate su metodologie Agile per studenti di sistemistica, ingegneria civile, design e architettura.
- Formulazione di rubriche che valutano sia il processo creativo che la qualità finale dei risultati.
- Configurazione di repository predefiniti con pipeline CI pronte per l’uso da parte degli studenti.
- Avvio graduale all’approccio DevOps nel corso di un semestre scolastico.
- Valutazione delle squadre studentesche in base a indicatori reali di qualità e automazione.
Scelta degli Strumenti e Gestione dei Vincoli Accademici
- Analisi degli strumenti gratuiti o open source utili per dipartimenti con risorse limitate.
- Integrazione con i sistemi di gestione dell’apprendimento (LMS), repository e infrastrutture esistenti nei laboratori.
- Gestione del cosiddetto "debito tecnico" in progetti di ricerca che si sviluppano nel tempo.
- Introduzione alle tecniche base di utilizzo per studenti e docenti con diverse competenze informatiche.
- Mantenimento della continuità formativa quando alcuni componenti del gruppo lasciano il corso o vengono sostituiti.
Requisiti
- Conoscenza di base dei concetti fondamentali dello sviluppo software
- Familiarità con i normali flussi di lavoro ingegneristici o progettuali
- Esperienza nell’utilizzo del computer per scopi accademici o legati a progetti concreti
Destinatari
- Professori e docenti di corsi di Ingegneria dei Sistemi, Ingegneria Civile, Design e Architettura.
- Docenti universitari interessati ad aggiornare i propri metodi didattici incorporando pratiche professionali.
- Responsabili di ricerca e coordinatori di laboratori che desiderano integrare la tecnologia nei programmi accademici.
42 ore
Recensioni (2)
Craig era estremamente coinvolto nella formazione, sempre assicurandosi che prestassimo attenzione, adattando gli esempi alle nostre attività quotidiane e fornendo sempre una risposta quando sollecitato, anche se l'informazione non era inclusa nella presentazione.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Corso - DevOps Foundation®
Traduzione automatica
Alto livello di impegno e conoscenza del formatore
Jacek - Softsystem
Corso - DevOps Engineering Foundation (DOEF)®
Traduzione automatica