12-vuotiaan varastojärjestelmän uudistaminen pysäyttämättä rekkoja
Tukkuliike pyöritti koko varastoaan ohjelmistolla, joka oli vanhempi kuin osa henkilöstöstä. Näin korvasimme sen pala palalta — ei suurta kertarysäystä, ei kadonneita toimituksia — ja mitä tekisimme uudelleen samalla tavalla.

Pienyrityksen vaarallisin ohjelmisto on se, joka toimii. Ei se buginen työkalu, josta kaikki valittavat — se vaihdetaan lopulta pois. Vaarallinen on se kaksitoistavuotias järjestelmä, jota kukaan ei rakasta mutta josta kaikki ovat riippuvaisia, se joka käynnistyy nurkassa olevasta beessistä tornista ja on pyörittänyt varastoa jo ennen kuin puolet tiimistä palkattiin. Se toimii. Kunnes tulee päivä, jolloin se melkein ei toimi, ja kaikki tajuavat kerralla, että koko liiketoiminta lepää sen varassa.
Tämä on tarina yhdestä sellaisesta järjestelmästä ja siitä, miten korvasimme sen. Asiakas on alueellinen tukkuliike — muutama tuhat tuotenimikettä, yksi varasto, noin kolmekymmentä työntekijää varastossa ja toimistossa. Olemme anonymisoineet heidät ja pyöristäneet luvut, mutta projektin muoto on juuri sellainen kuin se tapahtui. Jos istut vanhenevan järjestelmän päällä, johon et uskalla koskea, näin järkevä uudistus näyttää sisältä päin.
Tässä tarinassa ei ole sankarillista uudelleenkirjoitusta, ei viikonloppua, jolloin käänsimme katkaisijaa ja kaikki oli uutta. Koko pointti — se mikä sai sen toimimaan — on se, että mitään dramaattista ei tapahtunut. Rekkoja lastattiin edelleen. Varasto tuskin huomasi lattian siirtyvän allaan. Se on tavoite vanhojen järjestelmien parissa, ja kannattaa ymmärtää miksi.
Tilanne: yhden ihmisen muistin varassa oleva järjestelmä
Varasto pyöri räätälöidyllä järjestelmällä, joka rakennettiin noin vuonna 2013 kehittäjän toimesta, joka oli jo aikaa sitten siirtynyt muualle. Se teki ydintehtävänsä — seurasi varastoa, tulosti keräyslistoja, lähetti tilaukset ovesta ulos — ja tavallisena päivänä se teki sen hyvin. Ongelma ei oikeastaan ollut ohjelmisto. Ongelma oli kaikki se, mikä oli kasvanut ohjelmiston ympärille pitääkseen sen käyttökelpoisena.
Vuosikymmenen aikana tiimi oli hiljaa rakentanut varjojärjestelmän jeesusteipistä: taulukko niitä varastolukuja varten, jotka ohjelmisto sai väärin, toinen taulukko joka täsmäytti ensimmäisen todellisuutta vasten, WhatsApp-ryhmä, jossa varastopäällikkö merkitsi nimikkeitä, joita järjestelmä ei osannut esittää, ja tulostettu kansio kiertotapoja, jotka uusien työntekijöiden oli opeteltava ulkoa. Mitään tästä ei ollut kirjattu yhteen paikkaan. Se eli operatiivisen päällikön päässä — tyynen, viisikymppisen naisen, joka oli ollut siellä neljätoista vuotta ja oli käytännössä dokumentaatio.
Kun omistaja ensimmäisen kerran soitti meille, syy ei ollut kaatuminen. Syy oli se, että nainen oli ilmoittanut haluavansa jäädä eläkkeelle kahden vuoden kuluttua, ja omistaja oli laskenut ja tajunnut, että sinä päivänä kun tämä lähtee, merkittävä osa siitä, miten varasto oikeasti toimii, kävelisi ulos ovesta hänen mukanaan. Tämä on yleisempi uudistuksen laukaisija kuin mikään tekninen vika: ei järjestelmän hajoaminen, vaan oivallus siitä, että sitä paikkaavat ihmiset eivät ole täällä ikuisesti.
“Vanha järjestelmä ei ollut riski. Riski oli, että sitä hengissä pitävä tieto eli yhdessä ihmisessä, joka halusi jäädä eläkkeelle.”
Oireet, joita kaikki olivat lakanneet huomaamasta
Kun vietimme ensimmäiset kaksi päivää vain seuraten varaston työtä, vanhan järjestelmän kustannukset olivat kaikkialla — mutta niistä oli tullut niin normaaleja, ettei kukaan enää nostanut niitä ongelmina esiin. Varastolukujen luotettiin olevan väärässä ennustettavalla marginaalilla, joten jokainen iso tilaus tarkistettiin käsin fyysisesti 'varmuuden vuoksi'. Uusilta työntekijöiltä kesti viikkoja tulla hyödyllisiksi, koska niin suuri osa työstä oli kirjaamatonta kansanperinnettä. Ja järjestelmä pyöri niin vanhalla käyttöjärjestelmällä, ettei sitä enää voinut paikata, verkossa, jonka omistaja yksityisesti tiesi olevan tapahtumista odottava tietoturvaonnettomuus.
- Varaston tarkkuus pyöri noin 80 prosentissa, joten henkilöstö tarkisti määrät käsin kaikesta tärkeästä — tunteja päivässä, hiljaa.
- Keräyslistan logiikka ei pärjännyt varaston nykyisen pohjaratkaisun kanssa, joten kerääjät kulkivat reittiä, jonka kansio kertoi, ei näyttö.
- Kuukauden lopun varaston täsmäytys vei kahdelta ihmiseltä parhaan osan kolmesta päivästä.
- Vain yksi kone pystyi pyörittämään ohjelmiston hallintapuolta, ja jos se hajoaisi, kenelläkään ei ollut selkeää suunnitelmaa.
- Mikään ei ollut kytketty verkkotilauskanavaan, jonka yritys oli lisännyt vuonna 2019 — ne tilaukset kirjoitettiin uudelleen käsin.

