

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Funzionalità fondamentali per un'esperienza di sviluppo software basata sull'intelligenza artificiale
<a name="generative-ai-capabilities"></a>

Per implementare con successo un'esperienza di sviluppo software generativa basata sull'intelligenza artificiale, è necessario stabilire una serie di funzionalità di base che coinvolgano più persone all'interno dell'organizzazione. Queste funzionalità rappresentano la capacità di distribuire in modo efficace le risorse, implementare i processi e ottenere i risultati desiderati nel contesto dello sviluppo di software basato sull'intelligenza artificiale. Sviluppando queste funzionalità, create una solida base che vi aiuta a integrare senza problemi l'IA generativa in tutte le fasi dell'SDLC.

AWS fornisce servizi chiave per aiutarvi a implementare queste funzionalità. Ad esempio, [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html) aiuta ad accelerare lo sviluppo del software fungendo da assistente basato sull'intelligenza artificiale. [Amazon Q Business](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/what-is.html) ti aiuta a ottenere risposte rapide e pertinenti a domande urgenti, risolvere problemi e generare contenuti. Può anche agire per tuo conto integrando strumenti relativi allo sviluppo del software. [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) fornisce l'accesso a modelli di base e un'ampia gamma di funzionalità per personalizzare requisiti e flussi di lavoro di sviluppo specifici.

Sviluppando queste funzionalità Servizi AWS, crei una solida base che ti aiuta a integrare senza problemi l'intelligenza artificiale generativa in tutte le fasi dell'SDLC.

Di seguito sono elencate le funzionalità fondamentali su cui concentrarti:
+ [Gestione progettuale](generative-ai-capabilities-proj-mgmt.md)
+ [Gestione dei requisiti](generative-ai-capabilities-req-mgmt.md)
+ [Architettura e design](generative-ai-capabilities-arch-design.md)
+ [Collaborazione](generative-ai-capabilities-collaboration.md)
+ [DevSecOps](generative-ai-capabilities-devsecops.md)
+ [Funzionamento e manutenzione](generative-ai-capabilities-ops-maintenance.md)
+ [Assistenti AI](generative-ai-capabilities-assistants.md)
+ [Analisi dei dati e informazioni dettagliate](generative-ai-capabilities-analytics.md)
+ [Gestione delle conoscenze](generative-ai-capabilities-knowledge-mgmt.md)
+ [Estensibilità](generative-ai-capabilities-extensibility.md)

Ogni funzionalità di base si integra con le dimensioni del framework e le diverse fasi dell'SDLC. Questa integrazione consente di utilizzare le funzionalità di intelligenza artificiale in modo efficace durante tutto il processo di sviluppo del software. Migliora l'efficienza, la qualità e l'innovazione in ogni fase. La sinergia tra queste funzionalità fondamentali, il framework e le fasi SDLC crea un ecosistema completo per lo sviluppo di software basato sull'intelligenza artificiale. Ciò consente di sfruttare tutto il potenziale dell'IA generativa, promuovere il miglioramento continuo, accelerare i cicli di sviluppo e fornire prodotti software di qualità.

La tabella seguente mostra come le funzionalità e le funzionalità secondarie di base si collegano alle dimensioni del framework e alle fasi SDLC.


****  

| Capacità: sottocapacità | Indagare | Integra | Interagisci | Iterare | Impatto | 
| --- | --- | --- | --- | --- | --- | 
| Gestione del progetto: gestione dei problemi | Requisiti e pianificazione | Nessuno | Nessuna | Nessuna | Nessuno | 
| Gestione del progetto: Sprint e gestione delle attività | Requisiti e pianificazione | Requisiti e pianificazione | Nessuno | Nessuna | Nessuno | 
| Gestione del progetto: gestione del backlog di prodotto | Requisiti e pianificazione | Nessuno | Nessuno | Requisiti e pianificazione | Nessuno | 
| Gestione del progetto: mappatura delle storie degli utenti | Requisiti e pianificazione | Nessuno | Nessuna | Nessuna | Nessuno | 
| Gestione del progetto: reportistica e analisi | Requisiti e pianificazione | Nessuno | Nessuna | Nessuno | Requisiti e pianificazione | 
| Gestione del progetto: gestione della roadmap del prodotto | Requisiti e pianificazione | Nessuno | Requisiti e pianificazione | Nessuno | Nessuno | 
| Gestione del progetto: cicli di feedback | Nessuno | Nessuna | Nessuno | Requisiti e pianificazione | Nessuno | 
| Gestione del progetto: Retrospettive | Nessuno | Nessuna | Nessuno | Requisiti e pianificazione | Nessuno | 
| Gestione dei requisiti | Requisiti e pianificazione | Requisiti e pianificazione | Nessuno | Nessuna | Nessuno | 
| Architettura e design: progettazione della soluzione | Design e architettura | Design e architettura | Nessuno | Nessuna | Nessuno | 
| Collaborazione: gestione della documentazione | Tutte le fasi di SDLC | Nessuno | Tutte le fasi SDLC | Nessuno | Nessuno | 
| Collaborazione: condivisione delle conoscenze | Tutte le fasi SDLC | Nessuno | Tutte le fasi SDLC | Nessuno | Nessuno | 
| Collaborazione: gestione delle risorse del progetto | Nessuno | Tutte le fasi SDLC | Tutte le fasi SDLC | Nessuno | Nessuno | 
| DevSecOps: CI/CD | Test, implementazione | Implementazione, test, implementazione | Implementazione | Nessuno | Nessuno | 
| DevSecOps: DevOps sicurezza | Implementazione | Implementazione, test, funzionamento e manutenzione | Nessuno | Implementazione, test, funzionamento e manutenzione | Nessuno | 
| DevSecOps: monitoraggio delle prestazioni delle applicazioni | Nessuno | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuno | 
| DevSecOps: aggregazione e analisi dei log | Funzionamento e manutenzione | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuno | 
| DevSecOps: AIOps | Funzionamento e manutenzione | Nessuno | Nessuno | Funzionamento e manutenzione | Nessuno | 
| DevSecOps: Miglioramento continuo | Nessuno | Nessuna | Nessuno | Funzionamento e manutenzione | Nessuno | 
| DevSecOps: Monitoraggio del dashboard | Nessuno | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuno | 
| DevSecOps: Informazioni sulle prestazioni | Funzionamento e manutenzione | Nessuno | Nessuno | Funzionamento e manutenzione | Nessuno | 
| Funzionamento e manutenzione: gestione degli incidenti | Nessuno | Nessuna | Nessuno | Funzionamento e manutenzione | Nessuno | 
| Funzionamento e manutenzione: aggiornamenti del codice | Nessuno | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuno | 
| Funzionamento e manutenzione: ottimizzazione del codice | Funzionamento e manutenzione | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuno | 
| Funzionamento e manutenzione: gestione tecnica del debito | Nessuno | Funzionamento e manutenzione | Funzionamento e manutenzione | Nessuno | Nessuno | 
| Funzionamento e manutenzione: gestione delle modifiche | Nessuno | Implementazione, distribuzione | Nessuno | Nessuna | Nessuno | 
| Funzionamento e manutenzione: ingegneria inversa | Funzionamento e manutenzione | Nessuno | Nessuna | Nessuna | Nessuno | 
| Funzionamento e manutenzione: modernizzazione del codice | Nessuno | Implementazione | Nessuno | Nessuna | Nessuno | 
| Funzionamento e manutenzione: ottimizzazione delle prestazioni | Nessuno | Funzionamento e manutenzione | Nessuno | Funzionamento e manutenzione | Nessuno | 
| Analisi e approfondimenti | Nessuno | Requisiti e pianificazione | Nessuno | Nessuno | Tutte le fasi SDLC | 
| Assistente AI | Nessuno | Nessuno | Tutte le fasi SDLC | Nessuno | Nessuno | 
| Gestione della conoscenza | Nessuno | Nessuno | Tutte le fasi SDLC | Nessuno | Nessuno | 
| Estensibilità | Nessuno | Implementazione | Nessuno | Nessuna | Nessuno | 

