All’inizio della mia carriera, ho realizzato un’interfaccia per il punto di ricezione di un magazzino. Ero orgoglioso di quello che pensavo fosse un prodotto ben progettato e dall’aspetto elegante. Tuttavia, si è scoperto che non era funzionale né intuitivo per l’operatore del magazzino, che mi disse senza mezzi termini: “Questa è la cosa più stupida che abbia mai visto.”
Che colpo.
È stata una lezione precoce su come costruire prodotti software che possano essere applicati in un contesto fisico— in questo caso, un magazzino. Se il software alimenta un’interfaccia che appare bella ma non è creata per il mondo reale, è inutile.
Quello che avevo costruito poteva anche sembrare bello (almeno per me), ma non includeva la funzionalità che lo avrebbe reso veramente utile per il ricevitore—che era il punto centrale.
Oggi la mia azienda, Flowspace, registra oltre 200.000 eventi fisici al giorno nella nostra rete di fulfillment per l’e-commerce. Sono diventato profondamente consapevole delle esigenze particolari nel costruire tecnologia che dipende dal mondo reale.
Sapere che questi eventi accadono è solo una delle sfide nello sviluppare software per il mondo fisico. L’altra è orchestrare gli eventi in modo ottimale per permettere operazioni di fulfillment efficienti e affidabili, oltre a garantire l’interoperabilità con altri sistemi tecnologici cruciali.
Questo articolo illustra i modi in cui gli sviluppatori dovrebbero affrontare le sfide uniche che emergono quando si crea software digitale per azionare processi nel mondo fisico.
SaaS in un mondo materiale
I prodotti software-as-a-service (SaaS) generalmente alimentano molto lavoro invisibile. Un esempio pertinente al settore e-commerce è Shopify.
I brand possono usare Shopify per lanciare un negozio in appena mezz’ora senza bisogno di uno spazio fisico. I commercianti controllano l’aspetto, la sensazione e la funzionalità del proprio shop. Possono incorporare oltre 6.000 app e integrazioni per abilitare funzionalità aggiuntive e connettersi a piattaforme di terze parti. Tuttavia, per il cliente finale, ciò che appare è una vetrina semplice e senza soluzione di continuità che consente gli acquisti online.
Guardando all’altro lato dell’e-commerce—cioè il fulfillment—il SaaS è molto diverso. Qui la logistica deve mettere in atto un comando fisico. A differenza delle tecnologie che esistono solamente nel cloud e sugli schermi, nel fulfillment c’è uno stato 0/1. Per il consumatore finale di un commerciante, la domanda è: “Il mio pacco è arrivato oppure no?”
Nel mondo reale, il software deve considerare centinaia di livelli di granularità fisica che influiscono sulle conclusioni degli algoritmi. Il codice può essere perfetto, ma le azioni reali fuori dal controllo del software aggiungono complessità al SaaS fisico.
L’ordine è stato ricevuto in tempo dalla struttura? L’operatore ha prelevato il prodotto giusto dallo scaffale? Il software lo guida verso lo scatolone della giusta grandezza per selezionare il corriere ottimale e più economico? Il prodotto è arrivato in tempo e come previsto, o il pacco si è perso, è stato danneggiato, o ha subito ritardi durante il trasporto?
In tutti questi casi, il software che alimenta il processo di fulfillment deve eseguire un’azione reale per produrre il miglior risultato possibile.
La sfida unica dei software per il fulfillment
I sistemi software che alimentano sia prodotti digitali che fisici possono presentare degli errori. Ma in un sistema fisico, il bug può portare a problemi reali, come articoli prelevati erroneamente, camion in ritardo, o operatori senza nulla da fare.
Per questo il software logistico richiede tre componenti fondamentali: precisione, interoperabilità ed efficienza. Altrimenti, i livelli di inventario saranno errati, le piattaforme non comunicheranno tra loro, gli ordini subiranno ritardi e tutti saranno insoddisfatti.
L’intero ecosistema dipende dall’accuratezza e dall’integrità dei dati. L’incapacità di fornire tali dati, o un errore di calcolo, può non portare all’esito desiderato, cioè un fulfillment efficiente e affidabile.
Tutto si basa su sistemi che comunicano tra loro—particolarmente importante per l’e-commerce con i suoi molteplici punti di contatto e marketplace. Quando i dati rimangono confinati all’interno di silos e gli altri sistemi retail non possono comunicare efficacemente, i commercianti non capiscono cosa succede. È quindi impossibile ottenere un’esecuzione e-commerce di alto livello senza un software all’altezza.
Oltre all’accuratezza dei dati e all’interoperabilità delle piattaforme, il sistema deve essere ottimizzato. Ad esempio, se un commerciante assegna un ordine a una struttura non ottimale, dovrà spedire più lontano e più velocemente per raggiungere il cliente, aumentando i costi. I margini per il commerciante e l’operatore di magazzino sono ristretti, quindi ogni ottimizzazione conta. Per il consumatore finale, ogni sforzo per consegnare senza intoppi un prodotto dopo l’acquisto è fondamentale.
Costruire software che alimenta le operazioni fisiche
Il primo elemento fondamentale per creare software di fulfillment per il mondo fisico è una profonda comprensione del cliente. Qual è la sua attività? Di cosa ha bisogno per i suoi prodotti? I dati che raccolgono, le analisi che effettuano e le azioni che il software deve compiere dipendono dalla comprensione e dalla soluzione delle necessità dei loro consumatori finali.
Per costruire in modo efficace software per il mondo reale, serve esperienza. In Flowspace, accumuliamo conoscenza coinvolgendo gli ingegneri direttamente insieme ai clienti—proprio sul pavimento del magazzino—per osservare come gli operatori svolgano manualmente un’azione, proporre idee e iterare da lì.
Il secondo aspetto nella costruzione di software di fulfillment per il mondo fisico è rappresentato dai dati. Raccogli quanta più quantità possibile di dati in tempo reale, nel modo più granulare possibile. Anche se non vengono utilizzati subito, questa ricca fonte di informazioni potrebbe essere utile settimane, mesi o anni dopo per alimentare l’analisi o l’ottimizzazione di un nuovo algoritmo o processo. L’archiviazione dei dati è economica e potresti non essere in grado di recuperare retroattivamente i dati mancanti in futuro.
Infine, sperimenta e migliora costantemente. Spesso, un’idea che sembra plausibile in teoria semplicemente non funziona nel mondo reale. La mia esperienza iniziale con la reazione dell’operatore di magazzino alla mia interfaccia software ne è la prova.
Il Futuro del SaaS nelle Operazioni
La realtà del mondo reale è che esiste davvero. Molti fondatori tech hanno una forte propensione alla disruption e sostengono la ricerca di soluzioni, ecosistemi o modalità operative più belle ed efficienti. Questo è il bello della tecnologia: c’è sempre qualcosa di più grande, migliore e più potente in costruzione.
Ma un altro aspetto del mondo reale è che alcune cose sono lente a cambiare; quindi cerca di trovare un equilibrio tra il creare soluzioni che intervengano su ciò che esiste già e ciò che è effettivamente possibile.
Esiste l’opportunità di orchestrare e ottimizzare i sistemi fisici tramite il software. Le applicazioni puramente software possono modellare scenari ottimali prima che il lavoro reale si svolga. Raccogliere una quantità di dati ricchi e in tempo reale rende i sistemi più intelligenti e capaci. Garantire che tutte le piattaforme siano interoperabili consente un’esecuzione al massimo livello.
E poiché tutto questo guida le azioni nel mondo reale, c’è una soddisfazione in più nel sapere che il tuo lavoro renderà, alla fine, la vita di qualcuno più semplice, migliore o più piacevole.
Quali lezioni hai imparato costruendo prodotti software per il mondo reale? Condividile nei commenti qui sotto e iscriviti alla newsletter di The CTO Club per altre notizie e discussioni del settore.
