Tidligt i min karriere byggede jeg en grænseflade til at drive en varemodtagelsesstation på et lager. Jeg var stolt af det, jeg mente var et veldesignet og elegant slutprodukt. Det viste sig dog, at det hverken var funktionelt eller intuitivt for lageroperatøren, som uden omsvøb sagde: “Det her er det dummeste, jeg nogensinde har set.”
Av.
Det var en tidlig lektion i at bygge softwareprodukter, der kan anvendes i fysiske omgivelser – i dette tilfælde på et lager. Hvis softwaren driver en grænseflade, der ser flot ud, men ikke er bygget til den virkelige verden, er den ubrugelig.
Selvom det, jeg havde bygget, så flot ud (i hvert fald for mig), indeholdt det ikke den funktionalitet, der gjorde det virkelig nyttigt for varemodtageren – hvilket var hele formålet.
I dag registrerer min virksomhed, Flowspace, over 200.000 fysiske hændelser dagligt på tværs af vores netværk til ordreopfyldelse inden for e-handel. Jeg er blevet særdeles fortrolig med de unikke krav, der følger med at bygge teknologi, som afhænger af den virkelige verden.
At vide, at disse hændelser finder sted, er kun én udfordring ved at bygge software til den fysiske verden. Den anden er at koordinere hændelserne optimalt for at muliggøre effektiv og pålidelig ordreopfyldelse samt interoperabilitet med andre kritiske teknologisystemer.
Denne artikel beskriver, hvordan udviklere bør håndtere de unikke udfordringer, der opstår, når de bygger digital software, som driver handlinger i den fysiske verden.
SaaS i en materiel verden
Software som en tjeneste (SaaS) driver typisk en stor mængde usynligt arbejde. Et relevant eksempel inden for e-handel er Shopify.
Varemærker kan bruge Shopify til at lancere en butik på blot en halv time uden behov for en fysisk butik. Forhandlere styrer butikkens udseende, udtryk og funktion. De kan integrere over 6.000 apps og integrationer for at aktivere yderligere funktioner og oprette forbindelse til tredjepartsplatforme. For den endelige kunde fremstår resultatet dog som en enkel og problemfri butik, der muliggør e-handelsindkøb.
Hvis man ser på den anden side af e-handel – ordreopfyldelsen – er SaaS meget anderledes. Her skal logistikken udføre en fysisk kommando. I modsætning til teknologier, der kun eksisterer i skyen og på skærme, har ordreopfyldelse en status på 0/1. For en forhandlers slutkunde er spørgsmålet: “Ankom min pakke eller ej?”
I den virkelige verden skal software tage højde for hundredvis af niveauer af fysisk detaljerigdom, som påvirker algoritmiske konklusioner. Koden kan være perfekt, men handlinger i den virkelige verden uden for softwarens kontrol tilføjer et kompleksitetslag til fysisk SaaS.
Modtog anlægget ordren til tiden? Plukkede operatøren det rigtige produkt fra hylden? Viser softwaren dem den rigtige størrelse kasse, så de kan vælge den optimale og mest omkostningseffektive transportør? Blev produktet leveret til tiden og som forventet, eller blev pakken væk, beskadiget eller forsinket under transporten?
I alle disse scenarier skal softwaren, der driver ordreopfyldelsesprocessen, udføre en handling, som finder sted i den fysiske verden, for at skabe det bedste resultat.
Den unikke udfordring ved software til ordreopfyldelse
Softwaresystemer, der driver både digitale og fysiske produkter, indeholder fejl, der kan opstå. Men i et fysisk system kan en fejl føre til problemer i den virkelige verden, såsom forkert plukkede varer, forsinkede lastbiler eller medarbejdere, der ikke har noget at lave.
Derfor kræver logistiksoftware tre kritiske komponenter: nøjagtighed, interoperabilitet og effektivitet. Hvis ikke, vil lagerbeholdningerne være forkerte, platforme vil ikke kunne kommunikere med hinanden, ordrer vil blive forsinkede, og alle vil blive frustrerede.
Hele økosystemet afhænger af nøjagtigheden og integriteten af data. Hvis disse data ikke leveres, eller hvis der opstår en fejl i beregningen, opnås det ønskede resultat muligvis ikke, nemlig effektiv og pålidelig ordreopfyldelse.
Alt dette afhænger af, at systemerne kommunikerer med hinanden – hvilket er særligt vigtigt for e-handel med dens mange kontaktpunkter og markedspladser. Når data befinder sig i siloer, og andre teknologisystemer inden for detailhandel ikke kan kommunikere effektivt, forstår forhandlerne ikke, hvad der foregår. Derfor kan førsteklasses eksekvering inden for e-handel ikke opnås uden førsteklasses software.
Ud over datanøjagtighed og platformenes interoperabilitet skal systemet være optimeret. Hvis en forhandler for eksempel sender en ordre til et anlæg, der ikke er optimalt, skal den transporteres længere og hurtigere for at nå kunden, hvilket øger omkostningerne. Avancerne er små for både forhandleren og lageroperatøren, så enhver optimering betyder noget. For slutkunden er enhver indsats for problemfrit at levere et produkt til dem efter købet afgørende.
Opbygning af software, der driver fysiske processer
Den første kritiske del af at bygge software til ordreopfyldelse i den fysiske verden er en dyb forståelse af kunden. Hvad er deres virksomhed? Hvilke produktkrav har de? De data, de indsamler, den analyse, de udfører, og de handlinger, softwaren skal foretage, afhænger af en forståelse af og løsning på deres slutkunders behov.
For effektivt at kunne bygge software til den virkelige verden er erfaring nødvendig. Hos Flowspace opnår vi viden ved at involvere ingeniører sammen med vores kunder – direkte på lagergulvet – for at observere, hvordan operatørerne udfører en handling manuelt, foreslå en idé og iterere derfra.
Det andet aspekt ved at udvikle software til ordreopfyldelse i den fysiske verden er data. Indsaml så meget realtidsdata så detaljeret som muligt. Selv hvis det ikke bruges med det samme, kan denne rige informationskilde være nyttig uger, måneder eller år senere til at understøtte analysen eller optimeringen af en ny algoritme eller proces. Datalagring er billig, og du kan muligvis ikke udfylde de manglende data efterfølgende.
Eksperimentér og gentag endelig processen. Ofte fungerer en idé, der virker plausibel i teorien, ganske enkelt ikke i den virkelige verden. Min tidlige erfaring med lageroperatørens reaktion på min softwaregrænseflade beviser dette.
Fremtiden for SaaS inden for drift
Virkeligheden ved den virkelige verden er, at den findes. Mange teknologigrundlæggere ønsker omvæltning og argumenterer for en mere elegant løsning, et mere elegant økosystem eller en bedre måde at arbejde på. Det er det fantastiske ved teknologi – der bliver altid udviklet noget større, bedre og mere kraftfuldt.
Men et andet aspekt ved den virkelige verden er, at nogle ting ændrer sig langsomt, så prøv at finde en balance mellem at udvikle løsninger, der tager udgangspunkt i det eksisterende, og det, der i sidste ende er muligt.
Der er mulighed for at koordinere og optimere fysiske systemer gennem software. Rene softwareapplikationer kan modellere optimale scenarier, før arbejdet i den virkelige verden finder sted. Indsamling af så mange omfattende realtidsdata som muligt gør systemerne mere intelligente og kapable. Ved at sikre, at alle platforme kan fungere sammen, skabes udførelse i verdensklasse.
Og fordi alt dette understøtter handling i den virkelige verden, er der en ekstra glæde ved at vide, at arbejdet i sidste ende vil gøre nogens liv lettere, bedre eller mere behageligt.
Hvilke erfaringer har du gjort dig ved at udvikle softwareprodukter til den virkelige verden? Del dem i kommentarerne nedenfor, og tilmeld dig The CTO Club-nyhedsbrevet for flere branchenyheder og diskussioner.