# Casi d'uso dell'intelligenza artificiale generativa per la gestione dei progetti
<a name="generative-ai-capabilities-proj-mgmt"></a>

Una gestione efficace dei progetti è alla base di uno sviluppo software di successo. Nel contesto dell'IA generativa, la gestione dei progetti assume nuove dimensioni. Può diventare più predittiva, adattiva e basata sui dati. Gli strumenti di gestione dei progetti basati sull'intelligenza artificiale analizzano i dati storici del progetto per generare stime più accurate di tempi e risorse. Possono assegnare automaticamente le priorità alle attività in base agli obiettivi aziendali e alla capacità del team e possono persino prevedere potenziali ostacoli prima che si verifichino. Ad esempio, un project manager potrebbe utilizzare l'intelligenza artificiale generativa per creare un piano di progetto preliminare basato sui requisiti del progetto e sui dati storici di progetti simili. L'intelligenza artificiale potrebbe quindi suggerire composizioni di team ottimali che tengano conto delle competenze, dei carichi di lavoro e delle esigenze del progetto. Nel corso del progetto, le dashboard basate sull'intelligenza artificiale forniscono informazioni quasi in tempo reale sullo stato del progetto generando automaticamente report ed evidenziando le aree che richiedono attenzione.

Questo approccio alla gestione dei progetti basato sull'intelligenza artificiale può migliorare l'efficienza. Aiuta i project manager a concentrarsi sul processo decisionale strategico e sulla leadership del team, anziché impantanarsi nelle attività amministrative di routine.

La tabella seguente mostra i casi d'uso della gestione dei progetti che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Sottocapacità: caso d'uso | Utente | 
| --- | --- | 
| Gestione dei problemi: creazione e assegnazione di problemi | Project manager | 
| Gestione dei problemi: rileva i problemi durante i test e li registra | Tecnico di test | 
| Gestione dei problemi: assegna priorità ai problemi in base alla gravità e assegnali agli sviluppatori | Project manager | 
| Gestione dei problemi: identifica e unisci i problemi duplicati | Project manager | 
| Gestione dei problemi: monitora e genera report su problemi chiave, metriche e stato generale del progetto | Project manager | 
| Sprint e gestione delle attività: stima lo sforzo svolto per le attività e assegna gli story point in base alla capacità del team | Scrum Master | 
| Sprint e gestione delle attività: distribuisci le attività tra i membri del team per un carico di lavoro uniforme durante lo sprint | Scrum Master | 
| Gestione dello sprint e delle attività: facilita le sessioni di pianificazione dello sprint che allineano gli sforzi del team agli obiettivi dello sprint | Scrum Master | 
| Gestione del backlog di prodotto: riordina gli elementi del backlog in base al valore aziendale, all'urgenza e al feedback degli utenti | Proprietario del prodotto | 
| Gestione del backlog di prodotto: integra i nuovi feedback dei clienti e le informazioni di mercato nel backlog dei prodotti per una prioritizzazione quasi in tempo reale | Proprietario del prodotto | 
| Gestione del backlog di prodotto: identifica e gestisci le dipendenze tra gli elementi del backlog per semplificare lo sviluppo | Responsabile del prodotto | 
| Mappatura delle storie degli utenti: crea mappe dei percorsi degli utenti per identificare tutte le funzionalità necessarie e le storie utente corrispondenti | Proprietario del prodotto | 
| Mappatura delle storie degli utenti: identifica le lacune o le fasi mancanti nel flusso degli utenti | Business analyst | 
| Mappatura delle storie degli utenti: dai priorità alle storie degli utenti in base al loro impatto sul valore aziendale | Responsabile del prodotto | 
| Reportistica e analisi: genera dashboard quasi in tempo reale che visualizzano le metriche chiave del progetto, come la velocità di sprint e i tassi di risoluzione dei problemi | Project manager | 
| Reportistica e analisi: analizza i dati storici e prevedi i risultati futuri del progetto, come potenziali ritardi o strozzature | Project manager | 
| Reportistica e analisi: crea report personalizzati, ad esempio rapporti sulle prestazioni del team o sullo stato del progetto, personalizzati per le diverse parti interessate | Project manager | 
| Gestione della roadmap del prodotto: crea e gestisci una roadmap di prodotto che delinei le tappe principali e le date di rilascio | Project manager | 
| Gestione della roadmap del prodotto: aggiorna la roadmap in base ai cambiamenti nelle priorità o nelle tempistiche del progetto | Responsabile del prodotto | 
| Gestione della roadmap del prodotto: condividi la roadmap con le parti interessate per fornire visibilità sulla direzione del prodotto | Responsabile del prodotto | 
| Cicli di feedback: raccogli il feedback del team dopo ogni sprint e identifica le aree di miglioramento | Scrum Master | 
| Retrospettive: Traduci il feedback in elementi utilizzabili per lo sprint successivo, favorendo il miglioramento continuo | Scrum Master | 
| Retrospettive: monitora l'impatto delle modifiche implementate dalle retrospettive precedenti per misurarne l'efficacia | Scrum Master | 

