Struttura del corso
Livello 1: La caverna della scoperta – I segreti dei requisiti
Missione: Utilizzare i modelli linguistici avanzati (LLM) come ChatGPT per estrarre e organizzare in modo strutturato i requisiti da input poco chiari o vaghi.
Attività principali:
- Interpretare idee di prodotto o richieste funzionali ambigue
-
Avvalersi dell’intelligenza artificiale per:
- Generare user story e criteri di accettazione
- Suggerire personae utente e scenari d’uso
-
Creare materiale visivo (ad esempio semplici diagrammi con Mermaid o draw.io)
Risultato atteso: Un elenco strutturato di user story più un modello iniziale del dominio rappresentato graficamente
Livello 2: La fucina della progettazione – Il rotolo dell’architetto
Missione: Sfruttare l’intelligenza artificiale per ideare e verificare i piani architetturali di un sistema.
Attività principali:
-
Utilizzare l’AI per:
- Suggerire lo stile architetturale più adatto (monolite, microservizi o serverless)
- Generare diagrammi di alto livello riguardanti i componenti e le loro interazioni
- Creare scheletri strutturali per classi e moduli del codice
-
Valutare le scelte effettuate dai colleghi attraverso revisioni di progettazione condivise
Risultato atteso: Una architettura validata e un primo strutturale di codice base pronto per lo sviluppo
Livello 3: L’arena della programmazione – La sfida del codice
Missione: Utilizzare i copilot basati sull’intelligenza artificiale per implementare funzionalità software e migliorarne il codice.
Attività principali:
- Impiegare GitHub Copilot o ChatGPT per sviluppare la logica del programma
-
Ristrutturare il codice generato dall’AI affinché risulti ottimale in termini di:
- Prestazioni
- Sicurezza
- Facilità di manutenzione
-
Introdurre intenzionalmente elementi di bassa qualità nel codice per stimolare sfide collaborative tra i membri del gruppo finalizzate alla sua ottimizzazione
Risultato atteso: Un insieme coerente e funzionante di codice, interamente elaborato con supporto AI e in grado di soddisfare le specifiche richieste
Livello 4: La palude dei bug – Il test nell’oscurità
Missione: Generare e migliorare i test attraverso l’utilizzo dell’intelligenza artificiale, quindi rintracciare errori presenti nel codice prodotto da altri membri del gruppo.
Attività principali:
-
Utilizzare l’AI per creare:
- Test unitari
- Test di integrazione
- Scenari d’utilizzo legati a casi limite
-
Condividere codice contenente errori con altre squadre, poi lavorare insieme usando l’AI per individuare e risolvere le problematiche riscontrate
Risultato atteso: Un pacchetto completo di test più una relazione dettagliata sui bug presenti, unitamente alle corrispondenti correzioni apportate
Livello 5: I portali della pipeline – La porta dell’automazione
Missione: Creare flussi CI/CD intelligenti, affidandosi alle capacità dell’intelligenza artificiale.
Attività principali:
-
Avvalersi dei sistemi AI per:
- Definire i flussi di lavoro desiderati (ad esempio quelli gestiti da GitHub Actions)
- Automatizzare le operazioni legate alla compilazione, ai test e al deployment
-
Suggerire strategie di rilevamento delle anomalie o meccanismi automatici di rollback
Risultato atteso: Uno script funzionante per il flusso CI/CD sviluppato in collaborazione con l’AI
Livello 6: La cittadella del monitoraggio – La torre di osservazione dei log
Missione: Analizzare i dati registrati nei log e sfruttare il machine learning per individuare comportamenti fuori dal comune o anomalie sistemiche, quindi immaginare modi efficaci di risoluzione dei problemi.
Attività principali:
- Analizzare insiemi di log preesistenti o generati appositamente per l’occasione
-
Servirsi dell’AI per:
- Rilevare eventuali tendenze fuori dall’ordinario o errori ricorrenti nel sistema
- Proporre soluzioni automatizzate (ad esempio script per il self-healing, avvisi personalizzati)
-
Creare dashboard o riepiloghi visivi
Risultato atteso: Un piano di monitoraggio completo accompagnato da meccanismi di allarme automatizzati e potenzialmente intelligenti
Livello finale: L’arena dell’eroe – Creare un SDLC ottimizzato tramite l’AI
Missione: Mettere in pratica tutto ciò che si è appreso realizzando, insieme ai colleghi, il ciclo completo di sviluppo per un piccolo progetto software.
Attività principali:
- Scegliere in squadra un progetto tra quelli proposti (ad esempio un tracciatore di bug, un chatbot o un microservizio)
-
Applicare l’intelligenza artificiale a ciascuna fase dello SDLC:
- Raccolta e organizzazione dei requisiti, progettazione, implementazione codice, test, deployment finale e monitoraggio
- Presentare i risultati finali a tutti attraverso una dimostrazione collettiva
Si procede quindi a votazioni o valutazioni interne da parte dei partecipanti per designare il flusso di lavoro sviluppato con l’AI più efficace nel contesto complessivo del progetto.
Risultato atteso: Una implementazione completa di un ciclo SDLC ottimizzato dall’impiego dell’intelligenza artificiale, con una presentazione finale organizzata in squadra.
Al termine di questo workshop, i partecipanti saranno in grado di:
- Servirsi degli strumenti generativi AI per interpretare e organizzare in modo chiaro e strutturato i requisiti del software
- Utilizzare l’AI per produrre diagrammi architetturali ed esaminare criticamente le decisioni progettuali adottate
- Sfruttare i copilot basati su AI per realizzare codice conforme agli standard di produzione e ristrutturarlo in base a necessità specifiche
-
Automatizzare la creazione dei test software e beneficiare dell’assistenza offerta dall’AI durante il processo di debug
- Progettare pipeline CI/CD intelligenti, in grado di monitorare automaticamente lo stato del sistema rilevando qualsiasi deviazione anomala e agendo di conseguenza
-
Analizzare insiemi di log tramite strumenti AI/ML per individuare rischi potenziali e immaginare meccanismi proattivi capaci di una sorta di autocorrezione del sistema stesso
-
Dimostrare come un intero ciclo SDLC possa funzionare in modo ottimizzato grazie all’interazione con l’intelligenza artificiale, attraverso la realizzazione di un mini-progetto collettivo
Requisiti
Pubblico di riferimento: sviluppatori software, tester, architetti, ingegneri DevOps e product owner
I partecipanti devono possedere:
- Una buona conoscenza generale del Ciclo di Vita dello Sviluppo Software (SDLC)
- Esperienza pratica in almeno un linguaggio di programmazione (ad esempio Python, Java, JavaScript, C# ecc.)
-
Conoscenza di:
- Come redigere e comprendere user story o requisiti software
- I principi fondamentali della progettazione software
- Il controllo delle versioni (ad esempio Git)
- La scrittura ed esecuzione di test unitari
- L’utilizzo e l’interpretazione dei flussi CI/CD
Si tratta di un workshop rivolto a livelli intermedi-avanzati. È particolarmente indicato per professionisti che già operano all’interno di team di sviluppo software: sviluppatori, tester, ingegneri DevOps, architetti e product owner.
Recensioni (1)
Ho acquisito una conoscenza riguardante la libreria Streamlit di Python e sicuramente cercherò di utilizzarla per migliorare le applicazioni del mio team, che sono sviluppate con R Shiny.
Michal Maj - XL Catlin Services SE (AXA XL)
Corso - GitHub Copilot for Developers
Traduzione automatica