Caso di studio · Strumento web

I turni del reparto

Da un foglio di calcolo a uno strumento online condiviso da tutta l'équipe: assenze collegate alle email, sale liberate e sostituzioni, consegna testata, pubblicazione tramite una richiesta di fusione. Il percorso reale, difficoltà comprese.

16passaggi
18difficoltà incontrate
14punti di attenzione
Una quarantina di versioni in poche settimane
Costruire il planning dialogando: conversazione, anteprima della versione, contatori per persona.
Costruire il planning dialogando: conversazione, anteprima della versione, contatori per persona.
Consegnare e pubblicare: circuito in quattro tempi, rapporto di verifica, modifiche prima / dopo.
Consegnare e pubblicare: circuito in quattro tempi, rapporto di verifica, modifiche prima / dopo.

Schermata di uno strumento reale · dati fittizi, nomi sfocati · interfaccia in inglese

1

Idea

Quale problema, in una frase?

  1. Enunciare il problema in una frase

    “I turni vivono in un foglio di calcolo che poche persone sanno modificare; ogni assenza scatena una catena di email e le sale di ecocardiografia restano vuote.” Finché il problema non sta in una frase, non si scrive una riga di codice.

    DifficoltàVoler risolvere tutto in una volta (turni, assenze, accessi ai software, email).

    SoluzioneElencare i bisogni, poi scegliere il primo: turni condivisi che tutta l'équipe vede aggiornati.

    !Cominciare dallo strumento, non dall'automazione: email e sostituzioni vengono dopo.

  2. Decidere che cosa sarà

    Un sistema di turni non è né una skill né un semplice artifact: è uno strumento web autonomo, usato da persone che non hanno Claude. Claude lo costruisce, lo testa e lo consegna; viene pubblicato fuori da Claude.

    !Un artifact di Claude è visibile solo alle persone con cui è condiviso: per un'intera équipe, un sito pubblicato è più robusto.

2

Concetto

Che cosa sarà lo strumento, e che cosa farà?

  1. Scrivere il capitolato prima del codice

    Far redigere a Claude, a partire dal foglio di calcolo esistente: il personale e la sua categoria (medici strutturati, assistenti, giovani medici, specializzandi), le attività, le sedute per mezza giornata, chi modifica che cosa e l'elenco delle questioni aperte.

    Da dire a Claude

    «Ecco il nostro foglio dei turni e l'elenco del personale. Scrivi il capitolato di uno strumento dei turni come un'unica pagina web: turni tipo, una scheda per attività, vista mensile, assenze. Elenca tutto ciò che è ambiguo prima di scrivere qualsiasi codice.»

    DifficoltàAcronimi e colonne comprensibili a una sola persona.

    SoluzioneUn blocco “decisioni prese / in sospeso”: non si costruisce nulla finché le ambiguità non sono risolte.

  2. Abbozzare le schede

    Una scheda Globale per i turni tipo; una scheda per attività (Ecocardiografia per sala e mezza giornata, Ambulatorio, Test da sforzo, RM, Reperibilità, Riunioni di reparto, Facoltà, Schede delle sedute); una scheda Assenze; una vista Mese che mostra tutti.

    !I turni tipo non devono mai essere modificati da un'assegnazione puntuale: le settimane ne derivano.

  3. Scegliere l'architettura tecnica

    Un unico file HTML (nulla da installare), un database condiviso in tempo reale affinché tutti vedano gli stessi dati, una password di équipe e la pubblicazione tramite un repository GitHub collegato a un hosting statico.

    !La password di équipe non viene mai scritta nel file pubblicato né in alcun documento diffuso.

3

Realizzazione

