Software gestione turni: costi, regole e soglia
Matteo Migliore

Matteo Migliore è un imprenditore e architetto software con oltre 27 anni di esperienza nello sviluppo di soluzioni basate su .NET e nell'evoluzione di architetture applicative per imprese e organizzazioni di alto profilo.

Ha guidato progetti enterprise, formato centinaia di sviluppatori e aiutato aziende di ogni dimensione a semplificare la complessità trasformando il software in guadagni per il business.

La coordinatrice di una casa di riposo in provincia di Brescia, centoventi posti letto e novantasei dipendenti, pubblica il turno del mese il venerdì pomeriggio. Il lunedì mattina quel turno non esiste più: due operatrici hanno chiesto il cambio, una si è messa in malattia, un'altra ha un corso obbligatorio che nessuno aveva guardato, e la notte di sabato è scoperta. Alle nove del lunedì la coordinatrice è al telefono, e il telefono resterà il suo strumento di pianificazione per il resto del mese. Se stai cercando un software gestione turni, in questo articolo trovi il modo di capire se ti serve davvero, e quanto ti restituirà, con un numero invece che con una sensazione.

Trovi il conto vero di quanto ti costa oggi il turno fatto con il foglio di calcolo e il telefono, il numero unico che ti dice se un software di pianificazione dei turni ti ripaga o ti darà solo un cartellone più bello, le regole che il turno deve rispettare davvero fra legge, contratto e accreditamento, perché fare i turni è un problema difficile e che cosa fa un risolutore che un foglio di calcolo non potrà mai fare, l'equità come vincolo che non sta in nessuna legge e fa andare via le persone, le fasce di prezzo reali fra il modulo del gestionale paghe, un prodotto dedicato e un sistema su misura, e la soglia oltre cui la matematica cambia.

Scrivo software dal 1999 e con i turni ho un rapporto vecchio: il primo motore di pianificazione l'ho scritto per una società di vigilanza privata all'inizio degli anni Duemila, quando le disponibilità arrivavano via fax. Da allora ho visto la stessa scena in case di riposo, supermercati, aziende alimentari a ciclo continuo, servizi di pulizia e pronto intervento. Cambia il vocabolario, non il problema: qualcuno costruisce una griglia con grande fatica, la griglia sopravvive due giorni, e da quel momento in avanti il turno lo riscrive il caso, una telefonata alla volta.

La cosa che ho imparato, e che spiega perché tante aziende comprano un bel cartellone digitale e dopo un anno continuano a pagare straordinari che non servivano, è questa: il numero che decide non è quante persone hai in turno, è quanta parte delle ore che avevi pianificato viene riscritta dopo che il turno è stato pubblicato. Un turno che regge è un turno che puoi difendere: le persone sanno quando lavorano, chi copre le assenze è deciso da una regola e non da chi risponde al telefono, e le ore in più le paghi quando servono davvero. Un turno che si riscrive è una trattativa quotidiana, e ogni trattativa costa una maggiorazione, una telefonata e un po' di fiducia.

Che cos'è un software gestione turni, e che cosa non è

Un software gestione turni è il sistema che decide chi lavora quando, prima che il lavoro avvenga. Tiene tre cose che oggi vivono in tre posti diversi: il fabbisogno, cioè quante persone e con quali competenze servono in ogni fascia oraria di ogni giorno; i vincoli, cioè che cosa la legge, il contratto e l'accreditamento ti impediscono di chiedere a una persona; e le disponibilità, cioè ferie, permessi, corsi, part-time, indisponibilità approvate e preferenze. Da queste tre cose costruisce una proposta di turno, la pubblica, e da lì in avanti tiene traccia di ogni scostamento fra quello che avevi pianificato e quello che è successo.

Se una di queste tre manca non hai un software gestione turni, hai una griglia colorata. Ed è la ragione per cui moltissimi progetti si fermano a metà: si compra lo strumento che disegna la griglia, e le tre informazioni che servono per riempirla restano dove stavano, cioè nella testa della coordinatrice.

Turni, presenze e paghe: tre sistemi diversi che tutti chiamano gestionale

Qui la confusione costa soldi veri, perché si finisce a comprare lo strumento di un altro problema. La pianificazione dei turni guarda avanti: decide chi lavorerà domani e fra tre settimane. La rilevazione delle presenze guarda indietro: registra chi ha timbrato e quando, e trasforma le timbrature in ore da pagare. L'elaborazione delle paghe prende quelle ore e le trasforma in una busta. Sono tre sistemi, con tre finalità e spesso tre fornitori, e il loro confine è il punto in cui si perdono i soldi.

Se il tuo problema è che non sai quante ore ha fatto davvero una persona, o che le timbrature arrivano a fine mese su un foglio, non ti serve un software di turni: ne ho scritto per esteso in software rilevazione presenze, ed è un altro progetto con un altro ritorno. Se invece sai perfettamente quante ore sono state fatte e il problema è che sono state fatte dalle persone sbagliate, nei momenti sbagliati e con le maggiorazioni sbagliate, allora il problema è la pianificazione, ed è di questo che parla il resto dell'articolo.

La domanda che uso per capire da che parte sta un'azienda è una sola: quando arriva la chiusura del mese, le sorprese sono sulle ore totali o su come sono distribuite? Se il totale torna ma lo straordinario è concentrato su sette persone su settanta, il problema è il turno. Se non torna nemmeno il totale, il problema sta prima e va risolto prima.

Il cartellone, i controlli e il motore: quello che distingue i prodotti

Sul mercato, sotto la stessa etichetta, trovi tre generazioni di strumenti. Il cartellone digitale è un foglio di calcolo con i colori, la condivisione e il telefonino: mostra il turno, permette di cambiarlo, avvisa le persone. È un passo avanti enorme rispetto al foglio stampato appeso in bacheca, e per molte aziende piccole basta. Il cartellone con i controlli aggiunge le regole: quando assegni una persona a una notte dopo un pomeriggio ti dice che stai violando le undici ore di riposo, e conta le ore settimanali mentre scrivi. Il motore di pianificazione fa un lavoro diverso: gli dai il fabbisogno e i vincoli, e ti propone lui il turno, dicendoti quali preferenze ha dovuto sacrificare per farlo stare in piedi.

La differenza di prezzo fra la prima e la terza generazione, sorprendentemente, non è enorme. La differenza di risultato sì, e dipende da una cosa sola: chi fa il lavoro difficile. Nel cartellone lo fa ancora la coordinatrice, e il software le dice soltanto quando ha sbagliato. Nel motore lo fa il software, e la coordinatrice decide quale delle proposte le convince di più. In una struttura con settanta persone in turno è la differenza fra un giorno e mezzo alla settimana e due ore.

Il conto vero: quanto ti costa oggi il turno fatto con il foglio di calcolo

Le cinque voci che costano ogni anno a una casa di riposo con 78 persone in turno pianificate con un foglio di calcolo e il telefono, dal sovrapprezzo del lavoro somministrato chiamato all'ultimo al turnover che nasce dal turno

