Modernizacija 12 godina starog skladišnog sustava bez zaustavljanja kamiona
Distributer je vodio cijelo skladište na softveru starijem od nekih svojih zaposlenika. Evo kako smo ga zamijenili dio po dio — bez velikog naglog prelaska, bez izgubljenih pošiljki — i što bismo opet učinili na isti način.

Najopasniji softver u malom poduzeću je onaj koji radi. Ne onaj neispravan alat na koji se svi žale — taj se na kraju zamijeni. Opasan je onaj dvanaest godina star sustav koji nitko ne voli, ali svi o njemu ovise, onaj koji se pokreće s bež kućišta u kutu i vodi skladište još od prije nego što je polovica tima zaposlena. Radi. Sve do dana kad gotovo prestane raditi i kad svi odjednom shvate da cijelo poslovanje balansira na njemu.
Ovo je priča o jednom takvom sustavu i o tome kako smo ga zamijenili. Klijent je regionalni distributer — nekoliko tisuća proizvodnih artikala, jedno skladište, oko trideset ljudi u skladištu i uredu. Anonimizirali smo ih i zaokružili brojke, ali oblik projekta točno je onakav kakav se dogodio. Ako sjedite na zastarjelom sustavu kojeg se bojite dirnuti, ovako otprilike izgleda razumna modernizacija iznutra.
U ovoj priči nema herojskog ponovnog pisanja, nema vikenda kad smo pritisnuli prekidač i sve je bilo novo. Cijela poanta — ono što je sve to učinilo uspješnim — jest da se ništa dramatično nije dogodilo. Kamioni su se i dalje utovarivali. Skladište je jedva primijetilo kako mu se tlo pomiče pod nogama. To je cilj kod rada sa starim sustavima i vrijedi razumjeti zašto.
Situacija: sustav koji drži na okupu pamćenje jedne osobe
Skladište je radilo na prilagođenom sustavu izgrađenom oko 2013. od strane programera koji je odavno otišao. Obavljao je osnovni posao — praćenje zaliha, ispis lista za komisioniranje, slanje narudžbi van — i običnog dana radio je sasvim dobro. Problem zapravo nije bio softver. Problem je bilo sve ono što je naraslo oko softvera kako bi ga se održalo upotrebljivim.
Tijekom desetljeća tim je potiho izgradio sustav iz sjene od ljepljive trake: tablicu za stanja zaliha koja je softver pogrešno prikazivao, drugu tablicu koja je prvu usklađivala sa stvarnošću, WhatsApp grupu u kojoj je voditelj skladišta označavao artikle koje sustav nije mogao prikazati i tiskanu mapu zaobilaznih rješenja koju su novi zaposlenici morali napamet naučiti. Ništa od toga nije bilo zapisano na jednom mjestu. Sve je živjelo u glavi voditeljice operacija, smirene žene u pedesetima koja je tu bila četrnaest godina i bila je, funkcionalno, sama dokumentacija.
Kad nas je vlasnik prvi put nazvao, nije to bilo zbog pada sustava. Bilo je to zato što je ona objavila da želi otići u mirovinu za dvije godine, a on je izračunao i shvatio da će dana kad ona ode, znatan dio toga kako skladište zapravo funkcionira izaći kroz vrata s njom. To je češći okidač za modernizaciju od bilo kakvog tehničkog kvara: ne to da se sustav pokvari, nego spoznaja da ljudi koji ga krpaju neće biti tu zauvijek.
“Rizik nije bio stari sustav. Rizik je bio to što je znanje koje ga je održavalo na životu živjelo u jednoj osobi koja je htjela otići u mirovinu.”
Simptomi koje su svi prestali primjećivati
Kad smo prva dva dana proveli samo promatrajući rad skladišta, troškovi starog sustava bili su posvuda — ali postali su toliko uobičajeni da ih nitko više nije označavao kao probleme. Za brojke o zalihama pretpostavljalo se da su pogrešne za predvidiv iznos, pa je svaka velika narudžba prolazila ručnu fizičku provjeru 'za svaki slučaj'. Novim zaposlenicima trebali su tjedni da postanu korisni jer je velik dio posla bio nezapisano znanje. A sustav je radio na operacijskom sustavu toliko starom da se više nije mogao zakrpati, na mreži za koju je vlasnik u sebi znao da je sigurnosni incident koji samo čeka da se dogodi.
- Točnost zaliha kretala se oko 80%, pa su zaposlenici ručno dvostruko provjeravali stanja za sve važno — satima dnevno, tiho.
- Logika lista za komisioniranje nije mogla obraditi trenutni raspored skladišta, pa su komisioneri hodali rutom koju im je mapa govorila, a ne zaslon.
- Mjesečno usklađivanje zaliha oduzimalo je dvjema osobama gotovo tri dana.
- Samo je jedno računalo moglo pokretati administracijski dio softvera i da je crknulo, nitko nije imao jasan plan.
- Ništa nije bilo povezano s mrežnim kanalom narudžbi koji je tvrtka dodala 2019. — te su se narudžbe ručno prepisivale.

