Primer iz prakse

Posodobitev 12 let starega skladiščnega sistema brez zaustavitve tovornjakov

Distributer je celotno skladišče poganjal na programski opremi, starejši od dela svojih zaposlenih. Tukaj je, kako smo jo zamenjali kos za kosom — brez velikega nenadnega prehoda, brez izgubljenih pošiljk — in kaj bi spet storili na enak način.

Have a nice dayHave a nice day13 min branja
Posodobitev 12 let starega skladiščnega sistema brez zaustavitve tovornjakov

Najnevarnejša programska oprema v malem podjetju je tista, ki deluje. Ne pokvarjeno orodje, nad katerim se vsi pritožujejo — to se sčasoma zamenja. Nevaren je tisti dvanajst let stari sistem, ki ga nihče ne mara, a so vsi odvisni od njega, tisti, ki se zažene z bež ohišja v kotu in poganja skladišče že iz časa, preden je bila zaposlena polovica ekipe. Deluje. Vse do dne, ko skoraj ne deluje, in vsi naenkrat spoznajo, da celotno podjetje balansira na njem.

To je zgodba o enem takem sistemu in o tem, kako smo ga zamenjali. Stranka je regionalni distributer — nekaj tisoč izdelkov, eno skladišče, okoli trideset ljudi v skladišču in pisarni. Anonimizirali smo jih in zaokrožili številke, a oblika projekta je natanko taka, kot se je zgodila. Če sedite na starajočem se sistemu, ki se ga bojite dotakniti, je tako približno videti razumna posodobitev od znotraj.

V tej zgodbi ni junaškega ponovnega pisanja, ni vikenda, ko smo pritisnili stikalo in je bilo vse novo. Celotno bistvo — tisto, kar je vse skupaj omogočilo — je, da se ni zgodilo nič dramatičnega. Tovornjaki so se še naprej nalagali. Skladišče je komaj opazilo, kako se mu pod nogami premika tla. To je cilj pri delu s starimi sistemi in vredno je razumeti, zakaj.

Položaj: sistem, ki ga skupaj drži spomin ene osebe

Skladišče je delovalo na sistemu po meri, zgrajenem okoli leta 2013 s strani razvijalca, ki je že davno odšel. Opravljal je osnovno delo — sledil zalogam, tiskal prevzemne sezname, pošiljal naročila ven — in na običajen dan je to počel povsem v redu. Težava pravzaprav ni bila programska oprema. Težava je bilo vse, kar je zraslo okoli programske opreme, da je ostala uporabna.

V desetletju je ekipa potiho zgradila senčni sistem iz lepilnega traku: preglednico za stanja zalog, ki jih je programska oprema kazala napačno, drugo preglednico, ki je prvo usklajevala z resničnostjo, skupino na WhatsAppu, kjer je vodja skladišča označeval artikle, ki jih sistem ni mogel prikazati, in natisnjeno mapo obvoznih rešitev, ki so si jih morali novi zaposleni zapomniti. Nič od tega ni bilo zapisano na enem mestu. Vse je živelo v glavi vodje operativa, mirne ženske v petdesetih, ki je bila tam štirinajst let in je bila tako rekoč sama dokumentacija.

Ko nas je lastnik prvič poklical, ni bilo zaradi sesutja. Bilo je zato, ker je napovedala, da se želi čez dve leti upokojiti, on pa je preračunal in spoznal, da bo na dan, ko bo odšla, znaten del tega, kako skladišče dejansko deluje, odšel skozi vrata z njo. To je pogostejši sprožilec posodobitve kot katerakoli tehnična okvara: ne to, da se sistem pokvari, ampak spoznanje, da ljudje, ki ga krpajo, ne bodo tu večno.

Tveganje ni bil stari sistem. Tveganje je bilo, da je znanje, ki ga je ohranjalo pri življenju, živelo v eni osebi, ki se je želela upokojiti.
tisto, česar lastnik sprva ni mogel izreči na glas

Simptomi, ki jih je vse prenehalo opažati

