Lo sviluppo software mira tipicamente ad allineare le specifiche con l'implementazione.
Per questo motivo, i sistemi vengono progettati per soddisfare le specifiche e quindi implementati basandosi su tali progetti. Successivamente, il testing conferma che l'implementazione rispetti le specifiche; se c'è una discrepanza, l'implementazione viene corretta, e se le specifiche sono ambigue, vengono chiarite.
Questo può essere definito Ingegneria Basata su Specifiche e Implementazione.
Al contrario, quando si discute di software oggi, l'esperienza utente è sempre più enfatizzata.
Inoltre, è il comportamento del software, non la sua semplice implementazione, che plasma effettivamente l'esperienza utente.
Pertanto, al di fuori del framework di specifiche e implementazione, esistono esperienza e comportamento.
Di conseguenza, credo sia utile esplorare il concetto di Ingegneria di Esperienza e Comportamento, che si basa sull'esperienza e sul comportamento.
Liquidware
L'Ingegneria di Esperienza e Comportamento è un approccio impraticabile con i metodi tradizionali di sviluppo software.
Questo perché richiede di migliorare l'esperienza dell'utente senza confini rigidi o divisioni funzionali nelle specifiche. Potrebbero persino esserci casi in cui una richiesta informale dell'utente per un miglioramento dell'esperienza richiederebbe di scartare tutto il software precedentemente sviluppato.
D'altra parte, in un'era in cui l'automazione dello sviluppo software basata su agenti tramite IA generativa è comune, la ricostruzione di interi sistemi software diventa accettabile.
Inoltre, in tale era, è concepibile che entreremo nell'era del Liquidware, dove gli sviluppatori rilasceranno software dotato di un chatbot ingegnere AI, consentendo agli utenti di modificare l'interfaccia utente per adattarla alle proprie preferenze individuali.
Liquidware indica un software più flessibile rispetto al software convenzionale, che si adatta perfettamente a ogni utente.
Con quest'era di sviluppo automatizzato e Liquidware, il paradigma ingegneristico delle specifiche e dell'implementazione diventerà obsoleto.
Passeremo invece al paradigma dell'Ingegneria di Esperienza e Comportamento.
Che cos'è il Comportamento?
In parole semplici, il comportamento è uno stato che cambia nel tempo.
E testare il comportamento non è altro che testare questo stato che varia nel tempo.
Inoltre, testare il comportamento non significa confermare l'allineamento con le specifiche che definiscono come avvengono le transizioni di stato. Piuttosto, il comportamento viene testato in base alla qualità dell'esperienza dell'utente.
Naturalmente, se ci sono bug che causano l'esecuzione di operazioni non intenzionali da parte dell'utente o dello sviluppatore, ciò compromette significativamente l'esperienza dell'utente. Pertanto, il test del comportamento include anche la verifica della conformità funzionale e della validità.
Quindi, dopo aver soddisfatto questi requisiti funzionali di base, il comportamento viene testato per la sua alta qualità dal punto di vista dell'esperienza utente.
L'Esperienza Definitiva
Per gli esseri umani, l'esperienza utente definitiva è il controllo del proprio corpo quando si è in buona salute.
Pensateci: ogni giorno, controlliamo un corpo che pesa decine di chilogrammi — un sistema complesso pieno di limitazioni e vincoli — per svolgere attività mirate.
Se dovessimo provare a controllare un sistema così pesante, complesso e fortemente vincolato per eseguire le attività desiderate, l'esperienza sarebbe tipicamente piuttosto scarsa.
Eppure, finché non stiamo male, muoviamo questo corpo pesante, complesso e vincolato con la stessa facilità come se non avesse peso. Lo operiamo senza esitazione, come se fosse un meccanismo molto semplice, e quasi non notiamo le sue limitazioni o vincoli, come se non esistessero.
Questa è l'esperienza definitiva.
Perseguendo un comportamento di alta qualità, è possibile fornire un'esperienza pari a quella del controllo del proprio corpo.
In altre parole, anche se un sistema è lento nell'elaborazione, complesso nelle funzionalità e soggetto a molte limitazioni e vincoli, potrebbe diventare Liquidware completamente privo di stress.
Conclusione
Il Liquidware definitivo offrirà un'esperienza simile a quella del nostro stesso corpo.
Tale Liquidware diventerà, per noi, come una parte del nostro sé fisico.
Ogni volta che il Liquidware definitivo aumenterà di numero o le sue capacità saranno migliorate, sembrerà che i nostri corpi si stiano espandendo.