Archivi categoria: analisi

Usare l’intelligenza artificiale nelle attività di analisi

Tutti usiamo gli strumenti di intelligenza artificiale generativa, quella che nel mondo viene siglata come AI (nel Bel Paese, IA).

Siamo portati a usarli in molti modi. Quando facciamo le ricerche con Google. Quando usiamo una delle tante app che ci capita di usare – oggi molte app integrano funzionalità AI, quantomeno per non sembrare obsolete. E, naturalmente, quando usiamo i Chatbot per dialogare con i LLM (Large Language Models).

Nelle attività di analisi dei sistemi i Chatbot sono uno strumento utile. Che, come tutti gli strumenti, può essere usato bene o male, meglio o peggio.

Ma l’AI (i Chatbot, gli LLM) è uno strumento ad alto potenziale, quindi i suoi effetti possono essere molto positivi, oppure no. Va usato sapendolo usare, con maestria. Perché altrimenti può portare fuori strada.

Ci sono infatti alcune caratteristiche dei Chatbot che spingono a usarli sempre di più.

L’utilizzo è molto semplice, anche per i bambini e per chi per incapacità potrebbe usarli a proprio danno. Danno risposte con un linguaggio chiaro e comprensibile. Sono progettati per soddisfarci, per darci ragione, per confermarci nelle nostre opinioni e nei nostri ragionamenti. Queste caratteristiche sono rischiose, sia per gli individui che per la società.

Ma per l’analisi dei sistemi i Chatbot e i LLM sono estremamente utili, se li si usa in modo appropriato. E si può imparare a usarli bene.

Il mio corso “AI per analisti IT – L’intelligenza artificiale generativa al servizio dell’analisi” – https://corsi.analisi-disegno.com/corsi/ai-per-analisti-it/ – è strutturato in due parti.

Nella prima parte del corso vengono presentati e sperimentati i pattern di Prompt Engineering utili per formulare le richieste ai LLM in modo da ottenere risposte adeguate. Sono pattern che possono essere utili in ogni ambito, professionale o no, e che costituiscono la base per ottenere risposte adeguate alle proprie esigenze.

Nella seconda parte viene poi approfondito l’uso degli LLM nelle attività proprie degli analisti IT: la gestione dei requisiti, la definizione dei processi, la specifica delle funzionalità, la modellazione dei dati, la progettazione dei prototipi di interfaccia utente, la definizione dei casi di test funzionali.

Gli agenti AI, le specifiche di analisi e l’organizzazione dello sviluppo

L’uso degli agenti AI per lo sviluppo software porta a un cambiamento profondo nel software engineering. Anche se la dimensione, gli ambiti e gli impatti di questo cambiamento non sono ancora del tutto chiari.

La trasformazione riguarda aspetti sia tecnici che organizzativi, impatta sui ruoli, le competenze richieste alle persone, le metodologie.

I punti aperti sono molti, ed è difficile formulare previsioni sul futuro. Ma alcune domande importanti stanno prendendo corpo, come è emerso dai resoconti dell’incontro su “The Future of Software Engineering” organizzato da Thoughtworks.

Ciò comunque appare chiaro è che le attività di analisi dei sistemi, in particolare la definizione delle specifiche, stanno assumendo un ruolo ancora più essenziale di quello, già importante, che rivestivano nell’ingegneria del software tradizionale.

È il tema centrale del mio corso “AI per analisti IT”: https://corsi.analisi-disegno.com/corsi/ai-per-analisti-it/

Tre interviste interessanti

Tre interviste interessanti:

Kent Beck (ideatore di Extreme Programming, del Test Driven Development e di molte pratiche che caratterizzano i processi agili):

Grady Booch (che ha dato contributi fondamentali all’approccio Object Oriented ed è uno degli autori di UML – Unified Modeling Language):

Martin Fowler (ideatore dei Pattern di analisi e delle tecniche di Refactoring):

Controllo automatico delle specifiche dei requisiti

Comprendere e specificare in modo adeguato i requisiti di un sistema è essenziale. Essenziale per essere sicuri di aver capito nel dettaglio le esigenze di chi vuole il sistema e di chi dovrà usarlo. E per fornire indicazioni precise a chi dovrà implementare i requisiti e verificare (con il testing) che siano stati soddisfatti.

