
Dev-IadicolaOgni magazzino vive di una domanda che si ripete dalla mattina alla sera: cosa è entrato, cosa è uscito, e dove si trova adesso? In quest'articolo vi porterò un esempio di un software.
Ogni magazzino vive di una domanda che si ripete dalla mattina alla sera: cosa è entrato, cosa è uscito, e dove si trova adesso? Sembra una cosa semplice, ma chiunque ci abbia lavorato sa che la realtà è fatta di terminali condivisi, operatori che si alternano, merce che esce prima di essere registrata, fornitori da rincorrere e inventari che non tornano mai del tutto.
Ho progettato questo gestionale partendo proprio da lì: non da un elenco astratto di funzioni, ma dai problemi concreti di chi il magazzino lo vive ogni giorno. Quasi ogni scelta dell'applicazione nasce da una frustrazione reale del lavoro quotidiano — e la cosa interessante è come è stata risolta. In questo articolo faccio un giro completo dell'applicazione, area per area, spiegando lungo il percorso perché funziona così.
L'applicazione è divisa in due mondi pensati per due modi di lavorare completamente diversi.
Il primo è il terminale dell'operatore: la postazione dove si scansiona, si carica, si scarica, svolgono resi e si conta. Deve essere veloce, a prova di errore, utilizzabile anche da chi non ha alcuna dimestichezza con i computer e magari ha i guanti addosso. Funziona benissimo su un tablet o uno smartphone.
Il secondo è il cruscotto del supervisore: la cabina di regia dove si tiene tutto sotto controllo, si analizzano i dati, si gestiscono le anagrafiche e si prendono le decisioni. Qui contano la visione d'insieme e il controllo, non la velocità di scansione.
La stessa applicazione, quindi, mostra cose diverse a persone diverse — e già questa è una scelta di progetto importante: ognuno vede solo ciò che gli serve davvero.
Per permettere la funzionalità ovunque ti trovi, senza spostarsi e dover andare da una zona per poter effettuare le operazioni.
In un magazzino il computer (o il tablet) è uno solo e lo usano in tanti, a turno. Chiedere a ogni operatore di fare logout e login con email e password ogni volta che si avvicina alla postazione è una di quelle cose che, sulla carta, funziona — e nella pratica nessuno fa. Il risultato classico: lavorano tutti con lo stesso utente, e diventa impossibile sapere chi ha fatto cosa.
Qui la logica è diversa. Il terminale resta acceso alla prima autenticazione con email e password. Ma ogni operazione richiede un PIN personale di 4 cifre: l'operatore lo digita, fa il suo movimento, e quel movimento resta legato al suo nome per sempre. Il PIN "scade" dopo pochi minuti di inattività, così il sistema lo richiede di nuovo e non rischia mai di attribuire un'operazione alla persona sbagliata.
È un doppio orologio pensato apposta: uno lento, che tiene il dispositivo pronto all'uso senza costringere a riloggarsi di continuo; uno veloce, che garantisce la tracciabilità reale di ogni singolo gesto. Per chi entra e esce dalla postazione decine di volte al giorno cambia completamente l'esperienza, e per chi deve controllare cambia l'affidabilità dei dati.
Se un operatore passa lo smartphone a un altro operatore, per identificarsi deve digitare il PIN nella schermata.
Il design permette di effettuare lo scambio di utenti in modo veloce. Ogni utente ha un PIN personale che non deve condividere con nessun operatore.
Quando arriva merce, l'operatore apre la schermata di carico, scansiona il codice a barre dell'articolo con laser o camera (o lo cerca per codice), inserisce le quantità e, se serve, il numero del documento di trasporto e il fornitore.
L'utente clicca Conferma, e la giacenza si aggiorna all'istante.
Ogni carico non è solo un "più uno" sul totale: genera un movimento registrato che conserva chi l'ha fatto, quando, quanto, da quale fornitore e con quale documento. Niente si perde, e tutto è ricostruibile, tutto rintracciabile e monitorato.
Quando la merce esce, può uscire per due motivi molto diversi: o viene venduta a un cliente, oppure viene consumata internamente dalla produzione. Sono due cose che vanno registrate in modo diverso, e di solito si chiede all'operatore di sceglierle da un menù. Ogni scelta manuale è un'occasione per sbagliare.
Così ho pensato a questo approccio:
Qui l'app lo capisce da sola, in base a chi sta lavorando. Un operatore "normale" scarica sempre verso un cliente; un operatore della produzione scarica sempre verso la produzione. Chi usa il sistema non deve decidere nulla: fa il suo lavoro e la classificazione corretta arriva in automatico. Il supervisore, che ha la visione completa, resta l'unico che può scegliere manualmente quando il caso lo richiede.
Meno scelte da fare significa meno errori — e numeri di fine mese che tornano. E se lo scarico supera la merce disponibile, il sistema lo segnala con un avviso, senza però bloccare il lavoro (più avanti spiego perché).
La merce non viaggia mai in una sola direzione. A volte un cliente restituisce qualcosa, a volte siamo noi a rispedire merce a un fornitore. La schermata dei resi gestisce entrambi i casi tenendoli ben distinti: il reso da cliente fa rientrare la merce in magazzino, il reso verso fornitore la fa uscire. Anche qui ogni movimento resta tracciato con il suo motivo, così l'inventario riflette sempre la situazione reale e non un'approssimazione.
Cercare un prodotto è l'azione più frequente in assoluto. Per questo la ricerca funziona sia per codice (incluso il codice a barre) sia per descrizione, ed è una ricerca testuale vera, che trova anche con parole parziali. Restituisce subito ciò che serve davvero a chi è in magazzino: dove si trova l'articolo, quanti pezzi sono disponibili e qual è il fornitore. Niente filtri complicati: si scrive e si trova. Da lì si apre la scheda di dettaglio dell'articolo con tutte le informazioni.
Capita spessissimo: arriva un bancale, l'operatore scansiona il codice e… quell'articolo non esiste ancora a sistema. La reazione naturale sarebbe mettere tutto in pausa, chiamare il responsabile, far creare la scheda — e nel frattempo la merce resta lì e il lavoro si ferma.
Con questo gestionale, se la funzione è abilitata, l'operatore può creare l'articolo sul momento, direttamente dalla schermata di carico, con un piccolo modulo veloce. L'articolo nasce subito ed è immediatamente disponibile per essere caricato. La merce entra, il lavoro non si ferma, e il supervisore completerà con calma i dettagli più tardi. È il supervisore stesso a decidere se concedere o meno questa possibilità, tramite un'impostazione.
Premessa: ogni articolo ha un codice EAN, pertanto scansionando il codice tramite fotocamera o tramite la pistola, è possibile riconoscere subito l'articolo. Questa funzionalità, infatti, permette di inserire articoli nuovi, mai arrivati in magazzino, per poter svolgere il lavoro con precisione e non avere duplicati, il software non permettere di inserire articoli con codice EAN duplicati.
Il momento dell'inventario fisico è quello in cui i conti dovrebbero finalmente tornare — ed è proprio quello in cui, spesso senza volerlo, si bara di più. Se l'operatore vede a schermo "a sistema risultano 100 pezzi", è umano che, contandone 98, finisca per scrivere 100 "tanto è quello giusto".
Qui durante la conta l'operatore non vede mai la quantità attesa: inserisce soltanto ciò che conta davvero, scansionando gli articoli uno a uno. Se prova a contare due volte lo stesso articolo nella stessa sessione, il sistema lo avvisa in modo chiaro. Il confronto con i dati di sistema avviene dopo, e solo dal lato del supervisore.
È una conta più onesta, perché elimina alla radice la tentazione di "aggiustare" il numero.
Aprendo il cruscotto, il supervisore trova subito una dashboard con gli indicatori che contano: quanti articoli sono gestiti, quanti sono sotto la soglia minima e rischiano di esaurirsi, quanti movimenti ci sono stati nella giornata, quanti avvisi sono aperti. È la fotografia immediata dello stato di salute del magazzino, prima ancora di entrare nel dettaglio.
Il cuore dei dati è l'anagrafica articoli, dove il supervisore gestisce tutto:
Qui si trovano anche le informazioni riservate, come prezzo di costo e prezzo di vendita, che gli operatori non vedono.
Dall'anagrafica è anche possibile generare e stampare le etichette con il codice a barre, così ogni articolo può essere scansionato in fase di carico, scarico e inventario. Un dettaglio pratico che chiude il cerchio tra dato digitale e merce fisica.
La vista giacenze mostra tutte le scorte in un colpo d'occhio, con la possibilità di filtrare ed evidenziare gli articoli sotto soglia. È il "quanto ho" di tutto il magazzino.
La vista movimenti è invece il "cosa è successo": il registro completo e filtrabile di ogni carico, scarico, reso e rettifica, con data, operatore e articolo. È qui che, in caso di dubbio, si ricostruisce la storia esatta di un prodotto — chi lo ha toccato, quando e perché. È la memoria del magazzino.
Le sessioni di inventario vengono aperte dal supervisore; gli operatori contano dal terminale, alla cieca come dicevo sopra. Quando la conta è completa, il supervisore confronta i numeri raccolti con quelli a sistema, vede le differenze e decide cosa fare. Se approva, è il sistema stesso a generare in automatico le rettifiche necessarie per allineare le giacenze — e ogni rettifica resta collegata all'inventario che l'ha prodotta. Niente correzioni "a mano" non tracciate.
Qui c'è una delle scelte più controcorrente dell'applicazione. Molti gestionali bloccano lo scarico se a sistema "non c'è abbastanza merce". Sembra prudente, ma nella pratica è il contrario: spesso la merce è già uscita fisicamente e semplicemente non è ancora stata registrata. Bloccare l'operazione costringe le persone a trovare scorciatoie pur di andare avanti, e il dato diventa ancora meno affidabile.
Questo sistema permette alla giacenza di scendere sotto lo zero, perché preferisce registrare la verità piuttosto che una finzione ordinata. Però, appena succede, fa scattare un avviso per il supervisore — esattamente come fa quando un articolo scende sotto la soglia minima. E gli avvisi sono intelligenti: non ripetono lo stesso allarme all'infinito, ma segnalano una sola volta finché la situazione non cambia davvero. Così le notifiche restano utili, invece di diventare rumore di fondo da ignorare.
Attorno agli articoli ruotano le anagrafiche di supporto, tutte gestibili dal cruscotto: clienti, fornitori e ubicazioni (le posizioni fisiche dentro il magazzino). C'è inoltre la gestione delle sedi, pensata per chi ha più di un magazzino o deposito: le ubicazioni appartengono a una sede, così la stessa applicazione può seguire scorte distribuite su luoghi diversi.
Il supervisore crea e gestisce gli utenti — nome, cognome, ruolo e PIN. Può assegnare un PIN, rigenerarlo in modo casuale, e il sistema lo aiuta a evitare doppioni suggerendo automaticamente un codice libero quando ne rileva uno già in uso.
Ma la parte più potente è la matrice dei permessi. Le regole di un magazzino cambiano nel tempo: oggi un certo ruolo può fare una cosa, domani no. Di solito modificare "chi può fare cosa" significa chiamare lo sviluppatore e aspettare un aggiornamento. Qui il supervisore ha una tabella che può modificare da solo, con qualche clic: decide quali ruoli possono creare articoli, approvare inventari, gestire utenti e così via. Le regole si adattano all'organizzazione senza bisogno di toccare il codice.
Dalle impostazioni il supervisore regola i comportamenti del sistema: i tempi di scadenza del PIN e della sessione, e se concedere agli operatori la creazione di articoli al volo. Sono le manopole che permettono di adattare l'app al ritmo del proprio magazzino.
Infine, ogni modifica importante — agli articoli, ai fornitori, ai PIN degli utenti — viene registrata in un diario delle attività: chi, cosa, quando. Una rete di sicurezza per quando serve capire come si è arrivati a una certa situazione. E quando i dati servono altrove, le viste principali si possono esportare in Excel per analisi, report o controlli.
Mettendo in fila queste decisioni, emerge una logica precisa. L'identificazione col PIN invece del login completo, la classificazione automatica dello scarico in base al ruolo, l'inventario alla cieca, le giacenze che possono andare in negativo invece di bloccare il lavoro: sono tutte facce della stessa idea.
La tecnologia deve adattarsi al modo in cui si lavora davvero in magazzino, non il contrario. Niente passaggi inutili imposti all'operatore, niente dati "puliti" ma falsi, niente regole rigide che costringono a inventarsi scorciatoie. Un gestionale che riduce gli errori non perché controlla di più le persone, ma perché chiede loro di pensare di meno alle cose che la macchina può capire da sola — e lascia il controllo, quello vero, a chi deve averlo.
Senza entrare nel tecnico: l'applicazione gira interamente nel browser, quindi funziona da computer, tablet o smartphone senza installare nulla. La scansione dei codici a barre può usare sia un lettore fisico sia la fotocamera del telefono o del tablet. È costruita con tecnologie web moderne e ampiamente collaudate (l'ecosistema Laravel lato server, un'interfaccia reattiva lato utente), pensate per restare veloci e fluide anche con molti operatori che lavorano contemporaneamente sulla stessa postazione.
In sintesi: un software che mette d'accordo due esigenze che di solito litigano — la velocità di chi sta in mezzo alla merce e il controllo di chi deve rispondere dei numeri.
Il software è di proprietà del cliente. Pertanto ogni singolo software che produco sarà unico. Quest'articolo descrive un esempio di cosa è possibile costruire come software funzionali avanzati per la tua azienda.
Se sei interessato ad introdurre nuove tecnologie all'avanguardia, personalizzate e su misura per il tuo flusso di lavoro, contattami per capire come dovrà essere il tuo software, la struttura e tutto ciò che desideri che il software svolga.