Prendo la struttura di riferimento, quella della coordinatrice che passa il lunedì al telefono, e la tengo per tutto l'articolo così i numeri restano confrontabili. Centoventi posti letto, novantasei dipendenti di cui settantotto in turno: cinquantadue operatori socio sanitari, tredici infermieri, cinque fra fisioterapisti ed educatori, otto fra cucina e lavanderia. Ricavi intorno ai quattro milioni e novecentomila euro l'anno fra rette e quota sanitaria, costo del lavoro di tre milioni e trecentocinquantamila, cioè il sessantotto per cento, utile operativo intorno ai duecentoventimila euro. Centoventicinquemila ore pianificate l'anno, un foglio di calcolo, un gruppo su una chat e la memoria di due persone.

Con la direttrice e la coordinatrice abbiamo misurato cinque voci, una per una, sugli ultimi dodici mesi, incrociando il turno pubblicato, le timbrature e il costo del lavoro. Te le racconto nell'ordine in cui pesavano, con il modo in cui le abbiamo misurate, perché il valore del conto sta nel metodo più che nel totale: i tuoi numeri saranno diversi, il metodo no.

Il sovrapprezzo del lavoro somministrato chiamato all'ultimo

La struttura aveva usato seimilaquattrocento ore di lavoro somministrato nell'anno, quasi tutte di operatori socio sanitari. Il costo orario dell'agenzia era in media di ventisei euro e ottanta contro i diciannove e quaranta del personale proprio con pari inquadramento: sette euro e quaranta di differenza per ogni ora, cioè quarantasettemila euro l'anno di sovrapprezzo.

Una parte di quel ricorso all'agenzia è fisiologica e va difesa: con una pianta organica tirata, il lavoro somministrato è l'assicurazione che ti permette di aprire il turno anche quando tre persone stanno male insieme. Ma quando siamo andati a vedere che cosa coprivano quelle ore, tremilanovecento su seimilaquattrocento, il sessantuno per cento, coprivano assenze note da almeno tre giorni: ferie approvate settimane prima, corsi obbligatori con la data fissata a inizio anno, visite di sorveglianza sanitaria programmate, congedi comunicati per tempo. Non erano emergenze: erano buchi che il turno non aveva mai assorbito, perché quando il turno è stato scritto quelle informazioni stavano in un'altra cartella.

Lo straordinario che nasce dal buco prevedibile

Nello stesso anno il personale proprio aveva fatto novemiladuecento ore di straordinario. Anche qui abbiamo separato: quante nascono da un evento improvviso e quante da un'assenza che si sapeva. Quattromilacento ore, il quarantacinque per cento, erano la seconda cosa.

Il costo di quelle ore non è tutto perduto, perché il lavoro andava fatto comunque. Perduta è la differenza: un'ora di straordinario, con la maggiorazione contrattuale e con il fatto che quasi sempre cade di notte o di festivo perché sono quelle le fasce scoperte, costava in media cinque euro e sessanta in più della stessa ora fatta in orario ordinario da qualcuno che aveva capienza nel proprio monte ore. Quattromilacento ore per cinque euro e sessanta fanno ventitremila euro l'anno. A questo si aggiunge un effetto che non abbiamo contato perché difficile da misurare con onestà, ma che c'è: lo straordinario chiamato all'ultimo si concentra su chi risponde al telefono, e chi risponde al telefono a un certo punto smette di rispondere.

Le ore del coordinamento spese a fare e a rifare il turno

La coordinatrice dedicava circa un giorno e mezzo a settimana al turno: la costruzione del mese, le modifiche dopo la pubblicazione, le telefonate per le sostituzioni, i conteggi a mano delle ore e dei riposi. La caposala le dava una mano per un'altra mezza giornata, e la direttrice entrava nei casi difficili. Sommate, erano circa zero virgola cinquantacinque persone equivalenti su figure di coordinamento: ventiquattromila euro l'anno.

È la voce che le direzioni sottovalutano sempre, e per un motivo comprensibile: quelle persone sono già lì e sono già pagate. Ma il tempo del coordinamento è l'unica risorsa che in una struttura assistenziale non si compra facilmente, e spenderla a fare incastri è la scelta peggiore possibile, perché è esattamente il tempo che manca per stare con il personale, con le famiglie e con la qualità del servizio.

Il turnover che nasce dal turno

Nell'anno erano uscite quattordici persone su settantotto in turno, il diciotto per cento. Nei colloqui di uscita, cinque avevano indicato come motivo principale o secondario il modo in cui venivano distribuiti i turni: i weekend sempre alle stesse, i cambi comunicati con un giorno di preavviso, le richieste di permesso approvate a chi chiedeva per primo invece che a chi aveva dato di più.

Il costo di una sostituzione l'abbiamo calcolato in modo prudente: annuncio e selezione, le pratiche di assunzione e soprattutto le tre settimane di affiancamento in cui la persona nuova lavora in coppia con una esperta. Circa cinquemiladuecento euro per ogni sostituzione. Cinque uscite attribuibili al turno fanno ventiseimila euro l'anno, e questo senza contare che in una casa di riposo il turnover si paga anche in qualità dell'assistenza, che è la ragione per cui le famiglie scelgono te invece della struttura a dieci chilometri.

Gli errori che arrivano in busta paga e i riposi che saltano

L'ultima voce è la meno visibile e la più fastidiosa. Ogni mese il passaggio dal turno effettivo alle paghe produceva correzioni: maggiorazioni notturne attribuite male, cambi turno concordati a voce e mai registrati, ore di formazione contate come servizio. Circa duecentoquaranta ore l'anno fra coordinamento, amministrazione del personale e consulente, più le correzioni sulla busta del mese successivo, che sono la cosa che fa perdere fiducia più in fretta di qualsiasi altra.

Nello stesso controllo abbiamo trovato sessantuno casi nell'anno in cui fra la fine di un servizio e l'inizio del successivo erano passate meno di undici ore. Nessuno li aveva voluti: erano il risultato di cambi concordati fra colleghe direttamente sulla chat, senza che nessuno contasse le ore. Il costo diretto di quei casi è zero finché non arriva un controllo o un contenzioso; il costo atteso non lo è, e nel conto l'abbiamo messo insieme al tempo delle correzioni per un totale di diciannovemila euro.

Il totale misurato è di centotrentanovemila euro l'anno. Su un utile operativo di duecentoventimila euro è il sessantatré per cento. E la cosa da notare non è la cifra, è la struttura: quattro voci su cinque nascono dallo stesso fatto, cioè che il turno pubblicato e il turno lavorato sono due cose diverse. È per questo che il numero che decide è quello del paragrafo che segue, e non il numero di persone che hai in organico.

La quota di ore riscritte dopo la pubblicazione: il numero che decide

Le quattro soglie della quota di ore di turno che cambiano dopo la pubblicazione, con quello che ciascuna soglia dice sul ritorno di un software di gestione dei turni

