Archivi categoria: intelligenza artificiale (AI)

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.

Scrivere con l’aiuto dell’AI? Dipende da cosa si vuole

Scrivere con l’aiuto dell’AI è comodo, veloce, ci permette di non pensare troppo. E questo è il punto.

A volte dobbiamo produrre un documento poco importante. Poco importante in assoluto, o poco importante per noi. In questi casi l’AI è utile.

Altre volte dobbiamo o vogliamo scrivere un testo – anche se minimo, un email, un messaggio – che ci importa, che ci interessa, che vogliamo esprima il nostro pensiero.

Anzi. A volte (spesso) è proprio scrivendo che il nostro pensiero si forma, proprio mentre cerchiamo di trovare le parole per esprimerlo. Addirittura, per molti, è l’atto fisico di scrivere su carta che contribuisce a ragionare, ancora meglio che digitando su una tastiera.

Delegare la scrittura all’AI, se quello che vogliamo scrivere ci interessa, può significare delegare il pensiero, il ragionamento. Verrà fuori un testo pulito – l’AI compone testi corretti nella grammatica e nella sintassi – ma certamente meno personale di quello che avremmo scritto noi.

Un articolo di Mike Elgan su Computerworld mette anche in guardia su qualche rischio aggiuntivo: “How AI is changing your mind“: https://www.computerworld.com/article/4144537/how-ai-is-changing-your-mind.html

Comunque l’AI c’è, e scrivere con l’AI può essere comodo e utile, soprattutto quando dobbiamo produrre un documento poco importante per noi. Ma quando la usiamo conviene usarla bene, e controllare i risultati che ha prodotto prima di pubblicarli come nostri.

È quello che insegno nei miei due corsi sull’AI:

“Prompt Engineering – usare al meglio l’AI generativa”, è rivolto a chiunque la usi, e illustra i pattern più utili per sfruttarla in modo efficace – https://corsi.analisi-disegno.com/corsi/corso-prompt-engineering/

“AI per analisti IT” è invece il corso specifico per l’uso dell’AI da parte di chi sviluppa sistemi software – https://corsi.analisi-disegno.com/corsi/ai-per-analisti-it/

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/

LLM e Software Engineering

Secondo Dario Amodei, CEO di Anthropic (l’azienda di Claude) gli LLM saranno entro pochi mesi in grado di svolgere in autonomia ed efficacemente il grosso delle attività di software engineering. Già oggi, ha affermato in un incontro recente, i progettisti della mia azienda delegano ai modelli quasi tutte le attività di realizzazione.

Ma l’ingegneria del software (e dei sistemi) non è solo realizzazione. Restano centrali la comprensione delle esigenze, l’analisi dei processi organizzativi in cui i sistemi vanno integrati, la definizione dei requisiti del sistema da realizzare, la valutazione sui pro e sui contro delle ipotesi alternative di progettazione.

Tutti temi trattati nel mio corso “AI per analisti IT”: https://corsi.analisi-disegno.com/corsi/ai-per-analisti-it/ , dove vengono spiegate le tecniche per usare il supporto degli LLM nelle attività di analisi e progettazione.

Qui il video dell’incontro a Davos, condotto da The Economist con Dario Amodei e con Demis Hassabis di Google:

Documentare il software con l’intelligenza artificiale?

Con cautela, per ora. Scrivere la documentazione tecnica è faticoso, ma è una competenza utile a tutti coloro che sono coinvolti nello sviluppo software. Almeno per verificare la qualità della documentazione prodotta con l’intelligenza artificiale.

“A volte mi chiedo se dovremmo iniziare tutta la nostra scrittura, compreso il software, a mano invece di usare il computer. Il processo di scrittura a mano incoraggia la riflessione e scoraggia il copia e incolla”.

Phil Laplante: “Use a Pencil: On Writing Software Documentation Well and the Role of Autodocumentation”, IEEE Computer, May 2024

https://www.computer.org/csdl/magazine/co/2024/05/10517734/1WCj99UUwh2

Intelligenza artificiale e Casi d’uso

Nell’articolo Intelligenza artificiale e Casi d’uso riporto alcuni esempi di utilizzo dell’Intelligenza artificiale generativa (nel caso specifico, ChatGPT) per individuare le funzionalità di un sistema e per specificarle in termini di casi d’uso.

L’articolo fa parte di una serie sugli utilizzi dell’IA generativa per le attività di analisi dei sistemi e dei processi, e segue quello già pubblicato sull’uso di ChatGPT per la modellazione dei dati.

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.

Il futuro del software. E il presente.

Il futuro del software, ma già anche il presente, nell’interazione tra esseri umani e intelligenza artificiale.

“Humans and AI are trustworthy collaborators that rapidly evolve systems based on programmer intent”.

Una pubblicazione gratuita del Software Engineering Institute, consiglio di dare un’occhiata almeno all’executive summary:

https://sei.cmu.edu/news-events/news/article.cfm?assetId=741319