Che cosa chiedere a Claude, e in quale ordine?

  1. Costruire la prima versione

    In Cowork o Claude Code, sul vostro computer: Claude scrive il file, voi lo aprite nel browser, lo correggete con piccole richieste. Ogni consegna porta un numero di versione visibile nel titolo.

    Da dire a Claude

    «Costruisci la versione 1 dei turni a partire dal capitolato convalidato. Un unico file HTML, prima le schede Globale ed Ecocardiografia. Mostra il numero di versione nel titolo della pagina.»

    DifficoltàL'anteprima non si visualizzava, o non era aggiornata, sul computer.

    SoluzioneConsegnare due file distinti: un'anteprima locale che incorpora lo stato del giorno per poterla vedere subito, e il file da pubblicare, senza dati.

  2. Collegare il database condiviso

    Sincronizzazione in tempo reale, trascinamento delle persone negli slot, diritti di modifica protetti dalla password.

    DifficoltàSu alcuni computer comparivano nomi vecchi o “casuali”.

    SoluzioneIl file pubblicato conteneva una copia congelata dei dati di una vecchia esportazione. È stata rimossa e ora un banner rosso segnala ogni computer non collegato.

    DifficoltàLa finestra della password, chiusa con “Più tardi”, non ricompariva più.

    SoluzioneUn banner cliccabile permanente finché il computer non è collegato.

    DifficoltàDue persone modificavano lo stesso slot nello stesso momento: l'una cancellava l'altra.

    SoluzioneLe modifiche vengono fuse per identità (chi è assegnato), non più per posizione nell'elenco.

    !Mai incorporare dati reali nel file pubblicato.

    !Testare su un computer “vergine” (navigazione privata), non solo sul proprio.

  3. Collegare assenze ed email

    Un pulsante genera l'email mensile delle assenze; un altro importa le risposte nel formato “NOME: date” e le applica a tutte le attività. I nomi sconosciuti vengono rifiutati, non indovinati.

    Da dire a Claude

    «Aggiungi alla scheda Assenze un pulsante che genera l'email mensile delle assenze e un'importazione da un'email nel formato “NOME: date” che applica le assenze alle schede delle attività. Rifiuta i nomi sconosciuti.»

    DifficoltàLe assenze inserite in un vecchio formato restavano invisibili.

    SoluzioneElencarle e proporre una conversione, senza modificare nulla senza approvazione.

    DifficoltàLa vista mensile mostrava solo una parte dell'équipe.

    SoluzioneLa vista mensile legge l'elenco completo del personale.

  4. Sale liberate e sostituzioni

    Ogni slot occupato da una persona assente viene segnato “sala liberata?”. Una tabella persone × mezze giornate definisce le sostituzioni; vengono proposte solo le sostituzioni disponibili, e solo per quella settimana.

    DifficoltàUna persona indicata come sostituto non era ancora nell'elenco del personale (in arrivo).

    SoluzioneChiedere conferma prima di aggiungerla; mai indovinare un'identità.

    !Un'assegnazione di sostituzione non tocca mai i turni tipo.

  5. Presenze ricorrenti e migrazioni

    Una presenza può ripetersi nelle settimane pari o dispari, tra una data di inizio e una data di fine. Ogni nuova regola è una migrazione numerata, applicata una sola volta, e solo dopo la prima sincronizzazione riuscita.

    Da dire a Claude

    «Aggiungi le presenze ricorrenti per settimane pari o dispari, con una data di inizio e una data di fine. Applica questa regola con una migrazione numerata, una sola volta, dopo la prima sincronizzazione riuscita. Mostrami l'elenco degli slot modificati prima di convalidare.»

    DifficoltàUna regola applicata al caricamento della pagina girava prima della sincronizzazione, su dati vuoti, e poi veniva sovrascritta o applicata due volte.

    SoluzioneMigrazioni versionate, segnate come eseguite nel database, avviate solo dopo la prima sincronizzazione riuscita.

    DifficoltàOltre la capienza di uno slot, alcuni nomi “sparivano”.

    SoluzioneUna riga “presenti anche” sotto lo slot mostra tutti quelli in eccesso.

    !Una presenza ricorrente si calcola: non si ricopia settimana per settimana.

4

Prova