La definizione è semplice. Prendi il turno come l'hai pubblicato, con nome, data e fascia oraria di ogni servizio. Prendi il turno come è stato lavorato davvero, che ti arriva dalle timbrature. Confronta riga per riga: un servizio è cambiato se lo fa una persona diversa, se cambia fascia oraria, se sparisce o se ne compare uno che non c'era. La quota di ore riscritte è il totale delle ore coinvolte in un cambiamento diviso il totale delle ore pianificate, nello stesso periodo.

Si misura sulle ore e non sul numero di cambi per una ragione pratica: uno scambio fra due colleghe che si accordano sullo stesso servizio è mezz'ora di lavoro amministrativo, una notte scoperta coperta con una chiamata è otto ore che costano il doppio. Nella struttura di riferimento la quota era del quattordici per cento: diciassettemilacinquecento ore l'anno decise dopo che il turno era stato pubblicato, cioè decise al telefono.

Le soglie che uso sono quattro. Sotto il cinque per cento la pianificazione regge: un software nuovo ti darà comodità, visibilità e continuità quando la persona che fa i turni va in ferie, non molto margine. Fra il cinque e il dodici il problema è il processo: le disponibilità arrivano tardi, le regole per decidere chi copre non sono scritte, il fabbisogno non è dichiarato in modo esplicito, e poche decisioni organizzative valgono quanto un software. Oltre il dodici il turno lo riscrive il caso, e ogni ora riscritta costa più di una pianificata. E poi c'è il caso più comune, il mai misurato, che quasi sempre sta nella terza fascia e quasi sempre sorprende la direzione.

Come si misura in due settimane, senza comprare niente

La misura si fa con quello che hai già. Servono due cose: il turno come era stato pubblicato e le ore come sono state lavorate. Il secondo dato ce l'hai di sicuro, perché è quello che mandi alle paghe. Il primo è quello che quasi nessuno conserva, e qui sta il primo passo vero del progetto: salvare una copia del turno al momento della pubblicazione, congelata, che non venga più toccata. In un foglio di calcolo è un duplicato del foglio con la data nel nome. È un gesto da trenta secondi al mese che ti permette di misurare tutto il resto.

Se hai già due o tre mesi di turni pubblicati archiviati da qualche parte, la misura è una query. Questa è quella che uso quando i dati stanno in una tabella, e funziona uguale se li metti in un database o in un foglio importato.

-- Quota di ore riscritte dopo la pubblicazione del turno, per reparto e per causa.
-- Pianificato = il turno congelato al momento della pubblicazione, mai più toccato.
-- Lavorato = quello che risulta dalle timbrature, già abbinato al servizio.
WITH Confronto AS (
    SELECT
        p.Reparto,
        p.Giorno,
        p.Ore                                   AS OrePianificate,
        CASE
            WHEN l.ServizioId IS NULL           THEN 'servizio annullato'
            WHEN l.PersonaId <> p.PersonaId  THEN 'persona diversa'
            WHEN l.Fascia    <> p.Fascia     THEN 'fascia diversa'
            WHEN ABS(l.Ore - p.Ore) > 0.25      THEN 'durata diversa'
            ELSE 'invariato'
        END                                     AS Esito
    FROM TurnoPubblicato AS p
    LEFT JOIN TurnoLavorato AS l
           ON l.ServizioId = p.ServizioId
    WHERE p.Giorno >= @Dal AND p.Giorno < @Al
)
SELECT
    Reparto,
    SUM(OrePianificate)                                                   AS OrePianificate,
    SUM(CASE WHEN Esito <> 'invariato' THEN OrePianificate ELSE 0 END) AS OreRiscritte,
    CAST(100.0 * SUM(CASE WHEN Esito <> 'invariato' THEN OrePianificate ELSE 0 END)
              / NULLIF(SUM(OrePianificate), 0) AS decimal(5,1))           AS QuotaRiscritte
FROM Confronto
GROUP BY Reparto
ORDER BY QuotaRiscritte DESC;

Due avvertenze sul risultato, che valgono più della query. La prima: guarda il dato per reparto e per fascia oraria prima di guardare il totale, perché quasi sempre il quattordici per cento medio nasconde un reparto al ventitré e uno al tre, e il progetto si fa dove sta il ventitré. Nella struttura di riferimento il nucleo con più ospiti non autosufficienti stava al ventitré per cento, la cucina al tre. La seconda: separa i cambi voluti dai cambi subiti. Uno scambio fra due colleghe che hanno trovato un accordo è quasi sempre un bene e va reso facile, non impedito; quello che devi ridurre è la copertura decisa dal coordinamento sotto pressione.

Il secondo numero, quello che dice dove intervenire

Accanto alla quota di ore riscritte ne uso un altro, che costa poco e spiega molto: la quota di ore riscritte per un'assenza nota da più di settantadue ore. È la parte del problema che non ha niente a che fare con le emergenze, ed è la parte che un software ti restituisce quasi per intero, perché si tratta solo di far entrare nel turno un'informazione che l'azienda possedeva già. Nella struttura di riferimento era il sessantuno per cento delle ore di somministrazione e il quarantacinque per cento delle ore di straordinario: due terzi del problema erano di memoria, non di imprevisto.

Quando porto questi due numeri in una direzione, la reazione più frequente è una domanda difensiva e legittima: ma se avessimo saputo per tempo, che cosa avremmo fatto di diverso? La risposta è quasi sempre concreta. Con tre settimane di anticipo hai tre strade che con tre ore non hai: spostare un servizio di un'ora e coprire il buco con chi c'è già, chiedere a chi ha un debito di ore invece che a chi è più accomodante, oppure chiamare l'agenzia con una settimana di preavviso, che costa meno e ti manda una persona che era già stata da te.

Le regole che il turno deve rispettare: legge, contratto e accreditamento

Le regole che un turno deve rispettare divise per fonte, dalla legge sull'orario di lavoro al contratto collettivo agli standard di accreditamento, con chi le verifica oggi nella maggior parte delle aziende

Qui sta la ragione per cui il turno non è un problema di calendario ma di vincoli. Le regole arrivano da tre fonti diverse, si sommano, e nessuna delle tre è scritta nel posto in cui si fa il turno.

Quello che dice la legge sull'orario di lavoro

Il testo di riferimento è il decreto legislativo 66 del 2003, e le regole che toccano la pianificazione sono poche e precise. Il riposo giornaliero: almeno undici ore consecutive ogni ventiquattro. È quella che salta per prima quando si fa un cambio sulla chat, perché un pomeriggio che finisce alle ventuno e una mattina che comincia alle sette lasciano dieci ore. Il riposo settimanale: almeno ventiquattro ore consecutive ogni sette giorni, di regola in coincidenza con la domenica, da cumulare con le undici del riposo giornaliero, e calcolato come media su un periodo non superiore a quattordici giorni. La durata media settimanale: non più di quarantotto ore in media, straordinario compreso, su un periodo di riferimento di quattro mesi che i contratti collettivi possono allungare. La pausa: almeno dieci minuti quando l'orario giornaliero supera le sei ore.