Mitä emme tietoisesti tehneet
Ilmeinen siirto — sellainen, jota moni toimittaja olisi tarjonnut — on ostaa iso valmis varastonhallinta-alusta, siirtää kaikki yhden viikonlopun aikana ja sammuttaa vanha järjestelmä maanantaiaamuna. Olemme nähneet tämän lähestymistavan menevän pieleen tarpeeksi monta kertaa, ettemme ehdottaisi sitä tämänkaltaiselle yritykselle. Kertarysäys olettaa, että ymmärrät vanhan järjestelmän täysin. Vuosikymmenen kirjaamattomien kiertotapojen kanssa kukaan ei ymmärtänyt — eivät edes sitä pyörittävät ihmiset.
Toinen houkutteleva siirto on täysi räätälöity uudelleenkirjoitus alusta: otetaan kaikki mitä vanha järjestelmä tekee, rakennetaan se puhtaasti uudelleen, toimitetaan uusi. Se kuulostaa vastuulliselta ja on klassinen tapa polttaa vuosi ja iso budjetti, kun liiketoiminta odottaa jäätyneenä korvaajaa, joka jatkuvasti lipsuu. Vika on siinä, että uudelleenkirjoituksen täytyy toistaa jokainen erikoisuus ennen kuin se voi käynnistyä — mukaan lukien ne erikoisuudet, joiden kukaan ei muista olevan kantavia ennen kuin ne puuttuvat.
Joten emme tehneet kumpaakaan. Kohtelimme vanhaa järjestelmää emmekä purettavana asiana, vaan asiana, joka ympäröidään ja korvataan hitaasti — yksi kyvykkyys kerrallaan, vanha järjestelmä yhä alla pyörien turvaverkkona koko matkan ajan. Loisteliasta se ei ole. Se on myös ainoa versio tästä, joka luotettavasti toimii.
Lähestymistapa: kurista vanha järjestelmä, älä räjäytä sitä
Kehittäjillä on vakiintunut nimi tälle mallille — 'kuristaja'-lähestymistapa, nimetty köynnöksen mukaan, joka kasvaa puun ympärille kunnes voi seistä omillaan ja alkuperäinen katoaa hiljaa. Et korvaa vanhaa järjestelmää yhdellä liikkeellä. Rakennat uusia palasia sen ympärille, ohjaat oikeaa työtä niihin yksi kerrallaan ja annat vanhan järjestelmän kutistua, kunnes jäljellä on tarpeeksi pieni osa, jotta sen voi sammuttaa kenenkään pidättämättä henkeään.
Tämän varaston kohdalla se tarkoitti, että sovimme etukäteen järjestyksestä: minkä kyvykkyyden kuorisimme pois ensin, minkä säästäisimme viimeiseksi ja — ratkaisevimmin — sääntö, että jokaisessa vaiheessa, jos uusi palanen toimi väärin, voisimme palata suoraan vanhaan tapaan samana päivänä. Mikään askel ei saanut olla paluuton piste ennen aivan loppua. Juuri tämä sääntö antoi omistajalle yöunet ja sai varaston henkilöstön luottamaan projektiin sen sijaan, että olisivat jännittäneet sitä vastaan.
- 1Kartoita mitä järjestelmä oikeasti tekeeKolme viikkoa varjostamista varastossa ja toimistossa dokumentoidaksemme todellisen työnkulun — mukaan lukien jokainen taulukko ja kansion kiertotapa. Kirjasimme ylös sen järjestelmän, joka oli olemassa, ei sen, jonka alkuperäinen määrittely kuvasi.
- 2Siivoa data ennen sen siirtämistäTeimme täyden fyysisen varastolaskennan ja siivosimme tuotetietokannan sitä vasten. Likaisen datan siirtäminen uuteen järjestelmään antaa vain nopeamman väärän vastauksen — joten tämä tehtiin ennen kuin mikään uusi ohjelmisto kosketti dataa.
- 3Korvaa kivuliain palanen ensinRakensimme uuden varastonseuranta- ja laskentamoduulin, ajoimme sitä rinnakkain vanhan kanssa ja luotimme siihen vasta kun luvut vastasivat todellisuutta kokonaisen kuukauden.
- 4Yhdistä kanavat, jotka vanha järjestelmä jätti huomiottaSeuraavaksi kytkimme verkkotilauskanavan suoraan uuteen varastodataan, lopettaen käsin uudelleenkirjoittamisen, joka oli hiljaa ollut olemassa vuodesta 2019.
- 5Kuori loput pois, sitten poista vanha ydin käytöstäKeräily, raportointi ja täsmäytys siirtyivät yksi kerrallaan. Kun lähes mikään oikea ei enää pyörinyt vanhalla järjestelmällä, sammutimme sen vihdoin — siihen mennessä epätapahtuma.

