Uranani alkuvaiheessa rakensin käyttöliittymän varaston vastaanottoasemaa varten. Olin ylpeä siitä, minkä ajattelin olevan hyvin suunniteltu ja tyylikäs lopputuote. Kävi kuitenkin ilmi, ettei se ollut toimiva tai intuitiivinen varaston työntekijälle, joka totesi yksiselitteisesti: ”Tämä on typerin asia, jonka olen koskaan nähnyt.”
Auts.
Se oli varhainen oppitunti fyysisessä ympäristössä – tässä tapauksessa varastossa – käytettävien ohjelmistotuotteiden rakentamisesta. Jos ohjelmisto ohjaa käyttöliittymää, joka näyttää hyvältä mutta jota ei ole rakennettu todellista maailmaa varten, se on hyödytön.
Vaikka rakentamani käyttöliittymä näytti hyvältä (ainakin omasta mielestäni), siitä puuttui toiminnallisuus, joka olisi tehnyt siitä vastaanottajalle todella hyödyllisen – ja juuri se oli koko tarkoitus.
Nykyään yritykseni Flowspace kirjaa verkkokauppamme toimitusverkostossa yli 200 000 fyysistä tapahtumaa päivittäin. Olen perehtynyt perusteellisesti sellaisen teknologian rakentamisen erityisvaatimuksiin, joka on riippuvainen todellisesta maailmasta.
Näiden tapahtumien tietäminen on vain yksi haaste rakennettaessa fyysisessä ympäristössä toimivaa ohjelmistoa. Toinen haaste on tapahtumien optimaalinen koordinointi tehokkaan ja luotettavan toimitusten käsittelyn sekä muiden kriittisten teknologiajärjestelmien yhteentoimivuuden mahdollistamiseksi.
Tässä artikkelissa käsitellään tapoja, joilla kehittäjien tulisi lähestyä erityisiä haasteita, joita syntyy rakennettaessa digitaalista ohjelmistoa, joka ohjaa toimintaa fyysisessä ympäristössä.
SaaS fyysisessä maailmassa
Ohjelmisto palveluna (SaaS) -tuotteet ohjaavat yleensä paljon näkymätöntä työtä. Yksi verkkokauppaan liittyvä esimerkki on Shopify.
Brändit voivat käyttää Shopifyta verkkokaupan käynnistämiseen vain puolessa tunnissa ilman fyysistä myymälää. Kauppiaat hallitsevat myymälänsä ulkoasua, tuntumaa ja toimintoja. He voivat ottaa käyttöön yli 6 000 sovellusta ja integraatiota lisäominaisuuksien mahdollistamiseksi sekä yhdistää palvelun kolmansien osapuolten alustoihin. Loppuasiakkaalle näkyvissä on kuitenkin vain yksinkertainen ja saumaton verkkokauppa, joka mahdollistaa verkko-ostokset.
Kun tarkastellaan verkkokaupan toista puolta eli toimitusten käsittelyä, SaaS toimii hyvin eri tavalla. Tässä logistiikan on toteutettava fyysinen toiminto. Toisin kuin teknologiat, jotka ovat olemassa vain pilvessä ja näytöillä, toimitusten käsittelyssä tila on joko 0 tai 1. Kauppiaan loppuasiakkaan kannalta kysymys kuuluu: ”Saapuiko pakettini vai ei?”
Todellisessa maailmassa ohjelmiston on otettava huomioon satoja fyysisen toiminnan tasoja, jotka vaikuttavat algoritmien johtopäätöksiin. Koodi voi olla täydellistä, mutta ohjelmiston hallinnan ulkopuolella tapahtuvat tosielämän toimet lisäävät fyysiseen SaaS-ratkaisuun monimutkaisuutta.
Saapuiko tilaus toimipisteeseen ajoissa? Poimiko työntekijä hyllystä oikean tuotteen? Ohjaako ohjelmisto hänet valitsemaan oikeankokoisen laatikon, jotta optimaalinen ja kustannustehokkain kuljetusyritys voidaan valita? Toimitettiinko tuote ajoissa ja odotusten mukaisesti, vai katosiko, vahingoittuiko tai viivästyikö paketti kuljetuksen aikana?
Kaikissa näissä tilanteissa toimitusprosessia ohjaavan ohjelmiston on toteutettava paikan päällä tapahtuva toimi parhaan lopputuloksen saavuttamiseksi.
Toimitusten käsittelyyn tarkoitetun ohjelmiston erityinen haaste
Sekä digitaalisia että fyysisiä tuotteita ohjaavissa ohjelmistojärjestelmissä esiintyy virheitä. Fyysisessä järjestelmässä ohjelmistovirhe voi kuitenkin johtaa todellisen maailman ongelmiin, kuten väärin poimittuihin tuotteisiin, myöhästyneisiin kuorma-autoihin tai toimettomiin työntekijöihin.
Siksi logistiikkaohjelmisto tarvitsee kolme kriittistä osa-aluetta: tarkkuuden, yhteentoimivuuden ja tehokkuuden. Muussa tapauksessa varastotasot ovat virheellisiä, alustat eivät keskustele keskenään, tilaukset viivästyvät ja kaikki ovat tyytymättömiä.
Koko ekosysteemi riippuu tietojen tarkkuudesta ja eheydestä. Jos tietoja ei toimiteta tai laskennassa ilmenee virhe, haluttua lopputulosta eli tehokasta ja luotettavaa toimitusten käsittelyä ei välttämättä saavuteta.
Kaikki tämä riippuu siitä, että järjestelmät keskustelevat keskenään – mikä on erityisen tärkeää verkkokaupassa, jossa on useita kosketuspisteitä ja markkinapaikkoja. Kun tiedot ovat siiloissa eivätkä muut vähittäiskaupan teknologiajärjestelmät pysty viestimään tehokkaasti keskenään, kauppiaat eivät ymmärrä, mitä tapahtuu. Siksi verkkokaupan huipputason toteutusta ei voida saavuttaa ilman huipputason ohjelmistoa.
Tietojen tarkkuuden ja alustojen yhteentoimivuuden lisäksi järjestelmä on optimoitava. Jos kauppias esimerkiksi ohjaa tilauksen epäoptimaaliseen toimipisteeseen, sen on kuljettava kauemmas ja nopeammin asiakkaan saavuttamiseksi, mikä lisää kustannuksia. Kauppiaan ja varaston työntekijän marginaalit ovat pieniä, joten jokaisella optimoinnilla on merkitystä. Loppuasiakkaalle kaikki pyrkimykset toimittaa tuote saumattomasti oston jälkeen ovat elintärkeitä.
Fyysistä toimintaa ohjaavan ohjelmiston rakentaminen
Ensimmäinen kriittinen osa fyysiseen maailmaan tarkoitetun toimitusten käsittelyohjelmiston rakentamisessa on asiakkaan syvällinen ymmärtäminen. Millainen heidän liiketoimintansa on? Millaisia tuotevaatimuksia heillä on? Heidän keräämänsä tiedot, tekemänsä analyysit ja toimet, jotka ohjelmiston on suoritettava, riippuvat heidän loppuasiakkaidensa tarpeiden ymmärtämisestä ja ratkaisemisesta.
Todelliseen maailmaan tarkoitetun ohjelmiston tehokas rakentaminen edellyttää kokemusta. Flowspacessa kartutamme tietämystä ottamalla insinöörit mukaan työskentelemään asiakkaidemme kanssa – suoraan varaston lattialla – tarkkailemaan, kuinka työntekijät suorittavat jonkin toimenpiteen manuaalisesti, ehdottamaan ideaa ja kehittämään sitä iteratiivisesti eteenpäin.
Fyysisen maailman toimitustenhallintaohjelmistojen rakentamisen toinen näkökulma on data. Kerää mahdollisimman paljon reaaliaikaista dataa mahdollisimman yksityiskohtaisesti. Vaikka sitä ei käytettäisi heti, tämä runsas tietolähde voi olla hyödyllinen viikkojen, kuukausien tai vuosien kuluttua uuden algoritmin tai prosessin analyysin tai optimoinnin perustana. Datan tallennus on edullista, etkä välttämättä pysty täydentämään puuttuvia tietoja myöhemmin.
Lopuksi: kokeile ja kehitä iteratiivisesti. Usein teoriassa uskottavalta vaikuttava idea ei yksinkertaisesti toimi todellisessa maailmassa. Varhainen kokemukseni varasto-operaattorin reaktiosta ohjelmistokäyttöliittymääni todistaa tämän.
SaaS:n tulevaisuus operatiivisessa toiminnassa
Todellisen maailman todellisuus on se, että se on olemassa. Monilla teknologiayritysten perustajilla on halu saada aikaan mullistuksia, ja he kannattavat kauniimpaa ratkaisua, ekosysteemiä tai työskentelytapaa. Se on teknologian hieno puoli – aina rakennetaan jotakin suurempaa, parempaa ja tehokkaampaa.
Toinen todellisen maailman piirre kuitenkin on, että joidenkin asioiden muuttuminen vie aikaa, joten pyri löytämään tasapaino sellaisten ratkaisujen rakentamisen välillä, jotka toimivat nykyisten käytäntöjen pohjalta, ja sen välillä, mikä on lopulta mahdollista.
Ohjelmistojen avulla on mahdollista koordinoida ja optimoida fyysisiä järjestelmiä. Puhtaat ohjelmistosovellukset voivat mallintaa optimaalisia tilanteita ennen kuin työ tapahtuu todellisessa maailmassa. Mahdollisimman runsaan ja reaaliaikaisen datan kerääminen tekee järjestelmistä älykkäämpiä ja kykenevämpiä. Kaikkien alustojen yhteentoimivuuden varmistaminen edistää alan parasta toteutusta.
Ja koska tämä kaikki ohjaa toimintaa todellisessa maailmassa, on erityisen ilahduttavaa tietää, että työ tekee lopulta jonkun elämästä helpompaa, parempaa tai nautinnollisempaa.
Mitä oppeja olet saanut rakentaessasi ohjelmistotuotteita todellista maailmaa varten? Kerro niistä alla olevissa kommenteissa ja liity The CTO Clubin uutiskirjeen tilaajaksi saadaksesi lisää alan uutisia ja keskusteluja.