# Casi d'uso dell'intelligenza artificiale generativa per la gestione dei requisiti
<a name="generative-ai-capabilities-req-mgmt"></a>

La gestione dei requisiti è un processo critico strettamente legato alla gestione dei progetti. Immagina un proprietario di prodotto che utilizza uno strumento di intelligenza artificiale per analizzare il feedback dei clienti, le tendenze del mercato e gli input delle parti interessate. Lo strumento di intelligenza artificiale potrebbe generare una serie completa di storie e requisiti degli utenti, classificarli automaticamente, rilevare potenziali conflitti o lacune e persino suggerire l'assegnazione delle priorità in base al valore aziendale e alla complessità dell'implementazione. Man mano che il progetto avanza e i requisiti evolvono, l'IA può aggiornare e perfezionare continuamente i requisiti per assicurarsi che rimangano in linea con le mutevoli esigenze aziendali e i vincoli tecnici. Questo approccio dinamico e basato sull'intelligenza artificiale alla gestione dei requisiti aiuta a garantire che gli sforzi di sviluppo rimangano strettamente allineati con le esigenze degli utenti e gli obiettivi aziendali durante tutto il ciclo di vita del progetto.

La tabella seguente mostra i casi d'uso della gestione dei requisiti che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Crea requisiti aziendali | Business analyst | 
| Crea epopee partendo dalle funzionalità | Proprietario del prodotto | 
| Tieni traccia dei progressi di un'epopea monitorando il completamento delle storie utente associate | Responsabile del prodotto | 
| Crea storie di utenti | Proprietario del prodotto | 
| Stima lo sforzo richiesto per ogni storia d'uso e assegna punti alla storia | Scrum Master | 
| Definisci i criteri di accettazione per ogni storia utente | Proprietario del prodotto | 

# Casi d'uso dell'intelligenza artificiale generativa per l'architettura e il design
<a name="generative-ai-capabilities-arch-design"></a>

Con una solida base di gestione dei progetti e requisiti ben definiti, la prossima funzionalità fondamentale è l'architettura e il design. Qui, l'intelligenza artificiale generativa sta aprendo nuove possibilità per la creazione di architetture software solide, scalabili ed efficienti. Gli strumenti di progettazione basati sull'intelligenza artificiale possono analizzare requisiti e vincoli per suggerire modelli architettonici e approcci progettuali ottimali. Generano diverse alternative di progettazione e ciascuna è ottimizzata per priorità diverse, come prestazioni, scalabilità o manutenibilità. Ad esempio, un architetto di soluzioni potrebbe utilizzare un assistente AI per generare rapidamente diversi progetti architettonici di alto livello in base ai requisiti del progetto. Questo approccio basato sull'intelligenza artificiale accelera il processo di progettazione e aiuta gli architetti a prendere decisioni più informate. Ciò porta a progetti software più robusti e a prova di futuro.

La tabella seguente mostra i casi d'uso di architettura e progettazione che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Crea un documento di architettura | Architetto di soluzioni | 
| Crea un documento di progettazione dettagliato | Responsabile tecnico | 
| Comprendi l'architettura e gli standard di progettazione esistenti | Architetto di soluzioni | 
| Sviluppa modelli e prototipi dettagliati di un'interfaccia utente | UX/UI designer | 

# Casi d'uso dell'intelligenza artificiale generativa per la collaborazione
<a name="generative-ai-capabilities-collaboration"></a>

Lo sviluppo del software è intrinsecamente un'attività collaborativa. Puoi utilizzare l'intelligenza artificiale generativa per migliorare la collaborazione nel tuo team di sviluppo software. Gli strumenti di collaborazione basati sull'intelligenza artificiale vanno oltre la semplice messaggistica e la condivisione di file. Facilitano una comunicazione più efficace riassumendo i lunghi thread di discussione, evidenziando le decisioni chiave e persino suggerendo orari ottimali per le riunioni in base agli orari e ai modelli di produttività dei membri del team. L'intelligenza artificiale può aiutare nella revisione del codice identificando automaticamente potenziali problemi, suggerendo miglioramenti e persino spiegando modifiche complesse ai revisori. Durante le sessioni di brainstorming, l'intelligenza artificiale può fungere da facilitatore, generare idee, aiutare a organizzare i pensieri e persino mediare le discussioni per assicurarsi che tutte le voci vengano ascoltate. Per i team distribuiti, l'intelligenza artificiale può aiutare a superare le barriere culturali e linguistiche. Può fornire una traduzione linguistica quasi in tempo reale nelle chat e nelle videochiamate e offrire un contesto culturale per aiutare a prevenire malintesi. Aumentando la collaborazione umana con l'intelligenza artificiale, questa funzionalità aiuta i team a lavorare in modo più efficiente ed efficace, il che favorisce l'innovazione e migliora i risultati complessivi del progetto.

