Skip to main content

«Ma sei sicuro di usare i componenti dello Storybook? Quelli erano tutti giusti.»

Me l’hanno chiesto lunedì pomeriggio, mentre guardavamo un riquadro nero comparso attorno a una riga che nel design system non ha nessun bordo. La domanda sembrava ingenua. Era la chiave di tutta la giornata.

Sì, erano gli stessi componenti. Identici, presi dallo stesso pacchetto. Il punto è che Storybook li guarda in condizioni che nessuno dei miei utenti ha: carica i font per conto suo, e porta un reset CSS che azzera i bordi dei bottoni. Chi installa il pacchetto quel reset non ce l’ha. Il browser ci mette il suo bordo nero di default, e a schermo compare un riquadro che il design non ha mai avuto.

Il difetto esisteva da settimane. Lo strumento con cui lo controllavo era esattamente quello che me lo nascondeva.

La stessa giornata, due ore dopo

Nel pomeriggio ho pubblicato il pacchetto e l’ho dato in pasto a un generatore che non conosce il progetto, per vedere cosa ne tirava fuori. Il prototipo girava. Poi un’occhiata veloce: «quella cosa lì non è full width». Una linea dentro una card che si fermava a metà, un’icona che non arrivava al bordo.

Ho misurato. La card seguiva la colonna: 439 pixel, giusti. La riga dentro la card era ferma a 369, inchiodata ai 328 che ha il master in Figma. Perché non era mai saltato fuori prima? Perché tutte le mie prove giravano in un telaio da 360, dove la misura del master e quella della colonna coincidono al pixel. Il generatore usa un telefono più largo. Ha allargato il contenitore, e il difetto è uscito allo scoperto da solo.

In quel design system ci sono 380 componenti con una larghezza fissa presa dal master. Nessun test li vede: il codice compila, le asserzioni passano, gli screenshot di regressione sono verdi. Perché il difetto non riguarda cosa fa il codice. Riguarda dove sta guardando chi lo controlla.

Quando la misura cambia la diagnosi

La sera, su un altro progetto, ho visto la stessa dinamica da un’angolazione diversa. Su una piattaforma di vicinato che sto portando avanti avevo appena acceso un registro dei passi: una tabella minuscola che segna solo il nome del gradino in cui si trova chi prova a iscriversi. Zero session replay, zero registrazioni, per una ragione che mi sembra ovvia: un replay lì filmerebbe le facce e gli indirizzi dei vicini di chi lo usa, e loro non hanno acconsentito a niente.

Due ore dopo, quel registro mi ha detto una cosa che non avrei mai trovato leggendo il codice: cinque iscritti su otto avevano le coordinate a null. Per un perimetro basato sulla distanza, quelle cinque persone non esistevano. Non vedevano nessuno e nessuno vedeva loro. Il prodotto sembrava funzionare benissimo, visto dal mio account, che le coordinate ce le aveva.

Una riga che geocodifica l’indirizzo un istante prima di chiudere l’iscrizione, e le quattro già dentro rattoppate a mano. Adesso si vedono, cinque vicini a testa.

Cosa mi porto via

Passiamo un sacco di tempo a costruire strumenti di verifica, e pochissimo a chiederci cosa quegli strumenti rendono strutturalmente invisibile. Storybook è un ambiente addomesticato. Un telaio a 360 è una scelta che si porta dietro una coincidenza numerica. Il mio account è un utente privilegiato che non rappresenta nessuno.

La regola che mi sono scritto per i prossimi mesi è corta: la prova vale solo se le condizioni della prova sono peggiori di quelle reali. Il telaio si forza più largo. Il pacchetto si installa da un tarball dentro un’app nuda. La policy di sicurezza si prova col token di un altro. E ogni guardia automatica che scrivo deve fallire almeno una volta sotto i miei occhi, altrimenti non ho scritto una guardia: ho scritto una rassicurazione. Quel controllo sui bordi dei bottoni è nato verde su un difetto vero, perché cercavo la parola “border” e stavo trovando “border-radius”.

Poi c’è la parte che mi è rimasta addosso di più. Nei momenti in cui gli strumenti mi stavano rassicurando, la verità è arrivata da tre punti fuori dal mio controllo: una macchina che non conosceva il progetto, il video di una persona che provava a iscriversi, e un contatore acceso da due ore. In tutti e tre i casi si tratta di qualcuno che guarda da un posto dove io non potevo stare.

Tu quand’è l’ultima volta che hai controllato il tuo lavoro da una posizione che non avevi scelto tu?

Ciao ciao!

Trasparenza

Questo articolo nasce dal mio lavoro di quei due giorni ed è stato scritto con il supporto di strumenti di intelligenza artificiale, sotto la mia revisione: fatti, numeri e misure riportati qui vengono dal lavoro reale e li ho verificati personalmente prima della pubblicazione. Lo stesso vale per buona parte di questo sito, dove uso l’AI come strumento di lavoro quotidiano — e mi sembra corretto dirlo, invece di lasciarlo intuire.

Caleidoscopio

Ogni nuovo articolo, appena esce. Niente altro.

Informativa privacy

Caleidoscopio

Un articolo alla volta su AI applicata al design e ai prodotti digitali. Quello che provo davvero, con i numeri veri.

Leggi l'informativa privacy.

Ti arriva una mail di conferma. Ti cancelli con un click, in fondo a ogni email.

Pasquini Damiano

Damiano Pasquini, AI Practitioner & Product Engineer. Vengo dal product design enterprise; oggi costruisco workflow e agenti AI e li porto in produzione dentro le aziende. Quando un'attivita si ripete, ne ricavo uno strumento riusabile.

Leave a Reply