Sul lavoro notturno le regole sono ancora più specifiche, e nelle strutture che lavorano sulle ventiquattr'ore contano molto. È periodo notturno un intervallo di almeno sette ore consecutive che comprenda la fascia fra mezzanotte e le cinque. È lavoratore notturno chi lavora almeno tre ore in quella fascia in via non occasionale, oppure chi svolge lavoro notturno per almeno ottanta giorni l'anno, salvo diversa previsione del contratto collettivo. Per chi rientra in quella definizione l'orario non può superare le otto ore in media nelle ventiquattro ed è dovuta la sorveglianza sanitaria periodica. E ci sono le esclusioni personali: la lavoratrice in gravidanza non può essere adibita al lavoro notturno, e non sono obbligati a farlo, fra gli altri, il genitore di un figlio di età inferiore a tre anni e chi abbia a carico una persona disabile.

Le violazioni di queste regole sono sanzionate in via amministrativa, con importi calcolati per lavoratore e per periodo di riferimento che crescono a scaglioni con il numero di persone coinvolte. Il punto però non è la sanzione, che è rara: è che queste regole sono i vincoli del problema. Un turno che le viola non è un turno aggressivo, è un turno sbagliato, e prima o poi lo paghi in un altro modo.

Quello che aggiunge il contratto collettivo

Il contratto aggiunge lo strato che cambia da settore a settore, ed è quello che nessun prodotto conosce quando lo installi. La distribuzione multiperiodale dell'orario e i limiti dei cicli. Il preavviso con cui il turno va comunicato, che in diversi contratti è espresso in giorni e in alcuni casi in settimane. Le maggiorazioni per notturno, festivo e domenicale e il modo in cui si cumulano, che è la parte che fa la differenza in busta. Il trattamento del cambio turno richiesto dall'azienda con poco preavviso.

E per i part-time, le clausole elastiche e flessibili: la variazione della collocazione temporale della prestazione richiede un patto scritto, un preavviso minimo di due giorni lavorativi e una maggiorazione specifica. È la regola che nelle strutture assistenziali viene violata più spesso senza che nessuno se ne accorga, perché la chiamata a chi è part-time sembra un favore chiesto fra colleghe e invece è una variazione della prestazione.

Quello che chiede l'accreditamento, e che vale più di tutto il resto

Nelle strutture sanitarie e sociosanitarie c'è una terza fonte, e nella pratica è quella che comanda: lo standard di assistenza richiesto dall'accreditamento regionale. In Lombardia, per le residenze sanitarie assistenziali, lo standard di riferimento è espresso in minuti settimanali di assistenza per ospite, novecentouno, con una quota che deve essere garantita da personale infermieristico. Gli standard cambiano da regione a regione e vanno letti sulla propria normativa, ma il meccanismo è lo stesso ovunque: il turno non deve solo rispettare i diritti di chi lavora, deve anche dimostrare che in ogni fascia oraria c'era la quantità e il tipo di personale che ti sei impegnato a garantire.

Questo cambia la natura del problema, e lo dico perché è il punto che le direzioni capiscono subito e i fornitori spesso no: il turno non è solo un documento organizzativo, è la prova di un impegno. Se in una notte c'era un infermiere ogni due nuclei quando ne serviva uno per nucleo, quella non è una svista di pianificazione, è un requisito non rispettato. Un software che non sa calcolare i minuti di assistenza per ospite a partire dal turno non ti sta aiutando dove ti serve di più, ed è la prima domanda da fare a chi ti fa una dimostrazione, prima ancora del prezzo.

Perché fare i turni è difficile davvero, e che cosa fa un risolutore

I vincoli rigidi e i vincoli morbidi di un turno, con quello che il risolutore non può violare e quello che sacrifica pagando un peso, e le tre proposte che deve produrre

C'è una convinzione diffusa, e dannosa, secondo cui fare i turni è un lavoro noioso ma semplice, rimasto a mano solo perché nessuno si è mai preso la briga di automatizzarlo. Non è così: è un problema genuinamente difficile, studiato da decenni con il nome di problema di costruzione dei turni del personale, e appartiene alla famiglia dei problemi per cui non esiste un metodo che trovi la soluzione migliore in tempi ragionevoli al crescere della taglia. Con settantotto persone, trenta giorni e quattro tipi di servizio, il numero di combinazioni possibili è un numero con centinaia di cifre. Nessuno le esplora tutte, né una persona né un computer.

La conseguenza pratica è che chi fa i turni a mano non sta facendo un lavoro stupido: sta applicando un'euristica ragionevole, cioè parte dalla griglia del mese scorso, la adatta e sistema i guasti. Il problema non è la sua intelligenza, è che ogni adattamento propaga effetti che nessuna testa può tenere insieme. Sposti una persona dalla notte di giovedì e hai appena rotto il riposo settimanale di due settimane dopo.

Vincoli rigidi e vincoli morbidi: la distinzione che fa funzionare tutto

La struttura del problema è sempre la stessa ed è semplice da spiegare a una direzione. Ci sono i vincoli rigidi, che non si possono violare mai: le undici ore di riposo, il riposo settimanale, il tetto delle ore, le indisponibilità approvate, le competenze obbligatorie per un certo servizio, la copertura minima di ogni fascia. Una soluzione che ne viola anche uno solo non è una soluzione peggiore: non è proprio una soluzione. Ci sono poi i vincoli morbidi, che si possono violare pagando un prezzo: la preferenza di chi non vuole la notte del giovedì, l'equilibrio dei weekend, la continuità della stessa operatrice sullo stesso nucleo, la rotazione regolare fra mattina, pomeriggio e notte, il desiderio di non cambiare fascia due volte in tre giorni.

Un risolutore fa esattamente questo: cerca una soluzione che rispetti tutti i vincoli rigidi e che minimizzi la somma dei pesi dei vincoli morbidi violati. E la cosa più preziosa che ti dà non è il turno: è la frase che accompagna il turno, cioè quale preferenza ha dovuto sacrificare e perché. È la differenza fra una coordinatrice che deve difendere una scelta personale e una che può dire che quel weekend è toccato a te perché negli ultimi due mesi ne avevi fatti uno in meno della media del nucleo.

Il codice: i vincoli rigidi si verificano prima di discutere

Prima ancora di costruire il turno serve una funzione che dica se un turno è valido, perché quella funzione ti serve in tre momenti: quando il motore propone, quando la coordinatrice modifica a mano e quando due colleghe si scambiano un servizio sul telefonino. Questo è il nucleo che uso, ridotto ai tre vincoli che saltano più spesso.

// I tre vincoli che saltano per primi quando si cambia un turno a mano:
// riposo giornaliero di 11 ore, riposo settimanale su 14 giorni, media di 48 ore.
var violazioni = Vincoli.Verifica(servizi, dal: new DateOnly(2026, 10, 1), giorni: 31);