La tabella seguente mostra come utilizzare l'intelligenza artificiale generativa per migliorare i casi d'uso della collaborazione.


****  

| Sottocapacità: caso d'uso | Utente | 
| --- | --- | 
| Gestione dei documenti: creazione e gestione di un archivio di documentazione centralizzato | Scrittore tecnico | 
| Gestione dei documenti: consenti a più membri del team di collaborare sulla documentazione in tempo reale | Team di sviluppo | 
| Condivisione delle conoscenze: utilizza i forum di discussione come piattaforma per gli sviluppatori per porre domande, condividere conoscenze e risolvere problemi in modo collaborativo | Team di sviluppo | 
| Condivisione delle conoscenze: utilizza i forum di discussione per documentare e tenere traccia delle decisioni prese durante le discussioni sul progetto, assicurandoti che la logica alla base delle decisioni chiave sia acquisita e accessibile per riferimenti futuri | Responsabile del prodotto | 
| Gestione delle risorse di progetto: facilita la condivisione delle risorse relative al progetto | Team di sviluppo | 
| Gestione delle risorse di progetto: implementa il controllo delle versioni per i contenuti condivisi in modo che i membri del team possano tenere traccia delle modifiche, tornare alle versioni precedenti e collaborare agli aggiornamenti dei contenuti | Team di sviluppo | 

# Casi d'uso dell'intelligenza artificiale generativa per DevSecOps
<a name="generative-ai-capabilities-devsecops"></a>

 DevSecOps Gli strumenti basati sull'intelligenza artificiale automatizzano molti aspetti della pipeline di distribuzione del software. Ad esempio, possono eseguire revisioni intelligenti del codice, rilevare potenziali bug, rilevare vulnerabilità di sicurezza e identificare problemi di prestazioni quasi in tempo reale mentre gli sviluppatori scrivono il codice. L'intelligenza artificiale genera ed esegue suite di test complete e le aggiorna automaticamente man mano che la codebase si evolve. Questo approccio basato sull'intelligenza artificiale DevSecOps accelera la pipeline di distribuzione e migliora in modo significativo la sicurezza e l'affidabilità del software distribuito.

La tabella seguente mostra i casi DevSecOps d'uso che è possibile migliorare con l'IA generativa e la persona responsabile di tali casi d'uso.


****  