Come dimostrare che funziona?

  1. Triplo test automatico

    Claude pilota un browser: 1) nessun errore di script, tutti i moduli caricati, con e senza dati; 2) le viste chiave (vista mensile completa, assenze visibili); 3) azioni reali (importazione di un'email, trascinamento, assegnazione di una sostituzione).

    DifficoltàTrascinare una persona su uno slot occupato scambiava le due persone e poteva creare un doppione.

    SoluzioneAzione aggiunta al triplo test per ogni versione; correzione decisa a parte.

    DifficoltàIl test nel browser non vedeva gli errori di logica (fusione, settimane pari o dispari, migrazioni).

    SoluzioneDue serie di test, entrambe superate prima di ogni pubblicazione: una sulla logica dei dati, l'altra sui gesti nel browser.

    !Un test che passa sul vostro computer non dimostra nulla per gli altri: testare con e senza dati.

  2. Doppio controllo di mezze giornate e nomi

    Confrontare i turni tipo con ogni scheda di attività ed elencare le discrepanze (qualcuno previsto in ecocardiografia nei turni tipo ma assente dalla scheda). Verificare nomi e identificativi rispetto alla rubrica. Nulla viene corretto senza approvazione.

    DifficoltàUn identificativo scritto male in una scheda impediva la visualizzazione di una persona.

    SoluzioneControllo sistematico degli identificativi a ogni versione.

    DifficoltàRecapiti introvabili (segreteria, casella dell'attività).

    SoluzioneCercare nella rubrica, poi nell'archivio email; se non si trova nulla, chiedere invece di indovinare.

5

Messa in servizio

Come consegnarlo, pubblicarlo e farlo durare?

  1. Consegnare sempre le stesse quattro cose

    1) l'anteprima locale; 2) le modifiche su un ramo, con una richiesta di fusione pronta da rileggere; 3) la sorgente online archiviata; 4) le email redatte nella conversazione.

    DifficoltàLa procedura di pubblicazione non era chiara.

    SoluzioneRinominare il file in anticipo e descrivere ogni clic, insieme a ciò che si dovrebbe vedere alla fine.

  2. Pubblicare tramite un ramo e una richiesta di fusione

    Claude invia la versione su un ramo e apre una richiesta di fusione (modifiche, risultati delle due serie di test, discrepanze). Il responsabile la rilegge e la fonde personalmente; la messa online segue. Poi: Ctrl + F5, numero di versione nel titolo, e il gesto corretto ripetuto online.

    DifficoltàIl caricamento manuale del file sulla versione online si dimenticava da un mese all'altro e non lasciava alcuna traccia rileggibile.

    SoluzioneNiente più caricamento manuale diretto: un ramo, poi una richiesta di fusione che il responsabile fonde personalmente.

    DifficoltàUna versione annunciata come “online” non funzionava ancora per tutti.

    SoluzioneDistribuito non vuol dire testato: nessun link viene dato senza essere stato aperto; altrimenti porta la dicitura “non verificato”.

    !Pubblicare solo l'ultima versione: ogni versione include le precedenti.

    !Nulla viene pubblicato senza approvazione; le correzioni della sessione sono raggruppate in un'unica versione.

  3. Annunciare e accompagnare

    Una breve email alla segreteria e alla casella dell'attività, gli altri in copia: che cosa cambia, come segnalare un'assenza, che cosa fare quando compare il banner “non collegato”. Redatta nella conversazione, inviata da voi.

    !L'IA prepara le email; non le invia mai.

    !I turni non alimentano mai l'agenda personale: sono due fonti separate.

  4. Trasformarlo in una skill

    Comprimere l'intera discussione in una skill orchestratrice chiamata “turni”: architettura, bug noti, procedura di consegna, triplo test, doppio controllo, collegamento con la rubrica. La conversazione successiva parte da lì, non da zero.

    Da dire a Claude

    «Riassumi l'intera discussione in una skill orchestratrice chiamata “turni”: architettura, bug incontrati e correzioni, procedura di consegna, triplo test, doppio controllo di mezze giornate e nomi, procedura di pubblicazione. Presentala come una proposta da convalidare.»

    !Una skill viene convalidata prima di essere installata; viene rivista a ogni versione principale.

← Il metodo in cinque fasi