Ko smo prva dva dneva zgolj opazovali delo skladišča, so bili stroški starega sistema povsod — a so postali tako običajni, da jih nihče več ni označeval kot težave. Številkam o zalogah so zaupali, da so napačne za predvidljiv obseg, zato je vsako veliko naročilo šlo skozi ročno fizično preverjanje 'za vsak slučaj'. Novi zaposleni so potrebovali tedne, da so postali uporabni, ker je bil velik del dela nezapisano znanje. Sistem pa je tekel na tako starem operacijskem sistemu, da ga ni bilo več mogoče posodabljati, na omrežju, za katerega je lastnik v sebi vedel, da je varnostni incident, ki čaka, da se zgodi.

  • Natančnost zalog se je gibala okoli 80 %, zato so zaposleni pri vsem pomembnem stanja ročno dvojno preverjali — ure na dan, potiho.
  • Logika prevzemnih seznamov ni zmogla obvladati trenutne razporeditve skladišča, zato so prevzemniki hodili po poti, ki jim jo je narekovala mapa, ne zaslon.
  • Mesečna uskladitev zalog je dvema osebama vzela večji del treh dni.
  • Administrativni del programske opreme je lahko poganjal le en računalnik in če bi crknil, ni nihče imel jasnega načrta.
  • Nič ni bilo povezano s spletnim kanalom naročil, ki ga je podjetje dodalo leta 2019 — ta naročila so ročno prepisovali.
Kot skladiščne pisarne s starim bež namiznim računalnikom, na katerem teče zastarela programska oprema, obkrožen z ročno napisanimi lepljivimi listki, natisnjeno mapo obvoznih rešitev in skodelico kave, topla dokumentarna svetloba
Pravi sistem ni bil na zaslonu — bil je v lepljivih listkih, v mapi in v spominu ene osebe.

Česa namerno nismo storili

Očiten korak — tisti, ki bi ga predlagalo veliko ponudnikov — je kupiti veliko gotovo platformo za upravljanje skladišča, čez en vikend vse migrirati in v ponedeljek zjutraj izklopiti stari sistem. Videli smo, da ta pristop dovolj pogosto gre narobe, da ga za tako podjetje ne bi predlagali. Nenaden prehod predpostavlja, da stari sistem v celoti razumete. Z desetletjem nedokumentiranih obvoznih rešitev ga ni razumel nihče — niti ljudje, ki so ga upravljali.

Drugi mamljiv korak je popolno ponovno pisanje po meri od začetka: vzemite vse, kar stari sistem počne, ga na novo in čisto zgradite ter zaženete novega. Sliši se odgovorno in je klasičen način, kako zapraviti leto in velik proračun, medtem ko podjetje zamrznjeno čaka na zamenjavo, ki se vedno znova zamika. Težava je, da mora ponovno pisanje pred zagonom reproducirati vsako posebnost — vključno s tistimi posebnostmi, za katere se nihče ne spomni, da so nosilne, dokler ne manjkajo.

Zato nismo storili ne enega ne drugega. S starim sistemom nismo ravnali kot z nečim, kar je treba porušiti, ampak kot z nečim, kar je treba obkrožiti in počasi zamenjati — eno zmožnost za drugo, pri čemer je stari sistem ves čas tekel spodaj kot varnostna mreža. Brez sijaja. Hkrati edina različica tega, ki zanesljivo deluje.

Pristop: stari sistem zadavite, ne razstrelite ga

Med razvijalci obstaja uveljavljeno ime za ta vzorec — pristop 'davitelja', poimenovan po ovijalki, ki raste okoli drevesa, dokler ne more stati sama, izvirno drevo pa potiho izgine. Starega sistema ne zamenjate z eno potezo. Okoli njega gradite nove kose, nanje enega za drugim preusmerjate resnično delo in pustite, da se stari sistem krči, dokler ni tisto, kar ostane, dovolj majhno, da ga izklopite, ne da bi kdo zadrževal dih.

Za to skladišče je to pomenilo vnaprej se dogovoriti o zaporedju: katero zmožnost bomo olupili prvo, katero pustili za konec in — kar je ključno — pravilo, da se na vsaki stopnji, če bi se nov kos slabo obnašal, lahko isti dan takoj vrnemo na stari način. Noben korak ni smel biti točka brez vrnitve vse do samega konca. To eno pravilo je lastniku omogočilo, da je spal, in skladiščnemu osebju omogočilo, da je projektu zaupalo, namesto da bi se branilo pred njim.

  1. 1
    Popišite, kaj sistem dejansko počne
    Tri tedne spremljanja skladišča in pisarne, da smo dokumentirali pravi potek dela — vključno z vsako preglednico in vsako obvozno rešitvijo iz mape. Zapisali smo sistem, ki je obstajal, ne tistega, ki ga je opisovala izvirna specifikacija.
  2. 2
    Pred premikom popravite podatke
    Izvedli smo popolno fizično inventuro in po njej očistili bazo izdelkov. Migracija umazanih podatkov v nov sistem vam da le hitrejši napačen odgovor — zato je to potekalo, preden se je podatkov dotaknila kakršna koli nova programska oprema.
  3. 3
    Najbolj boleč kos zamenjajte prvi
    Zgradili smo nov modul za sledenje in štetje zalog, ga poganjali vzporedno s starim in mu zaupali šele, ko so se številke cel mesec ujemale z resničnostjo.
  4. 4
    Povežite kanale, ki jih je stari sistem prezrl
    Nato smo spletni kanal naročil neposredno povezali z novimi podatki o zalogah in odpravili ročno prepisovanje, ki je potiho obstajalo od leta 2019.
  5. 5
    Olupite preostanek, nato upokojite staro jedro
    Prevzem, poročanje in usklajevanje so prešli eden za drugim. Ko na starem sistemu skoraj nič resničnega ni več teklo, smo ga naposled izklopili — do tedaj že nepomemben dogodek.