public record Servizio(int PersonaId, DateTime Inizio, DateTime Fine)
{
    public double Ore => (Fine - Inizio).TotalHours;
}

public record Violazione(int PersonaId, DateOnly Giorno, string Regola, string Dettaglio);

public static class Vincoli
{
    public static IReadOnlyList<Violazione> Verifica(
        IEnumerable<Servizio> servizi, DateOnly dal, int giorni)
    {
        var esito = new List<Violazione>();

        foreach (var persona in servizi.GroupBy(s => s.PersonaId))
        {
            var ordinati = persona.OrderBy(s => s.Inizio).ToList();

            // 1. Riposo giornaliero: almeno 11 ore fra la fine di un servizio e l'inizio del successivo.
            for (var i = 1; i < ordinati.Count; i++)
            {
                var pausa = (ordinati[i].Inizio - ordinati[i - 1].Fine).TotalHours;
                if (pausa < 11)
                    esito.Add(new Violazione(persona.Key,
                        DateOnly.FromDateTime(ordinati[i].Inizio), "riposo giornaliero",
                        $"{pausa:0.0} ore fra un servizio e il successivo"));
            }

            // 2. Riposo settimanale: 24 ore consecutive più le 11 del riposo giornaliero,
            //    calcolato come media su 14 giorni: in ogni finestra servono due riposi lunghi.
            for (var g = 0; g + 14 <= giorni; g++)
            {
                var inizio = dal.AddDays(g).ToDateTime(TimeOnly.MinValue);
                var fine = inizio.AddDays(14);
                var dentro = ordinati.Where(s => s.Inizio >= inizio && s.Inizio < fine).ToList();

                var riposiLunghi = 0;
                for (var i = 1; i < dentro.Count; i++)
                    if ((dentro[i].Inizio - dentro[i - 1].Fine).TotalHours >= 35)
                        riposiLunghi++;

                if (dentro.Count > 0 && riposiLunghi < 2)
                    esito.Add(new Violazione(persona.Key, DateOnly.FromDateTime(inizio),
                        "riposo settimanale",
                        $"{riposiLunghi} riposi di almeno 35 ore in 14 giorni, ne servono 2"));
            }

            // 3. Durata media settimanale, straordinario compreso, sul periodo di riferimento.
            var settimane = giorni / 7.0;
            var media = ordinati.Sum(s => s.Ore) / settimane;
            if (media > 48)
                esito.Add(new Violazione(persona.Key, dal, "durata media settimanale",
                    $"{media:0.0} ore settimanali di media sul periodo"));
        }

        return esito;
    }
}

Tre avvertenze su questo codice, che nella realtà contano più delle righe. La prima: il riposo settimanale va verificato a cavallo del mese, quindi la finestra deve pescare anche gli ultimi giorni del mese precedente, altrimenti ogni primo del mese è un buco cieco. La seconda: il periodo di riferimento per la media delle quarantotto ore lo fissa il contratto collettivo, quindi va in configurazione e non nel codice. La terza, la più importante: questa funzione deve girare prima che il cambio venga accettato, non nel controllo di fine mese. Un controllo che ti dice a posteriori che hai violato un riposo non vale niente, perché quel riposo è già saltato e la persona ha già lavorato.

Il motore: che cosa serve davvero per farlo funzionare

Costruire il turno, non solo verificarlo, è il passo successivo, e la buona notizia è che gli strumenti per farlo sono gratuiti e maturi. Un risolutore a vincoli come quelli disponibili in libreria libera risolve un mese di settanta persone in pochi minuti su un computer normale. Il modello è più semplice di quanto sembri: una variabile di tipo vero o falso per ogni combinazione di persona, giorno e tipo di servizio, i vincoli rigidi come equazioni e i morbidi come penalità da minimizzare.

// Modello a vincoli con un risolutore libero: chi lavora, quando e su quale servizio.
// x[p, g, t] = vero se la persona p il giorno g fa il servizio di tipo t.
var modello = new CpModel();
var x = new BoolVar[persone.Count, giorni, tipi.Count];

for (var p = 0; p < persone.Count; p++)
    for (var g = 0; g < giorni; g++)
        for (var t = 0; t < tipi.Count; t++)
            x[p, g, t] = modello.NewBoolVar($"x_{p}_{g}_{t}");

// Vincolo rigido 1: ogni giorno una persona fa al massimo un servizio.
for (var p = 0; p < persone.Count; p++)
    for (var g = 0; g < giorni; g++)
        modello.AddAtMostOne(Enumerable.Range(0, tipi.Count).Select(t => x[p, g, t]));

// Vincolo rigido 2: la copertura minima di ogni fascia va garantita.
for (var g = 0; g < giorni; g++)
    for (var t = 0; t < tipi.Count; t++)
        modello.Add(LinearExpr.Sum(Enumerable.Range(0, persone.Count)
            .Select(p => x[p, g, t])) >= copertura[g, t]);

// Vincolo rigido 3: dopo una notte, il giorno dopo non si lavora (le 11 ore di riposo).
for (var p = 0; p < persone.Count; p++)
    for (var g = 0; g < giorni - 1; g++)
        for (var t = 0; t < tipi.Count; t++)
            modello.AddImplication(x[p, g, notte], x[p, g + 1, t].Not());

// Vincolo morbido: ogni weekend in più rispetto alla media del nucleo costa.
var penalita = new List<IntVar>();
for (var p = 0; p < persone.Count; p++)
{
    var eccesso = modello.NewIntVar(0, giorni, $"eccesso_{p}");
    modello.Add(eccesso >= LinearExpr.Sum(weekend.SelectMany(g =>
        Enumerable.Range(0, tipi.Count).Select(t => x[p, g, t]))) - weekendMedi);
    penalita.Add(eccesso);
}

modello.Minimize(LinearExpr.Sum(penalita));

var risolutore = new CpSolver { StringParameters = "max_time_in_seconds:120" };
var stato = risolutore.Solve(modello);

Il punto che voglio far passare non è il codice, è quello che il codice rende possibile: il motore non deve produrre il turno, deve produrre tre turni. Uno che privilegia l'equità dei weekend, uno che privilegia la continuità sullo stesso nucleo, uno che minimizza il costo. La coordinatrice guarda i tre, vede che cosa ciascuno costa in preferenze sacrificate, e sceglie. È il modo in cui questi sistemi vengono accettati invece che sabotati, perché la decisione resta a chi ha la responsabilità del reparto e cambia solo il modo in cui ci si arriva.

Il vero lavoro, e anche il vero costo di un progetto del genere, non sta nel risolutore. Sta nelle tre cose che il risolutore pretende e che quasi nessuna azienda ha scritte: la matrice delle competenze, cioè chi può fare che cosa davvero e non sulla carta; il fabbisogno dichiarato per fascia, che spesso non è mai stato messo nero su bianco e viene fuori diverso a seconda di chi lo racconta; e le indisponibilità raccolte per tempo e in un posto solo. Quando in un progetto mi chiedono di accelerare, è sempre lì che si taglia, ed è sempre lì che il progetto poi si ferma.