Što namjerno nismo učinili
Očiti potez — onaj koji bi mnogi dobavljači predložili — jest kupiti veliku gotovu platformu za upravljanje skladištem, prebaciti sve preko jednog vikenda i isključiti stari sustav u ponedjeljak ujutro. Vidjeli smo da taj pristup dovoljno puta krene po zlu da ga ne bismo predložili za ovakvo poduzeće. Naglo presijecanje pretpostavlja da potpuno razumijete stari sustav. Uz desetljeće nedokumentiranih zaobilaznih rješenja, nitko nije razumio — čak ni oni koji su ga vodili.
Drugi primamljiv potez jest potpuno prilagođeno ponovno pisanje od nule: uzmete sve što stari sustav radi, izgradite ga čisto iznova i pošaljete novi. To zvuči odgovorno i klasičan je način da spalite godinu dana i velik proračun dok poslovanje čeka, zamrznuto, na zamjenu koja se stalno odgađa. Nevolja je u tome što ponovno pisanje mora reproducirati svaku osobitost prije nego što može krenuti — uključujući one osobitosti za koje se nitko ne sjeća da su ključne dok ne nedostaju.
Stoga nismo učinili nijedno. Prema starom sustavu nismo se odnosili kao prema nečemu što treba srušiti, nego kao prema nečemu što treba okružiti i polako zamijeniti — jednu sposobnost po jednu, uz stari sustav koji je cijelim putem ispod radio kao sigurnosna mreža. Neglamurozno. Ujedno i jedina inačica ovoga koja pouzdano funkcionira.
Pristup: zadavite stari sustav, nemojte ga raznijeti
Među programerima postoji uvriježen naziv za ovaj obrazac — pristup 'davitelja', nazvan po penjačici koja raste oko stabla dok se ne uzmogne uspraviti sama, a izvorno stablo potiho nestaje. Stari sustav ne zamijenite jednim potezom. Gradite nove dijelove oko njega, usmjeravate stvarni rad na njih jedan po jedan i puštate stari sustav da se smanjuje dok ono što ostane ne bude dovoljno maleno da se isključi bez da itko zadrži dah.
Za ovo skladište to je značilo unaprijed dogovoriti redoslijed: koju ćemo sposobnost prvu oguliti, koju ostaviti za kraj i — što je presudno — pravilo da u svakoj fazi, ako bi se novi dio loše ponašao, možemo se istog dana smjesta vratiti na stari način. Nijednom koraku nije bilo dopušteno biti točka bez povratka sve do samog kraja. To jedno pravilo omogućilo je vlasniku da spava i omogućilo je skladišnom osoblju da vjeruje projektu umjesto da se protiv njega bori.
- 1Mapirajte što sustav zapravo radiTri tjedna praćenja skladišta i ureda kako bismo dokumentirali stvarni tijek rada — uključujući svaku tablicu i svako zaobilazno rješenje iz mape. Zapisali smo sustav koji je postojao, a ne onaj koji je opisivala izvorna specifikacija.
- 2Popravite podatke prije nego što ih premjestiteProveli smo potpuno fizičko brojanje zaliha i prema njemu očistili bazu podataka proizvoda. Migracija prljavih podataka u novi sustav samo vam daje brži pogrešan odgovor — pa je ovo došlo prije nego što je ijedan novi softver dotaknuo podatke.
- 3Prvo zamijenite najbolniji dioIzgradili smo novi modul za praćenje i brojanje zaliha, pokretali ga usporedno sa starim i povjerili mu se tek kad su se brojke poklapale sa stvarnošću puni mjesec.
- 4Povežite kanale koje je stari sustav ignoriraoZatim smo mrežni kanal narudžbi izravno spojili na nove podatke o zalihama, dokrajčivši ručno prepisivanje koje je tiho postojalo od 2019.
- 5Ogulite ostatak, pa povucite staru jezgruKomisioniranje, izvještavanje i usklađivanje prešli su jedno po jedno. Kad na starom sustavu gotovo ništa stvarno više nije radilo, naposljetku smo ga isključili — dotad već nebitan događaj.