| Sottocapacità: caso d'uso | Utente | 
| --- | --- | 
| DevOps e distribuzione continua: intere pipeline di implementazione automatizzate | DevOps ingegnere | 
| DevOps e distribuzione continua: ricevi feedback quasi in tempo reale sulla qualità del codice e sui potenziali problemi | Software developer | 
| DevOps e distribuzione continua: ricevi suggerimenti su problemi di sicurezza e soluzioni quasi in tempo reale | Software developer | 
| DevOps e distribuzione continua: ricevi codice e suggerimenti sulle migliori pratiche quasi in tempo reale | Software developer | 
| DevOps e distribuzione continua: automatizza le attività ripetitive e integra i comandi negli script | DevOps ingegnere | 
| DevOps e distribuzione continua: crea codice e genera artefatti automaticamente dopo ogni commit del codice | Software developer | 
| DevOps e distribuzione continua: crea codice in base agli standard e al framework dell'organizzazione | Software developer | 
| DevOps e distribuzione continua: esegui automaticamente test unitari su ogni commit per catturare gli errori nelle prime fasi del processo di sviluppo | Software developer | 
| DevOps e distribuzione continua: analizza la copertura degli unit test per assicurarti che tutti i percorsi di codice critici vengano testati | Software developer | 
| DevOps e distribuzione continua: gestisci le filiali e unisci le modifiche | Software developer | 
| DevOps e distribuzione continua: gestisci il controllo delle versioni di codice e artefatti | Software developer | 
| DevOps e distribuzione continua: archivia e gestisci gli artefatti e le dipendenze delle build | DevOps ingegnere | 
| DevOps e distribuzione continua: risolvi e recupera le dipendenze durante il processo di creazione | Software developer | 
| DevOps e distribuzione continua: genera ed esegui test di integrazione per assicurarti che i componenti funzionino insieme come previsto | Tecnico di test | 
| DevOps e distribuzione continua: utilizza servizi fittizi durante i test di integrazione per simulare le interazioni con sistemi esterni | Ingegnere di test | 
| DevOps e fornitura continua: confronta le prestazioni delle applicazioni con carichi diversi | Ingegnere delle prestazioni | 
| DevOps e distribuzione continua: simula scenari ad alto traffico per testare la scalabilità e i tempi di risposta dell'applicazione | Ingegnere delle prestazioni | 
| DevOps e distribuzione continua: verifica la capacità del sistema di ripristinarsi in caso di guasti, come arresti anomali del server o interruzioni della rete | Ingegnere dell'affidabilità del sito | 
| DevOps e fornitura continua: esegui l'ingegneria del caos | Ingegnere dell'affidabilità del sito | 
| DevOps e distribuzione continua: esegui test per verificare che l'applicazione soddisfi i requisiti aziendali | Ingegnere QA | 
| DevOps e consegna continua: esegui test di accettazione da parte degli utenti | Proprietario del prodotto | 
| DevOps e distribuzione continua: scansiona le dipendenze per individuare vulnerabilità e problemi di conformità delle licenze | Ingegnere della sicurezza | 
| DevOps e distribuzione continua: monitora e gestisci le dipendenze open source per assicurarti che siano aggiornate e sicure | Ingegnere della sicurezza | 
| DevOps e fornitura continua: genera e gestisci una distinta base del software (SBOM) per tenere traccia di tutti i componenti e le dipendenze | Ingegnere della sicurezza | 
| DevOps e fornitura continua: utilizza lo SBOM per condurre audit di conformità normativa | Responsabile della conformità | 
| DevOps e distribuzione continua: crea note di rilascio | Gestore delle versioni | 
| DevOps e distribuzione continua: pianifica e coordina i rilasci | Responsabile delle versioni | 
| DevOps e distribuzione continua: implementa procedure operative standard per il rollback e la gestione dei rilasci | Gestore dei rilasci | 
| DevOps e distribuzione continua: utilizza i flag di funzionalità per abilitare o disabilitare le funzionalità in produzione senza implementare nuovo codice | Responsabile del prodotto | 
| DevOps e distribuzione continua: A/B esegui test utilizzando i flag di funzionalità per misurare l'impatto di diverse funzionalità sul comportamento degli utenti | Responsabile del prodotto | 
| DevOps e distribuzione continua: analizza e monitora i guasti della pipeline | DevOps ingegnere | 
| DevOps e distribuzione continua: crea e gestisci le risorse dell'infrastruttura | DevOps ingegnere | 
| DevOps e sicurezza: scansiona gli archivi di codice alla ricerca di segreti codificati | DevOps ingegnere | 
| DevOps e sicurezza: implementa il rilevamento quasi in tempo reale per avvisare immediatamente gli sviluppatori se nel repository vengono archiviati segreti | DevOps ingegnere | 
| DevOps e sicurezza: applica il monitoraggio continuo della qualità del codice | Software developer | 
| DevOps e sicurezza: rileva e contrassegna gli indicatori di potenziali vulnerabilità di sicurezza nel codice | Software developer | 
| DevOps e sicurezza: implementate test automatici per identificare i 10 principali rischi di sicurezza dell'Open Worldwide Application Security Project (OWASP) per assicurarvi che l'applicazione aderisca alle pratiche di sicurezza standard del settore | Ingegnere della sicurezza | 
| DevOps e sicurezza: aggiorna e istruisci regolarmente gli sviluppatori sui rischi OWASP integrando i controlli nel processo di sviluppo | Ingegnere della sicurezza | 
| DevOps e sicurezza: scansiona le librerie e le dipendenze di terze parti per individuare vulnerabilità di sicurezza note | DevOps ingegnere | 
| DevOps e sicurezza: scansiona il codice e l'infrastruttura dell'applicazione per rilevare le vulnerabilità | DevOps ingegnere | 
| DevOps e sicurezza: analizza il codice per individuare eventuali vulnerabilità prima della distribuzione | Ingegnere della sicurezza | 
| DevOps e sicurezza: applica le politiche di sicurezza impedendo che il codice con vulnerabilità critiche venga unito | Ingegnere della sicurezza | 
| DevOps e sicurezza: implementa il controllo degli accessi basato sui ruoli (RBAC) per limitare l'accesso a sistemi e dati sensibili e per garantire che solo il personale autorizzato possa accedere alle risorse critiche | Ingegnere della sicurezza | 
| DevOps e sicurezza: regola i controlli di accesso in base a ruoli e responsabilità adattandoti ai cambiamenti nella struttura del team | DevOps ingegnere | 
| DevOps e sicurezza: testa le applicazioni in esecuzione alla ricerca di vulnerabilità di sicurezza quasi in tempo reale simulando gli attacchi all'ambiente di produzione | Ingegnere della sicurezza | 
| DevOps e sicurezza: monitora continuamente le applicazioni distribuite per individuare eventuali vulnerabilità di sicurezza | DevOps ingegnere | 
| DevOps e sicurezza: pianifica scansioni periodiche delle vulnerabilità in tutti gli ambienti per identificare e risolvere i punti deboli della sicurezza | Ingegnere della sicurezza | 
| DevOps e sicurezza: applica patch e aggiornamenti in base ai risultati della scansione delle vulnerabilità per contribuire a mantenere i sistemi sicuri | DevOps ingegnere | 
| Monitoraggio delle prestazioni delle applicazioni: monitora continuamente le prestazioni delle applicazioni quasi in tempo reale per rilevare e diagnosticare i problemi di prestazioni prima che influiscano sugli utenti | Ingegnere dell'affidabilità del sito | 
| Monitoraggio delle prestazioni delle applicazioni: rileva le anomalie delle prestazioni, come picchi improvvisi nei tempi di risposta o un aumento dei tassi di errore, e avvia avvisi | DevOps ingegnere | 
| Monitoraggio delle prestazioni delle applicazioni: traccia le richieste man mano che si propagano attraverso un sistema distribuito per identificare i rallentamenti delle prestazioni e i problemi di latenza | DevOps ingegnere | 
| Monitoraggio delle prestazioni delle applicazioni: utilizza il tracciamento distribuito per individuare il servizio o il componente esatto responsabile dei guasti o del degrado delle prestazioni | DevOps ingegnere | 
| Aggregazione e analisi dei log: aggrega i log provenienti da più fonti in un sistema centralizzato per facilitare la ricerca e l'analisi al fine di identificare tendenze e problemi | Ingegnere dell'affidabilità del sito | 
| Aggregazione e analisi dei log: implementa l'analisi automatica dei log per estrarre le informazioni pertinenti e rilevare modelli o anomalie che potrebbero indicare problemi | DevOps ingegnere | 
| Aggregazione e analisi dei log: raccogli e visualizza le metriche chiave delle prestazioni | Ingegnere dell'affidabilità del sito | 
| Aggregazione e analisi dei log: monitora le metriche rispetto agli accordi sui livelli di servizio predefiniti () SLAs | Responsabile del prodotto | 
| Operazioni di intelligenza artificiale: rileva gli incidenti, analizza le cause profonde e avvia azioni correttive senza l'intervento umano | DevOps ingegnere | 
| Operazioni AI: prevedi le future richieste di risorse e ottimizza la pianificazione della capacità per evitare interruzioni | Ingegnere dell'affidabilità del sito | 
| Miglioramento continuo: monitora le interazioni degli utenti reali con l'applicazione per raccogliere informazioni sulle prestazioni e identificare le aree di miglioramento | Progettista UX | 
| Miglioramento continuo: monitora le prestazioni delle applicazioni in diverse aree geografiche per garantire un'esperienza utente coerente a livello globale | Responsabile del prodotto | 
| Monitoraggio del dashboard: crea dashboard personalizzabili per visualizzare metriche, log e tracce critici quasi in tempo reale, al fine di fornire una visione completa dello stato del sistema | Ingegnere dell'affidabilità del sito | 
| Monitoraggio delle dashboard: crea dashboard per diversi team (ad esempio team di sviluppo, operativi e di prodotto) per fornire informazioni pertinenti in base alle aree di interesse | DevOps ingegnere | 
| Informazioni sulle prestazioni: conduci un'analisi dettagliata delle prestazioni delle applicazioni per identificare le inefficienze e ottimizzare il codice o l'infrastruttura | Software developer | 
| Informazioni sulle prestazioni: utilizza le informazioni sulle prestazioni per migliorare in modo iterativo le prestazioni delle applicazioni e ottimizzare l'esperienza utente nel tempo | Responsabile del prodotto | 