Čista ilustracija v slogu diagrama, na kateri nova moderna programska plast raste okoli in postopoma nadomešča staro škatlo zastarelega sistema, s puščicami, ki kažejo, kako se delo preusmerja kos za kosom, urejen ploski slog
Obkrožiti, preusmeriti, skrčiti: stari sistem je tekel naprej kot varnostna mreža, dokler od njega ni bilo odvisno skoraj nič resničnega.

Deli, ki so bili resnično težki

Nepošteno bi bilo to predstaviti kot gladek potek. Tehnično delo je bilo lažji del. Težki deli so bili človeški in postopkovni in to so isti težki deli skoraj pri vsakem projektu s starim sistemom.

Nedokumentirano pravilo, ki je pokvarilo funkcijo

Dva tedna po zagonu novega modula zalog vzporedno so se številke za eno kategorijo izdelkov razšle in nismo videli, zakaj. Po dnevu brskanja je vodja operative skoraj mimogrede omenila, da se nekateri razsuti artikli štejejo na paleto, ne na kos, in da je imel stari sistem vgrajeno skrito pretvorbo, ki je nihče desetletje ni dokumentiral. Tega ni bilo v nobeni specifikaciji. Živelo je le v njeni glavi in v mapi. Iz same kode tega nikoli ne bi našli — le s poganjanjem obeh sistemov drug ob drugem in z vprašanjem, zakaj se ne ujemata. To je celoten argument za vzporedno delovanje v eni anekdoti.

Kako pridobiti skladiščno osebje

Skladiščno osebje je preživelo več kot eno dobronamerno 'izboljšavo', ki jim je poslabšala dan, zato je projekt sprejelo z razumljivim nezaupanjem. Tega nismo premagovali s predstavitvijo. Izbrali smo prevzemnika, ki se je najglasneje pritoževal, eno jutro sedli k njemu in prevzemni zaslon prezidali okoli tega, kako je dejansko hodil po skladišču. Takoj ko je v sobi za odmor začel zagovarjati nov sistem, so mu sledili drugi. Pri projektih s starimi sistemi najostrejši kritik, ko ga pridobite, postane vaš najboljši zagovornik — in tega z dopisom ne kupite.

Nikoli nismo trdili, da je nov sistem boljši. Pustili smo, da so se številke mesec dni ujemale z resničnostjo, nato pa pustili najglasnejšega skeptika, da to pove namesto nas.
kako se je uvedba dejansko uveljavila

Rezultati, leto pozneje

Previdni smo pri bleščečih številkah pred in po, ker vsako podjetje meri drugače in vaše se bodo razlikovale. Zato jih jemljite kot iskrene, zaokrožene številke iz enega projekta, ki naj pokažejo obliko donosa in ne obljube. Glavno sporočilo se manj tiče katerega koli posameznega kazalnika in bolj tega, kaj je prenehalo biti strašljivo.

KazalnikPredPoUčinek
Natančnost zalog~80 %~98 %Ročna dvojna preverjanja večinoma odpravljena
Mesečna uskladitev~3 dni, 2 osebi~pol dneva, 1 osebaPribližno teden dela nazaj vsak mesec
Spletna naročila, ročno prepisanaVsakoNobenoKanal zdaj neposredno napaja zaloge
Čas, da nov zaposleni postane uporabenVeč tednovVeč dniZnanje je zdaj v programski opremi
En sam krhek administrativni računalnikDaNeTeče kjerkoli, ustrezno varnostno kopiran
Zaokrožene, ilustrativne številke iz ene posodobitve skladišča v dvanajstih mesecih.

Številka, ki je lastnika najbolj zanimala, ni bila na nobenem grafikonu. Bila je to, da se ob dejanski upokojitvi vodje operative — kot se je izkazalo, nekaj mesecev prej, kot je bilo načrtovano — skladišče sploh ni zamajalo. Znanje, ki je nekoč živelo v njeni glavi, je zdaj živelo v sistemu, na katerem se je lahko kdorkoli usposobil v nekaj dneh. Izvirni razlog za celoten projekt je bil potiho in popolnoma rešen.