Osat, jotka olivat aidosti vaikeita
Olisi epärehellistä esittää tämä sujuvana. Tekninen työ oli helppo osa. Vaikeat osat olivat inhimillisiä ja menettelyllisiä, ja ne ovat samat vaikeat osat lähes jokaisessa perintöjärjestelmäprojektissa.
Kirjaamaton sääntö, joka rikkoi toiminnon
Kahden viikon kuluttua uuden varastomoduulin rinnakkaisajosta luvut alkoivat ajautua erilleen yhden tuoteryhmän osalta, emmekä nähneet miksi. Päivän kaivamisen jälkeen operatiivinen päällikkö mainitsi melkein ohimennen, että tietyt irtotavarat lasketaan lavoittain, ei kappaleittain, ja että vanhassa järjestelmässä oli piilotettu muunnos sisäänrakennettuna, jota kukaan ei ollut dokumentoinut vuosikymmeneen. Sitä ei ollut missään määrittelyssä. Se eli vain hänen päässään ja kansiossa. Emme olisi koskaan löytäneet sitä pelkästä koodista — vain ajamalla molempia järjestelmiä rinnakkain ja kysymällä, miksi ne olivat eri mieltä. Tämä on koko rinnakkaisajon perustelu yhdessä anekdootissa.
Lattian voittaminen puolelleen
Varaston henkilöstö oli selvinnyt useammasta kuin yhdestä hyvää tarkoittavasta 'parannuksesta', joka teki heidän päivästään huonomman, joten he kohtasivat projektin kohtuullisella epäluulolla. Emme taistelleet sitä vastaan esityksellä. Valitsimme äänekkäimmin valittaneen kerääjän, istuimme hänen kanssaan yhden aamupäivän ja rakensimme keräysnäytön uudelleen sen mukaan, miten hän oikeasti kulki lattialla. Kun hän alkoi puolustaa uutta järjestelmää taukohuoneessa, muut seurasivat perässä. Perintöprojekteissa kovin kriitikko, kun hänet voitetaan puolelle, muuttuu parhaaksi puolestapuhujaksesi — ja sitä ei voi ostaa muistiolla.
“Emme koskaan väittäneet, että uusi järjestelmä oli parempi. Annoimme lukujen vastata todellisuutta kuukauden, sitten annoimme äänekkäimmän skeptikon sanoa sen puolestamme.”
Tulokset, vuosi myöhemmin
Suhtaudumme varauksella kiiltäviin ennen-ja-jälkeen-lukuihin, koska jokainen yritys mittaa eri tavoin ja sinun lukusi vaihtelevat. Joten kohtele näitä rehellisinä, pyöristettyinä arvoina yhdestä projektista, tarkoitettuna näyttämään tuoton muoto ennemmin kuin lupaus. Otsikko ei niinkään koske yksittäistä mittaria vaan sitä, mikä lakkasi olemasta pelottavaa.
| Mittari | Ennen | Jälkeen | Vaikutus |
|---|---|---|---|
| Varaston tarkkuus | ~80 % | ~98 % | Käsin tehdyt kaksoistarkistukset enimmäkseen poissa |
| Kuukauden lopun täsmäytys | ~3 päivää, 2 ihmistä | ~puoli päivää, 1 ihminen | Noin viikko työtä takaisin kuukaudessa |
| Käsin uudelleenkirjoitetut verkkotilaukset | Jokainen | Nolla | Kanava syöttää nyt varastoa suoraan |
| Uuden työntekijän aika hyödylliseksi | Useita viikkoja | Useita päiviä | Kansanperinne on nyt ohjelmistossa |
| Yksittäinen hauras hallintakone | Kyllä | Ei | Toimii missä vain, kunnolla varmuuskopioituna |
Luku, josta omistaja välitti eniten, ei ollut missään kaaviossa. Se oli se, että kun operatiivinen päällikkö lopulta jäi eläkkeelle — muutama kuukausi etuajassa, kuten kävi ilmi — varasto ei edes horjunut. Tieto, joka ennen eli hänen päässään, eli nyt järjestelmässä, johon kuka tahansa voitiin kouluttaa päivissä. Koko projektin alkuperäinen syy oli hiljaa ja täysin ratkaistu.