# Casi d'uso dell'intelligenza artificiale generativa per il funzionamento e la manutenzione
<a name="generative-ai-capabilities-ops-maintenance"></a>

Dopo l'implementazione del software, l'attenzione si sposta sul funzionamento e sulla manutenzione. L'intelligenza artificiale generativa può migliorare gli approcci tradizionali fornendo una gestione del sistema più proattiva ed efficiente. Gli strumenti operativi basati sull'intelligenza artificiale monitorano continuamente le prestazioni del sistema e prevedono potenziali problemi prima che influiscano sugli utenti. Eseguono un'analisi automatizzata delle cause principali quando si verificano problemi, il che riduce significativamente il tempo medio di risoluzione. L'intelligenza artificiale ottimizza anche le prestazioni del sistema quasi in tempo reale. Regola automaticamente le configurazioni in base alla modifica dei modelli di carico e dei comportamenti degli utenti. Ad esempio, un team operativo potrebbe utilizzare un assistente AI per generare programmi di manutenzione predittiva, identificare automaticamente i componenti che potrebbero guastarsi e suggerire azioni preventive. L'intelligenza artificiale potrebbe anche aiutare nella pianificazione della capacità analizzando le tendenze di utilizzo e prevedendo le future esigenze di risorse con elevata precisione.

La tabella seguente mostra i casi d'uso di funzionamento e manutenzione che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Sottocapacità: caso d'uso | Utente | 
| --- | --- | 
| Gestione degli incidenti: gestisci gli incidenti quasi in tempo reale integrando gli strumenti di monitoraggio con le piattaforme di chat in modo che i team possano rilevare, discutere e risolvere i problemi direttamente all'interno dell'ambiente di chat | Ingegnere dell'affidabilità del sito | 
| Gestione degli incidenti: consente ai team di avviare implementazioni, eseguire script ed eseguire comandi direttamente dall'interfaccia di chat, il che semplifica le operazioni | DevOps ingegnere | 
| Aggiornamenti del codice: aggiorna le dipendenze e le librerie del codice per ridurre lo sforzo manuale e assicurarti che la codebase rimanga aggiornata con le versioni più recenti | Software developer | 
| Ottimizzazione del codice: rivedi il codice per individuare opportunità di ottimizzazione | Software developer | 
| Ottimizzazione del codice: identifica i punti deboli nel codice e rifattorizza o ottimizza il codice per migliorare le prestazioni | Software developer | 
| Gestione tecnica del debito: registra il debito tecnico come parte del processo di sviluppo | Responsabile del prodotto | 
| Gestione tecnica del debito: assegna priorità e gestisci il debito tecnico in base all'impatto, al rischio e ai costi e integratelo nel normale processo di pianificazione degli sprint | Software developer | 
| Gestione tecnica del debito: riduci il debito tecnico nel codice applicativo esistente | Software developer | 
| Gestione delle modifiche: implementa un processo di approvazione delle modifiche che assicuri che tutte le modifiche al codice siano riviste, testate e approvate dalle parti interessate necessarie prima della distribuzione | Gestore delle modifiche | 
| Gestione delle modifiche: esegue l'analisi dell'impatto delle modifiche proposte | DevOps ingegnere | 
| Ingegneria inversa: analizza e comprendi la struttura e il comportamento del codice legacy | Architetto di soluzioni | 
| Ingegneria inversa: spiega il codice esistente e genera documentazione | Software developer | 
| Modernizzazione del codice: Traduci il codice da un linguaggio di programmazione a un altro | Software developer | 
| Modernizzazione del codice: modernizza il codice legacy con il linguaggio di programmazione più recente | Software developer | 
| Ottimizzazione delle prestazioni: monitora e ottimizza continuamente le prestazioni del sistema ottimizzando l'allocazione delle risorse, il bilanciamento del carico e la riconfigurazione dell'applicazione | Ingegnere dell'affidabilità del sito | 
| Ottimizzazione delle prestazioni: identifica e rifattorizza il codice che causa un peggioramento delle prestazioni per migliorare la velocità e la reattività del sistema | Software developer | 

# Casi d'uso per assistenti generativi di intelligenza artificiale nello sviluppo di software
<a name="generative-ai-capabilities-assistants"></a>

La funzionalità dell'assistente AI è al centro dell'esperienza di sviluppo generativa basata sull'intelligenza artificiale. Questo sistema intelligente e sensibile al contesto funge da collaboratore virtuale per tutti i membri del team dell'intero SDLC. Immagina uno sviluppatore che lavora su un codice complesso. Possono semplicemente chiedere aiuto all'assistente AI, che può fornire frammenti di codice pertinenti, spiegare algoritmi complessi o persino suggerire ottimizzazioni basate sul contesto e sulle migliori pratiche correnti. L'assistente AI può aiutare un ITOps manager a comprendere una procedura operativa standard basata su documenti interni. Fornendo un supporto istantaneo e contestuale, gli assistenti AI riducono in modo significativo il carico cognitivo sui membri del team. Questo li aiuta a concentrarsi su attività creative e di risoluzione dei problemi di livello superiore. Questa funzionalità funge da moltiplicatore di forza che migliora la produttività e la qualità in tutte le fasi dello sviluppo del software.