L'equità: il vincolo che non sta in nessuna legge e fa andare via le persone

La distribuzione dei weekend lavorati fra le operatrici di una casa di riposo prima del conteggio dell'equità, con la differenza fra chi ne faceva di più e chi di meno a parità di contratto

Se dovessi indicare la singola cosa che fa la differenza fra un progetto di pianificazione accettato e uno rifiutato, non sarebbe nessuna delle regole di legge. Sarebbe questa: il sistema deve saper rispondere alla domanda "perché a me?". E per rispondere deve contare.

Nella struttura di riferimento abbiamo contato, sui dodici mesi precedenti, quanti weekend e quante notti aveva fatto ciascuna delle cinquantadue operatrici. La media dei weekend era di ventuno all'anno. La distribuzione andava da tredici a trentadue: stessa mansione, stesso contratto, e diciannove giorni festivi lavorati in più in un anno fra la persona più protetta e quella più esposta. Nessuno lo aveva deciso. Era il risultato di un anno di telefonate in cui si chiama chi si sa che risponde di sì.

Questo dato, mostrato alla direzione, ha fatto più del conto economico, perché spiegava in un colpo solo tre cose che sembravano separate: perché cinque persone se n'erano andate, perché le richieste di permesso erano diventate un braccio di ferro, e perché alcune erano sempre in malattia nei fine settimana. Quando l'equità non è misurata, il sistema si autoregola in un modo prevedibile: chi ha imparato a dire di no viene chiamato meno, e chi dice di sì paga per tutti finché non se ne va.

Come si misura l'equità senza aprire una guerra

L'equità non è dare a tutti lo stesso numero di notti, perché i contratti sono diversi, i part-time sono diversi e c'è chi le notti le chiede. È tenere un saldo per persona, riproporzionato alle ore di contratto, su quattro grandezze soltanto: weekend lavorati, notti, festivi comandati e cambi accettati con meno di quarantotto ore di preavviso. Quel saldo si mostra a tutti, si azzera all'inizio di ogni anno e diventa il criterio con cui il sistema decide a chi chiedere per primo quando manca qualcuno.

La quarta grandezza è quella che di solito nessuno conta ed è la più importante: chi ha salvato un turno rispondendo al telefono di domenica sera ha fatto un favore all'azienda, e quel favore deve valere qualcosa di concreto, cioè una priorità sulle richieste future. Nel momento in cui questo diventa un numero visibile invece che una gratitudine generica, la disponibilità a farsi chiamare aumenta e il ricorso all'agenzia scende. Nella struttura di riferimento è successo nei primi quattro mesi, prima ancora che il motore di pianificazione fosse in funzione: bastava che il criterio esistesse e fosse pubblico.

La pubblicazione e il preavviso: la parte che vale più del motore

C'è un'altra cosa che conta quanto l'equità e costa ancora meno: pubblicare prima. Le persone organizzano la propria vita sul turno, e il valore di saperlo con quattro settimane di anticipo invece che con una è enorme anche a parità di turni assegnati. È una delle poche cose che in un'azienda si possono migliorare senza spendere niente, e ha un effetto immediato sul clima.

La regola che consiglio si scrive in una riga di regolamento: il turno si pubblica con almeno quattro settimane di anticipo e dopo la pubblicazione non si tocca, salvo assenze improvvise; le assenze improvvise si coprono con una regola nota e non con una telefonata discrezionale. Tutto quello che è noto prima della pubblicazione, cioè ferie, corsi, visite e congedi, entra nel turno prima che il turno esista, il che significa che le ferie vanno chiuse con un anticipo maggiore. È il cambiamento organizzativo più antipatico di tutto il progetto ed è quello che restituisce di più, perché colpisce esattamente quel sessantuno per cento di ore di agenzia che nella struttura di riferimento copriva assenze già note.

Quanto costa un software gestione turni: modulo, prodotto dedicato o su misura

Costo cumulato su cinque anni di un prodotto dedicato alla gestione dei turni e di un sistema su misura al crescere delle persone in turno, con il punto in cui le due linee si incrociano

Le strade sono tre, più una quarta che in questo caso è quella che consiglio quasi sempre. Ti do le fasce di prezzo che vedo sul mercato italiano oggi, per una struttura della taglia di quella di riferimento.

La prima è il modulo turni del gestionale delle presenze o delle paghe che hai già. Molti sistemi di rilevazione presenze hanno una funzione di pianificazione, a volte inclusa nel canone, più spesso fra i mille e i quattromila euro l'anno. Fa bene una cosa: il cartellone si collega alle timbrature e alle paghe senza nessun ponte da costruire, e questo vale più di quanto sembri. Di solito non conosce i vincoli oltre ai più elementari, non propone niente e non sa niente di equità e di standard di assistenza. Se oggi usi un foglio di calcolo, è la prima cosa da provare, e a volte l'hai già pagata.

La seconda è un prodotto dedicato alla pianificazione del personale, in abbonamento. Il prezzo si fa quasi sempre a persona: fra i due euro e mezzo e i sei euro al mese per dipendente, cioè fra i tremila e i settemila euro l'anno per una struttura con novantasei dipendenti, più un avviamento fra i cinquemila e i quindicimila euro che è quasi tutto configurazione delle regole e caricamento delle anagrafiche. I prodotti buoni gestiscono bene disponibilità, scambi, controlli sui riposi e applicazione per i telefonini. Il limite tipico è doppio: le regole del tuo contratto collettivo e del tuo accreditamento entrano solo fin dove il prodotto le prevede, e il collegamento con presenze e paghe è spesso un'esportazione periodica invece che un dato condiviso.

La terza è un sistema su misura. Parte da quarantamila euro per il motore dei vincoli, la raccolta delle disponibilità, la pubblicazione con lo storico congelato e il conteggio dell'equità, e arriva a novantacinquemila con l'integrazione nei due sensi verso presenze e paghe, il calcolo dei minuti di assistenza per ospite e l'applicazione per il personale. A questo va aggiunto il quindici o venti per cento l'anno di manutenzione.

La soglia: circa trecentocinquanta persone in turno

Qui il conto porta a una conclusione che non fa comodo a chi vende software su misura, e la scrivo lo stesso perché è quello che dicono i numeri. Il prodotto costa in proporzione alle persone, il su misura quasi no. Sul costo cumulato di cinque anni, con un avviamento di novemila euro per il prodotto e un costo di costruzione di sessantamila più la manutenzione per il su misura, le due linee si incrociano intorno alle trecentocinquanta persone in turno. Con le settantotto della struttura di riferimento il prodotto costa circa trentamila euro in cinque anni contro i centocinquemila del su misura: non c'è partita, e chi ti propone di costruire da zero un motore di turni per settanta persone ti sta facendo un cattivo servizio.