Quindi la formazione degli analisti che devono lavorare sui requisiti è necessaria (https://corsi.analisi-disegno.com/), ma non è sufficiente a garantire che le specifiche dei requisiti prodotte nei progetti siano sempre adegate.

Ma come verificare se le specifiche dei requisiti sono adeguate? Se rispettano i criteri (prive di ambiguità, complete, … – https://analisi-disegno.com/2024/05/27/come-scrivere-i-requisiti-la-guida-di-incose/) che vengono considerati fondamentali per garantire la qualità dei requisiti?

Un articolo su IEEE Computer ripercorre la storia dei tentativi di costruire strumenti automatici per il controllo della qualità dei requisiti:

“Requirements Specification Automated Quality Analysis: Past, Present, and Future“, di Dylan Porter, Joanna F. DeFranco, Phil Laplante.

Come scrivere i requisiti – la Guida di INCOSE

La scrittura dei requisiti è importante per qualunque progetto. È importante perché ogni ambiguità nei requisiti provoca danni per i progetti: aumento dei difetti nei prodotti, aumento dei costi, ritardi nei tempi di realizzazione.

La Guida per la scrittura dei requisiti (“Guide for Writing Requirements”), pubblicata da Incose (International Council on Systems Engineering) nel 2019, fornisce indicazioni utili e concrete per la redazione delle specifiche.

Non è certamente l’unica guida disponibile: sulla scrittura dei requisiti sono stati pubblicati molti libri e centinaia di articoli.

La Guida per la scrittura dei requisiti di Incose ha comunque un paio di punti di forza che la distinguono:

  • È frutto del lavoro ultradecennale del Requirements Working Group di Incose, formato da aziende ed esperti che operano in settori critici dell’ingegneria dei sistemi e del software
  • È conforme allo standard ISO 29148: 2018 (“Systems and software engineering — Life cycle processes — Requirements engineering”)

Una sintesi degli elementi chiave della Guida per la scrittura dei requisiti (che ha avuto un aggiornamento minore nel 2022) è disponibile qui: https://analisi-disegno.com/guida-per-la-scrittura-dei-requisiti/

La versione completa della Guida è disponibile sul sito di INCOSE: https://www.incose.org

Intelligenza artificiale e analisi

L’intelligenza artificiale generativa può fornire un aiuto significativo alle attività di analisi dei sistemi e dei processi.

Ma non ci si può fidare troppo, e bisogna imparare a usarla.

Non ci si può fidare troppo, perché può sbagliare, e a volte sbaglia. Fa tutto rapidamente, ma va controllata. E per controllarla servono analisti competenti sulle tecniche di analisi, che verifichino la correttezza di quello che produce.

E bisogna imparare a usarla. Cioè a guidare le conversazioni in modo appropriato, usando le tecniche di Prompt Engineering (progettazione dei comandi), per evitare di perdere tempo e di non riuscire a capire come si possono ottenere i risultati desiderati.

Ho creato quindi un nuovo corso: Prompt Engineering – usare al meglio l’IA generativa .

Come gli altri miei corsi, anche questo è incentrato su una serie cospicua di esercitazioni, per permettere a chi partecipa di assimilare i concetti teorici con esperienze pratiche guidate.

Prossimamente pubblicherò anche i risultati delle mie esperienze con l’utilizzo dell’intelligenza artificiale generativa per le attività di analisi, in particolare per:

-la definizione dei requisiti

-la specifica di funzionalità

-la modellazione dati

-la verifica della conformità agli standard di diagrammi UML, SysML, BPMN.

Certificazioni per analisti

Esistono diverse certificazioni per analisti, in particolare per i ruoli di Ingegnere dei requisiti (Requirement Engineer) e di Analista business (Business Analyst).

Sono promosse da organizzazioni che propongono servizi di formazione e consulenza mirati appunto alla certificazione di competenze, svolti direttamente o tramite partnership con altri soggetti.

Le certificazioni possono costituire un vantaggio per chi si muove nel mercato del lavoro, come credenziali da fornire alle aziende che le ritengono valide.

Ho pubblicato una pagina con i riferimenti alle organizzazioni che propongono i sistemi di certificazione più diffusi: https://analisi-disegno.com/certificazioni-per-analisti/