La tabella seguente mostra i casi d'uso che è possibile migliorare con gli assistenti di intelligenza artificiale e la persona beneficiaria.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Fornisci assistenza immediata al team di sviluppo rispondendo a domande, ad esempio su requisiti, architetture e procedure operative standard | Team di sviluppo software | 
| Cerca o recupera estratti da un'ampia documentazione o genera riassunti utilizzando query in linguaggio naturale | Team di sviluppo software | 
| Riassumi lunghi documenti tecnici, come documenti relativi ai requisiti, documentazioni sulla progettazione dell'architettura e processi interni | Team di sviluppo software | 
| Gestisci una libreria di istruzioni che il team può utilizzare per attività comuni | Team di sviluppo software | 
| Integra perfettamente l'IA generativa negli strumenti e nei sistemi esistenti | Team di sviluppo software | 
| Automatizza le attività su varie piattaforme, strumenti e sistemi interni | Team di sviluppo software | 
| Crea un archivio centralizzato di conoscenze, che include best practice, informazioni specifiche sul progetto e conoscenze del team, accessibile a tutti i membri del team | Team di sviluppo software | 
| Recupera le conoscenze pertinenti dal repository in base al contesto dell'attività | Team di sviluppo software | 
| Esegui revisioni automatiche del codice, analisi delle cause principali, suggerisci miglioramenti, rileva potenziali bug ed esegui la risoluzione dei problemi | Sviluppatore di software, DevOps ingegnere e tecnico dell'affidabilità del sito | 
| Analizza i dati sulle prestazioni per identificare tendenze e modelli in grado di orientare le decisioni sull'ottimizzazione delle prestazioni | Ingegnere dell'affidabilità del sito | 
| Fornisci consigli per migliorare l'efficienza, ridurre la complessità e migliorare la sicurezza | Software developer | 
| Suggerisci ottimizzazioni per l'utilizzo delle risorse cloud, come consigli di scalabilità o strategie di riduzione dei costi | Sviluppatore di software, DevOps ingegnere, ingegnere dell'affidabilità del sito e architetto di soluzioni | 
| Genera nuovi contenuti, come documentazione basata su codice, guide per l'utente o versioni di funzionalità del prodotto | Team di sviluppo software | 

# Casi d'uso dell'intelligenza artificiale generativa per analisi e approfondimenti
<a name="generative-ai-capabilities-analytics"></a>

La funzionalità di analisi e approfondimenti aiuta a convertire grandi quantità di dati in informazioni fruibili che guidano il processo decisionale e il miglioramento continuo. Utilizzando l'intelligenza artificiale generativa, questa funzionalità elabora i dati provenienti da varie fonti, tra cui archivi di codice, strumenti di gestione dei progetti e piattaforme di collaborazione in team, per fornire una visione olistica del processo di sviluppo e della produttività del team. L'intelligenza artificiale generativa va oltre le metriche tradizionali per offrire analisi predittive e prescrittive. Può prevedere potenziali problemi e suggerire miglioramenti mirati. Ad esempio, può analizzare i modelli nei commit di codice, i tassi di risoluzione dei bug e la velocità di distribuzione delle funzionalità per identificare team ad alte prestazioni, individuare i punti deboli e suggerire ottimizzazioni dei processi. Inoltre, può fornire informazioni sulle dinamiche del team e sulle prestazioni individuali. Queste informazioni aiutano i leader a prendere decisioni basate sui dati sulla distribuzione del carico di lavoro, sulle esigenze di formazione e sulla composizione del team. Presentando queste informazioni tramite dashboard interattivi, la funzionalità consente alle parti interessate a tutti i livelli di prendere decisioni informate, ottimizzare i processi e migliorare continuamente la produttività del team, il che porta a una fornitura più rapida di software di alta qualità.

La tabella seguente mostra i casi d'uso dell'analisi che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Monitora la produttività individuale e del team | Responsabile dello sviluppo | 
| Analizza le tendenze della produttività per rilevare il potenziale esaurimento in modo da poter adottare misure proattive per mantenere il benessere e la produttività del team | Responsabile dello sviluppo | 
| Tieni traccia della frequenza con cui le modifiche al codice vengono implementate nella produzione per misurare la velocità e l'agilità del processo di sviluppo | Responsabile del prodotto | 
| Analizza i dati sulla frequenza di implementazione per identificare i periodi di scarsa attività di implementazione che potrebbero indicare inefficienze dei processi o vincoli di risorse | Responsabile del prodotto | 
| Misura il tempo che intercorre tra l'invio del codice e l'implementazione per identificare le opportunità per semplificare i processi di sviluppo e implementazione | Responsabile dello sviluppo | 
| Tieni traccia della percentuale di implementazioni che provocano errori che richiedono una correzione immediata per valutare l'affidabilità del processo di rilascio | Ingegnere dell'affidabilità del sito | 
| Utilizzate le metriche relative al tasso di errore delle modifiche per identificare le aree di codice che causano frequentemente problemi, in modo da orientare le attività mirate di refactoring e test | Software developer | 
| Monitora il tempo necessario per ripristinare il servizio dopo un'interruzione o un incidente in modo da ridurre i tempi di inattività e migliorare la resilienza complessiva del sistema | Ingegnere dell'affidabilità del sito | 
| Analizza le tendenze dei tempi di ripristino per migliorare i processi di risposta agli incidenti e accelerare il ripristino in caso di guasti del sistema | DevOps ingegnere | 
| Crea una dashboard personalizzata che aggrega le metriche chiave, come la frequenza di implementazione, il lead time e il tasso di errore delle modifiche, al fine di fornire una visione completa dello sviluppo e dello stato operativo | Responsabile del prodotto | 
| Crea dashboard personalizzate in base alle esigenze dei diversi team per fornire informazioni mirate sulle rispettive aree di responsabilità specifiche, come lo sviluppo, le operazioni o il business | Responsabile del prodotto | 
| Tieni traccia degli indicatori chiave di performance aziendali (KPIs), come l'impatto sui ricavi, la soddisfazione dei clienti e la quota di mercato, al fine di allineare gli sforzi di sviluppo con obiettivi aziendali più ampi | Responsabile del prodotto | 
| Analizza l'impatto delle nuove funzionalità sul business KPIs per valutarne il successo e guidare lo sviluppo futuro dei prodotti | Business analyst | 
| Monitora i parametri di qualità del codice, come la complessità del codice, la copertura dei test e la densità dei bug, per assicurarti che la codebase rimanga gestibile e sicura | Software developer | 
| Identifica le aree della codebase che richiedono il refactoring per promuovere la sostenibilità a lungo termine e ridurre il debito tecnico | Architetto di soluzioni | 