Svetlo moderno skladišče, kjer osebje uporablja ročne čitalnike in tablice, s stensko zaslonsko ploščo, ki prikazuje jasne nadzorne plošče zalog v živo, mirno in urejeno, topla naravna svetloba
Leto pozneje: isto skladišče, ista ekipa, a znanje zdaj živi v sistemu namesto v spominu ene osebe.

Če sedite na takem sistemu

Večina lastnikov s starajočim se ključnim sistemom hkrati čuti isti dve stvari: tvegano ga je obdržati in strašljivo ga je zamenjati. Oboje je res. Napaka je pustiti, da zmaga drugi strah, kajti tveganje starega sistema ne ostaja enako — vsako leto potiho raste, saj se ljudje, ki ga razumejo, bližajo odhodu, platforma, na kateri teče, pa se vse bolj oddaljuje od podpore.

Ni vam treba izbirati med 'pustite pri miru in molite' in 'stavite podjetje na veliko ponovno pisanje'. Srednja pot — obkrožite ga, zamenjajte ga kos za kosom, starega obdržite kot mrežo, dokler si nov ne pridobi zaupanja — je počasnejša in veliko manj junaška. Hkrati je to različica, ki ne zaustavi tovornjakov. Če si iz vse te zgodbe velja zapomniti eno stvar, je to prav ta.

Imate star sistem, ki se ga bojite dotakniti?

Če vam skladišče ali nadzor zalog teče na programski opremi, ki ji ne morete več povsem zaupati — ali je ne razumete več v celoti — si jo poglejmo skupaj. Popisali bomo, kaj dejansko počne, in vam pokazali pot z najnižjim tveganjem do moderne zamenjave, kos za kosom.

Poglejte, kako posodabljamo skladiščne sisteme

Pogosta vprašanja

Ali res lahko zamenjate skladiščni sistem brez izpada?
Da — to je celoten razlog za pristop kos za kosom namesto nočnega prehoda. Stari sistem teče naprej kot varnostna mreža, medtem ko se vsaka nova zmožnost zgradi, vzporedno preizkusi in si pridobi zaupanje šele, ko se ujema z resničnostjo. Vse do samega konca nikoli ne nastopi trenutek, ko se skladišče ne bi moglo vrniti na stari način. Narejeno tako, osebje migracijo komaj opazi.
Zakaj ne bi preprosto kupili gotovega sistema za upravljanje skladišča?
Včasih je to pravi odgovor in to bomo povedali, če je tako. A gotove platforme predpostavljajo, da se vaši procesi ujemajo z njihovimi predpostavkami. Podjetje z desetletjem specifičnih, nedokumentiranih obvoznih rešitev pogosto ugotovi, da standardni izdelek ustreza 80 %, s preostalimi 20 % pa se bori — prav s tistim delom, ki je pomemben. To odločitev se splača sprejeti premišljeno, ne samodejno.
Kako dolgo traja tak projekt?
Za distributerja z enim skladiščem te velikosti računajte raje v mesecih kot v tednih — ta konkretni je trajal približno leto od začetka do konca, namerno brez hitenja. Metoda kos za kosom menja hitrost za varnost: na papirju je počasnejša od nenadnega prehoda, a ne nosi tveganja zamrznjenega podjetja, ki čaka na zamenjavo, ki se nikoli zares ne zažene.
Kateri je najpomembnejši prvi korak?
Iskrena dokumentacija tega, kaj trenutni sistem dejansko počne — vključno z vsako preglednico in obvozno rešitvijo, ki je zrasla okoli njega — in nato čiščenje podatkov. Oboje se zgodi, preden se zgradi kakršna koli nova programska oprema. Skok naravnost k novi tehnologiji je način, kako projekti posodobitve podedujejo vse stare težave in so zanje okrivljeni.
Kaj se zgodi z znanjem, ki živi v glavi enega ključnega zaposlenega?
Njegov zajem je eden glavnih ciljev, ne stranski učinek. S spremljanjem te osebe in kodiranjem njenih nedokumentiranih pravil v nov sistem podjetje preneha biti odvisno od katerega koli posameznika, da skladišče deluje. V tem primeru se je ključni zaposleni upokojil med projektom, delovanje pa se je nadaljevalo brez motenj — kar je natanko izid, zaradi katerega je bila posodobitev izvedena.
Have a nice day
Have a nice day
Uredništvo

Have a nice day je programski studio, ki malim in srednjim podjetjem pomaga pri digitalizaciji — avtomatizacija, umetna inteligenca in programska oprema po meri, ki deluje v vsakdanjem poslovanju, ne le na prosojnicah.

Sorodne storitve