Dijelovi koji su bili istinski teški
Bilo bi nepošteno prikazati ovo kao glatko. Tehnički rad bio je lagan dio. Teški dijelovi bili su ljudski i proceduralni i isti su ti teški dijelovi gotovo na svakom projektu sa starim sustavom.
Nedokumentirano pravilo koje je pokvarilo funkciju
Dva tjedna od početka usporednog rada novog modula zaliha, brojke su za jednu kategoriju proizvoda počele odstupati i nismo mogli vidjeti zašto. Nakon dana kopanja, voditeljica operacija je gotovo usput spomenula da se određeni rasuti artikli broje po paleti, a ne po komadu, i da je stari sustav imao skrivenu ugrađenu konverziju koju nitko desetljeće nije dokumentirao. Toga nije bilo ni u jednoj specifikaciji. Živjelo je samo u njezinoj glavi i u mapi. Nikad to ne bismo pronašli samo iz koda — jedino pokretanjem oba sustava jedan uz drugi i pitanjem zašto se ne slažu. To je cijeli argument za usporedni rad u jednoj anegdoti.
Pridobivanje skladišnog osoblja
Skladišno osoblje preživjelo je više od jednog dobronamjernog 'poboljšanja' koje im je pogoršalo dan, pa su projekt dočekali s razumnom sumnjom. Nismo se s time borili prezentacijom. Odabrali smo komisionera koji se najglasnije žalio, sjeli s njim jedno jutro i pregradili zaslon za komisioniranje oko toga kako je on zapravo hodao skladištem. Čim je počeo braniti novi sustav u sobi za odmor, ostali su ga slijedili. Na projektima sa starim sustavima najžešći kritičar, jednom pridobiven, postaje vaš najbolji zagovornik — a to ne možete kupiti dopisom.
“Nikad nismo tvrdili da je novi sustav bolji. Pustili smo da se brojke mjesec dana poklapaju sa stvarnošću, a onda smo pustili najglasnijeg skeptika da to kaže umjesto nas.”
Rezultati, godinu dana poslije
Oprezni smo s blistavim brojkama prije i poslije jer svako poduzeće mjeri drukčije i vaše će se razlikovati. Stoga ih shvatite kao iskrene, zaokružene brojke s jednog projekta, koje pokazuju oblik povrata, a ne obećanje. Glavna poruka manje se tiče bilo koje pojedinačne mjere, a više toga što je prestalo biti zastrašujuće.
| Mjera | Prije | Poslije | Učinak |
|---|---|---|---|
| Točnost zaliha | ~80% | ~98% | Ručne dvostruke provjere uglavnom nestale |
| Mjesečno usklađivanje | ~3 dana, 2 osobe | ~pola dana, 1 osoba | Otprilike tjedan rada natrag svaki mjesec |
| Mrežne narudžbe ručno prepisane | Svaka | Nijedna | Kanal sada izravno hrani zalihe |
| Vrijeme da novi zaposlenik postane koristan | Nekoliko tjedana | Nekoliko dana | Znanje je sada u softveru |
| Jedno krhko administracijsko računalo | Da | Ne | Radi bilo gdje, uredno sigurnosno kopirano |
Brojka do koje je vlasniku bilo najviše stalo nije bila ni na jednom grafikonu. Bilo je to to da kad je voditeljica operacija zaista otišla u mirovinu — nekoliko mjeseci ranije nego planirano, kako se pokazalo — skladište se nije ni zaljuljalo. Znanje koje je nekoć živjelo u njezinoj glavi sada je živjelo u sustavu na kojem se bilo tko mogao obučiti u nekoliko dana. Izvorni razlog za cijeli projekt potiho je i potpuno riješen.

Ako sjedite na ovakvom sustavu
Većina vlasnika sa zastarjelim ključnim sustavom istodobno osjeća iste dvije stvari: rizično ga je zadržati, a zastrašujuće ga je zamijeniti. Oboje je istina. Pogreška je pustiti da pobijedi drugi strah, jer rizik starog sustava ne ostaje na istome — tiho raste svake godine, kako se ljudi koji ga razumiju približavaju odlasku, a platforma na kojoj radi sve više izlazi iz podrške.
Ne morate birati između 'pustite ga na miru i molite se' i 'kladite se na tvrtku velikim ponovnim pisanjem'. Srednji put — okružite ga, zamijenite ga dio po dio, zadržite stari kao mrežu dok novi ne zasluži povjerenje — sporiji je i daleko manje herojski. Ujedno je to inačica koja ne zaustavlja kamione. Ako iz cijele ove priče treba zapamtiti jednu stvar, to je ta.
Imate stari sustav kojeg se bojite dirnuti?
Ako vam skladište ili kontrola zaliha rade na softveru kojem više ne možete potpuno vjerovati — ili ga više potpuno ne razumijete — pogledajmo ga zajedno. Mapirat ćemo što zapravo radi i pokazati vam put s najmanjim rizikom do moderne zamjene, dio po dio.
Pogledajte kako moderniziramo skladišne sustaveČesta pitanja
Možete li doista zamijeniti skladišni sustav bez prekida rada?
Zašto jednostavno ne kupiti gotov sustav za upravljanje skladištem?
Koliko traje ovakav projekt?
Koji je najvažniji prvi korak?
Što se događa sa znanjem koje živi u glavi jednog ključnog zaposlenika?

Have a nice day softverski je studio koji pomaže malim i srednjim poduzećima u digitalizaciji — automatizacija, umjetna inteligencija i softver po mjeri koji radi u svakodnevnom poslovanju, a ne samo na slajdovima.