# Casi d'uso dell'intelligenza artificiale generativa per la gestione della conoscenza
<a name="generative-ai-capabilities-knowledge-mgmt"></a>

In qualsiasi organizzazione di sviluppo software, la conoscenza è una risorsa fondamentale. La capacità di gestione della conoscenza, basata sull'intelligenza artificiale generativa, migliora il modo in cui questa risorsa viene acquisita, organizzata e utilizzata. I sistemi tradizionali di gestione della conoscenza spesso contengono troppe informazioni, contengono contenuti obsoleti o sono difficili da cercare per trovare rapidamente le informazioni pertinenti.

L'intelligenza artificiale generativa affronta queste sfide a testa alta. Genera e aggiorna automaticamente la documentazione in base a modifiche al codice, conversazioni e artefatti del progetto. Ciò garantisce che le basi di conoscenza rimangano aggiornate senza richiedere interventi manuali da parte dei membri del team. Ancora più importante, l'intelligenza artificiale rende queste conoscenze accessibili in modi intuitivi. I membri del team possono porre domande in linguaggio naturale e l'intelligenza artificiale può fornire risposte pertinenti. L'intelligenza artificiale può attingere a una varietà di fonti, come documentazione ufficiale, commenti sul codice, thread di discussione e persino risorse esterne. Ad esempio, un nuovo membro del team che cerca di comprendere un componente specifico potrebbe chiedere all'IA: «Come funziona il modulo di autenticazione?» L'intelligenza artificiale fornirebbe quindi una spiegazione concisa e collegamenti alle sezioni di codice pertinenti, ai diagrammi architettonici e alle modifiche recenti. Potrebbe persino personalizzare queste informazioni in base al ruolo e al livello di esperienza del membro del team.

Questa funzionalità accelera l'onboarding, riduce le domande ripetitive e promuove la condivisione delle conoscenze all'interno dell'organizzazione. Aiuta a preservare le conoscenze istituzionali, rendendo più facile per i team mantenere ed evolvere sistemi complessi nel tempo.

La tabella seguente mostra i casi d'uso della gestione della conoscenza che è possibile migliorare con l'intelligenza artificiale generativa e la persona responsabile di tali casi d'uso.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Crea una piattaforma unificata che faciliti l'accesso a tutte le conoscenze relative ai progetti | Team di sviluppo software | 
| Acquisisci le conoscenze derivanti da varie attività di sviluppo | Team di sviluppo software | 
| Fornisci funzionalità di ricerca avanzate per trovare rapidamente le conoscenze pertinenti all'interno di un repository | Team di sviluppo software | 
| Personalizza i moduli e i percorsi di apprendimento per il team | Team di sviluppo software | 

# Casi d'uso dell'intelligenza artificiale generativa per l'estensibilità
<a name="generative-ai-capabilities-extensibility"></a>

L'estensibilità consente una perfetta integrazione con gli strumenti e i flussi di lavoro esistenti, consentendo al contempo alle organizzazioni di adattare il sistema di intelligenza artificiale alle proprie esigenze specifiche. Questa funzionalità fornisce interfacce robuste APIs e personalizzabili che facilitano l'integrazione delle funzionalità di intelligenza artificiale nei più diffusi strumenti di sviluppo e gestione dei progetti. SDKs Ad esempio, le organizzazioni possono potenziare Jira con funzionalità basate sull'intelligenza artificiale per la prioritizzazione automatica dei ticket, la stima degli sforzi e la pianificazione degli sprint. Puoi potenziare le pipeline Jenkins con l'intelligenza artificiale per l'ottimizzazione intelligente delle build e la selezione predittiva dei test.

Inoltre, l'estensibilità consente una profonda integrazione con ambienti di sviluppo integrati (IDEs), sistemi di controllo delle versioni e piattaforme di revisione del codice. L'intelligenza artificiale può aiutare a codificare, automatizzare le revisioni del codice e generare documentazione contestuale.

La funzionalità supporta anche la formazione e l'ottimizzazione dei modelli di intelligenza artificiale su dati specifici dell'organizzazione. Questo aiuta l'intelligenza artificiale a comprendere i modelli di codifica specifici dell'azienda, le preferenze architettoniche e la conoscenza del dominio. Il risultato è un'assistenza più pertinente e sensibile al contesto in tutti gli strumenti integrati. Fornendo questo livello di flessibilità e integrazione, l'estensibilità garantisce che l'esperienza di sviluppo basata sull'intelligenza artificiale si evolva con l'organizzazione. Può adattarsi alle mutevoli tecnologie e alle esigenze aziendali, migliorando al contempo senza problemi le toolchain e i flussi di lavoro esistenti.

La tabella seguente mostra i casi d'uso dell'estensibilità che è possibile migliorare con l'intelligenza artificiale generativa e il responsabile di tali casi d'uso.


****  

| Caso d’uso | Utente | 
| --- | --- | 
| Integra strumenti di terze parti nell'ambiente di sviluppo | DevOps ingegnere | 
| Crea flussi di lavoro di automazione personalizzati adattati al processo di sviluppo unico del team | DevOps ingegnere | 
| Connect a vari APIs servizi | DevOps ingegnere | 
| Crea connettori per strumenti multipiattaforma | DevOps ingegnere | 