Sopra le trecentocinquanta persone il conto si ribalta, e sopra le mille il su misura costa la metà. Ma anche lì non è il numero da solo a decidere. La soglia si abbassa parecchio quando i vincoli che contano non sono quelli standard: rapporti minimi di personale per ospite o per turno fissati da un accreditamento regionale, competenze certificate che scadono e fanno decadere l'idoneità a un servizio, cicli di turno definiti da un accordo aziendale con regole che nessun prodotto ha mai visto, squadre che si spostano fra più sedi con tempi di trasferimento da rispettare. Se la parte che vale del tuo problema è fuori dal prodotto, finisci a pagare un canone per il cartellone e a tenere in un foglio di calcolo esattamente la parte difficile, che è il modo più caro di non risolvere un problema.

La quarta strada, quella che consiglio quasi sempre

La strada che consiglio nella grande maggioranza dei casi sotto le trecento persone è mista: il prodotto per il cartellone, gli scambi e l'applicazione, un pezzo su misura per le regole che il prodotto non conosce. In pratica si tengono nel prodotto la pubblicazione, le disponibilità e la comunicazione al personale, e si costruisce a parte il pezzo che calcola: i vincoli specifici, i minuti di assistenza per fascia, il saldo di equità, il confronto fra turno pubblicato e turno lavorato. Costa fra i dodicimila e i trentamila euro, si collega al prodotto attraverso le sue interfacce, e lascia al mercato la parte che il mercato fa già bene. Le ragioni per cui questa via ibrida funziona quasi sempre meglio delle due pure le trovi nella pagina sul software gestionale su misura.

Nella struttura di riferimento è andata così: prodotto dedicato a quattromilaottocento euro l'anno più settemila di avviamento, e un pezzo su misura da diciottomila euro per il motore dei vincoli, il calcolo dello standard di assistenza e il ponte verso le presenze. Ventinovemila euro il primo anno contro centotrentanovemila di costo misurato. Nel primo anno la quota di ore riscritte è scesa dal quattordici al sette per cento, e le voci che si sono mosse per prime sono state le due prevedibili: l'agenzia chiamata in urgenza e lo straordinario nato da un'assenza nota.

Le cinque domande da fare prima di firmare

Qualunque strada tu scelga, ci sono cinque domande che separano un software gestione turni da un cartellone con i colori. La prima: verifica i vincoli mentre assegno, bloccando il salvataggio, o mi fa un controllo dopo? La seconda: conserva il turno pubblicato in una copia congelata, così posso misurare quanto cambia? La terza: sa calcolare la copertura per fascia nel modo in cui la chiede il mio accreditamento, e non solo il numero di persone? La quarta: tiene un saldo di equità per persona, riproporzionato alle ore di contratto, e lo mostra anche a chi lavora? La quinta, che vale più delle altre quattro: accetta di caricare il mio mese peggiore dell'anno scorso, con le assenze vere e i vincoli veri, e di provare a ricostruirlo prima che io firmi? Se ti propone un turno valido in due ore hai il prodotto giusto; se ti risponde che quel caso si gestisce a mano, hai un cartellone.

Da dove si comincia: il primo rilascio in novanta giorni

Il primo rilascio non deve essere completo, deve essere utile a qualcuno entro tre mesi. Questo è l'ordine che uso, e nota che i primi due passi non richiedono nessun software e valgono già una parte consistente del ritorno.

Prima e seconda settimana: congela e misura. Da subito, ogni volta che il turno viene pubblicato se ne salva una copia che nessuno tocca più. Poi si prendono gli ultimi tre mesi di turni e di timbrature e si calcola la quota di ore riscritte per reparto, insieme alla quota riscritta per assenze note da più di settantadue ore. Alla fine delle due settimane devi avere due numeri e il reparto su cui lavorare. Nella struttura di riferimento, già in questa fase, è emerso che un nucleo su quattro assorbiva metà del problema.

Dalla terza alla sesta settimana: le tre tabelle che mancano sempre. La matrice delle competenze, cioè chi può fare che cosa, con le certificazioni e le loro scadenze. Il fabbisogno dichiarato per fascia oraria e per giorno tipo, discusso e approvato dalla direzione, che è una conversazione difficile e va fatta adesso. Le indisponibilità raccolte in un posto solo, con un termine chiaro. Nello stesso momento si scrive una regola sola, che vale più di tutto il software: nessuna assenza programmata e nessun cambio turno esistono se non passano dal sistema.

Dalla settima alla decima settimana: i controlli e la pubblicazione. I vincoli rigidi verificati nel momento in cui si assegna e nel momento in cui due persone si scambiano un servizio, con il blocco e non con l'avviso. La pubblicazione a quattro settimane, con la notifica a ciascuno del proprio turno. Il saldo di equità visibile. È qui che il personale comincia a vedere un vantaggio, e il consenso del personale decide se il progetto sopravvive al terzo mese.

Dall'undicesima alla tredicesima settimana: la proposta automatica. Solo adesso il motore che costruisce il turno, con le tre proposte da confrontare. Arriva per ultimo di proposito: se arriva per primo lavora su competenze sbagliate, fabbisogni immaginari e disponibilità incomplete, propone turni assurdi, e la coordinatrice smette di fidarsene dopo due giorni. Ed è, nella mia esperienza, la ragione numero uno per cui i progetti di pianificazione automatica falliscono: non il risolutore, i dati che gli dai in pasto.

Un ultimo consiglio su che cosa non fare per primo. Il cruscotto con i grafici delle ore per reparto è la parte che si vede in tutte le dimostrazioni ed è quella che serve di meno all'inizio. Un elenco settimanale di dieci righe che dice quali servizi delle prossime tre settimane sono scoperti e chi ha il saldo di equità più basso vale più di qualunque grafico, perché qualcuno lo legge e fa una cosa.

Se il numero dice che non è il tuo problema

Può succedere, e vale la pena dirlo perché quasi nessuno lo dice. Se la tua quota di ore riscritte è sotto il cinque per cento, se il turno si pubblica con un mese di anticipo e le sostituzioni sono rare, un software gestione turni non ti restituirà molto margine: ti darà comodità, la possibilità di fare il turno anche quando la persona che lo sa fare è in ferie, e una comunicazione più ordinata con il personale. Sono cose che valgono, e in un'azienda con i turni la continuità vale più di quanto sembri, perché quasi sempre esiste una persona sola che sa davvero come si incastra tutto. Ma valgono il prezzo di un abbonamento, non di un progetto su misura.

In quel caso il collo di bottiglia è quasi sempre altrove, ed è uno di questi tre. Il dato delle ore: il turno regge ma non sai con precisione che cosa è stato lavorato, e allora il tema è quello descritto in software rilevazione presenze, che viene prima di qualunque pianificazione. Il margine per commessa o per servizio: sai chi lavora e quando, ma non sai quali attività ti fanno guadagnare, e allora il tema è quello del software gestione commesse o, se la domanda è a livello di azienda, del software controllo di gestione. Oppure il lavoro sul campo: le persone non stanno in una sede ma girano, e il problema non è chi lavora quando ma come sono organizzati gli interventi, ed è quello di cui parlo in software gestione assistenza tecnica.