Jos istut tämänkaltaisen järjestelmän päällä
Useimmat omistajat, joilla on vanheneva ydinjärjestelmä, tuntevat samat kaksi asiaa kerralla: sitä on riskialtista pitää ja sen korvaaminen on kauhistuttavaa. Molemmat ovat totta. Virhe on antaa jälkimmäisen pelon voittaa, koska vanhan järjestelmän riski ei pysy vakiona — se kasvaa hiljaa joka vuosi, kun sen ymmärtävät ihmiset lähestyvät lähtöä ja sen alusta ajautuu yhä kauemmas tuesta.
Sinun ei tarvitse valita 'jätä se rauhaan ja rukoile' ja 'panosta yritys ison uudelleenkirjoituksen varaan' väliltä. Keskitie — ympäröi se, korvaa se pala kerrallaan, pidä vanha verkkona kunnes uusi on ansainnut luottamuksen — on hitaampi ja paljon vähemmän sankarillinen. Se on myös se versio, joka ei pysäytä rekkoja. Jos koko tästä tarinasta on yksi asia, joka kannattaa ottaa mukaan, se on juuri se.
Onko sinulla vanha järjestelmä, johon et uskalla koskea?
Jos varastosi tai varastonhallintasi pyörii ohjelmistolla, johon et enää voi täysin luottaa — tai jota et enää täysin ymmärrä — katsotaan sitä yhdessä. Kartoitamme mitä se oikeasti tekee ja näytämme sinulle pienimmän riskin polun moderniin korvaajaan, pala kerrallaan.
Katso miten uudistamme varastojärjestelmiäYleisiä kysymyksiä
Voitteko todella korvata varastojärjestelmän ilman katkoja?
Miksi ette vain osta valmista varastonhallintajärjestelmää?
Kauanko tämänkaltainen projekti kestää?
Mikä on tärkein ensimmäinen askel?
Mitä tapahtuu tiedolle, joka elää yhden avainhenkilön päässä?

Have a nice day on ohjelmistostudio, joka auttaa pieniä ja keskisuuria yrityksiä digitalisoitumaan — automaatiota, tekoälyä ja räätälöityjä ohjelmistoja, jotka toimivat arjessa, eivät vain kalvoilla.