E c'è un caso in cui il software non è la risposta nemmeno quando i numeri sono brutti: quando l'organico è semplicemente insufficiente. Se il fabbisogno dichiarato richiede ottanta persone e ne hai settanta, nessun risolutore troverà una soluzione, perché la soluzione non esiste: il sistema ti dirà con precisione che cosa manca e dove, e sarà un'informazione preziosa da portare a un consiglio di amministrazione o a un ente accreditante, ma non coprirà il turno. Ho visto strutture comprare un software di pianificazione sperando che risolvesse un problema di organico e restare deluse per una ragione matematica. Il che, tra parentesi, è già un ottimo motivo per misurare, perché un fabbisogno scoperto che diventa un numero è una discussione che si può finalmente fare con i dati invece che con le impressioni.

Se sei arrivato fin qui, probabilmente hai in mente l'ultimo mese in cui il turno è saltato. Prima di guardare qualunque dimostrazione, congela la prossima pubblicazione e confrontala con quello che succederà davvero: sono trenta secondi al mese e due settimane di analisi, non costano niente, e ti dicono se stai comprando margine oppure ordine. Da lì in poi le decisioni sono molto più semplici, e le prendi tu invece di lasciarle prendere al telefono della domenica sera.

Domande frequenti

Dipende dalla strada. Il modulo di pianificazione del gestionale delle presenze o delle paghe che hai già costa fra zero e quattromila euro l'anno ed è collegato alle timbrature senza ponti da costruire, ma di solito conosce solo i vincoli più elementari e non propone niente. Un prodotto dedicato in abbonamento si paga a persona, fra i due euro e mezzo e i sei al mese, cioè fra i tremila e i settemila euro l'anno per una struttura con novantasei dipendenti, più un avviamento fra i cinquemila e i quindicimila euro che è quasi tutto configurazione delle regole. Un sistema su misura parte da quarantamila euro per il motore dei vincoli, la raccolta delle disponibilità, la pubblicazione con lo storico congelato e il conteggio dell'equità, e arriva a novantacinquemila con l'integrazione verso presenze e paghe e il calcolo dei minuti di assistenza, più il quindici o venti per cento l'anno di manutenzione.

Si calcola la quota di ore riscritte dopo la pubblicazione: su cento ore di turno pubblicate, quante vengono cambiate prima di essere lavorate, perché le fa una persona diversa, cambiano fascia oraria, spariscono o compaiono. Serve una cosa sola che quasi nessuno fa: salvare una copia congelata del turno nel momento in cui lo pubblichi, che poi non si tocca più. Il confronto con le timbrature è una query. Sotto il cinque per cento la pianificazione regge, fra il cinque e il dodici il problema è il processo, oltre il dodici il turno lo riscrive il caso. Accanto a quello va misurato il secondo numero, cioè quante di quelle ore nascono da assenze note da più di settantadue ore: è la parte che un software ti restituisce quasi per intero.

Le regole arrivano da tre fonti che si sommano. La legge sull'orario di lavoro, il decreto legislativo 66 del 2003, impone almeno undici ore di riposo consecutive ogni ventiquattro, un riposo settimanale di almeno ventiquattro ore da cumulare con le undici e calcolato come media su quattordici giorni, una durata media settimanale non superiore a quarantotto ore straordinario compreso su un periodo di quattro mesi, una pausa di almeno dieci minuti oltre le sei ore, e per il lavoratore notturno un limite di otto ore in media nelle ventiquattro con sorveglianza sanitaria. Il contratto collettivo aggiunge il preavviso di comunicazione del turno, le maggiorazioni e le regole del part-time con clausole elastiche. Nelle strutture accreditate c'è la terza fonte, cioè lo standard di assistenza regionale, che in Lombardia per le residenze sanitarie assistenziali è espresso in minuti settimanali per ospite.

Sì, ed è un problema studiato da decenni: si modella come un problema a vincoli, con una variabile per ogni combinazione di persona, giorno e tipo di servizio, i vincoli rigidi come equazioni e le preferenze come penalità da minimizzare. Un risolutore libero risolve un mese di settanta persone in pochi minuti su un computer normale. La cosa da capire è che il motore non deve produrre il turno ma tre turni, uno che privilegia l'equità, uno la continuità e uno il costo, dicendo quale preferenza ha sacrificato: è così che la coordinatrice lo accetta invece di aggirarlo. E il costo vero del progetto non è il risolutore, sono le tre tabelle che quasi nessuna azienda ha scritte, cioè la matrice delle competenze, il fabbisogno dichiarato per fascia e le indisponibilità raccolte per tempo in un posto solo.

Sotto le trecentocinquanta persone in turno quasi sempre il prodotto, e lo dico sapendo che non fa comodo a chi vende software su misura. Il prodotto costa in proporzione alle persone, il su misura quasi no, e sul costo cumulato di cinque anni le due linee si incrociano intorno a quella soglia: con settantotto persone il prodotto costa circa trentamila euro in cinque anni contro centocinquemila. La soglia però si abbassa parecchio quando i vincoli che contano sono fuori dal prodotto, per esempio rapporti minimi di personale fissati da un accreditamento, competenze certificate che scadono o cicli definiti da un accordo aziendale. La strada che consiglio quasi sempre è mista: il prodotto per il cartellone, gli scambi e l'applicazione, e un pezzo su misura da dodici a trentamila euro per le regole, l'equità e il confronto fra turno pubblicato e turno lavorato.

La pianificazione dei turni guarda avanti e decide chi lavorerà domani e fra tre settimane; la rilevazione delle presenze guarda indietro e registra chi ha timbrato, per trasformare le ore in busta paga. Sono due sistemi diversi, spesso di due fornitori diversi, e il confine fra i due è il punto in cui si perdono i soldi. La domanda per capire quale ti serve è una sola: quando arriva la chiusura del mese, le sorprese sono sulle ore totali o su come sono distribuite? Se il totale non torna, il problema sono le presenze e va risolto prima. Se il totale torna ma lo straordinario è concentrato su sette persone su settanta, il problema è il turno.

Lascia i tuoi dati nel form qui sotto

Matteo Migliore

Matteo Migliore è un imprenditore e architetto software con oltre 27 anni di esperienza nello sviluppo di soluzioni basate su .NET e nell'evoluzione di architetture applicative per imprese e organizzazioni di alto profilo.

Nel corso della sua carriera ha collaborato con realtà come Cotonella, Il Sole 24 Ore, FIAT e NATO, guidando team nello sviluppo di piattaforme scalabili e modernizzando ecosistemi legacy complessi.

Ha formato centinaia di sviluppatori e affiancato aziende di ogni dimensione nel trasformare il software in un vantaggio competitivo, riducendo il debito tecnico e portando risultati concreti in tempi misurabili.

Stai leggendo perché vuoi smettere di rattoppare software fragile.Scopri il metodo per progettare sistemi che reggono nel tempo.