Esettanulmány

Egy 12 éves raktárrendszer korszerűsítése úgy, hogy a kamionok meg sem álltak

Egy nagykereskedő a teljes raktárát egy olyan szoftverrel működtette, amely idősebb volt néhány munkatársánál. Így cseréltük le darabról darabra — nagy bumm nélkül, elveszett szállítmányok nélkül —, és ezt csinálnánk újra ugyanígy.

Have a nice dayHave a nice day12 perc olvasás
Egy 12 éves raktárrendszer korszerűsítése úgy, hogy a kamionok meg sem álltak

Egy kisvállalkozás legveszélyesebb szoftvere az, amelyik működik. Nem a hibás eszköz, amelyre mindenki panaszkodik — azt előbb-utóbb úgyis lecserélik. A veszélyes a tizenkét éves rendszer, amelyet senki sem szeret, de mindenki tőle függ; amely a sarokban álló bézs számítógépről indul, és már azelőtt vitte a raktárt, hogy a csapat felét felvették volna. Működik. Egészen addig a napig, amíg majdnem nem, és mindenki egyszerre döbben rá, hogy az egész cég ezen egyensúlyoz.

Ez az egyik ilyen rendszer története, és azé, hogyan cseréltük le. Az ügyfél egy regionális nagykereskedő — pár ezer termékvonal, egyetlen raktár, mintegy harminc fő a terület és az iroda között. Anonimizáltuk őket, és kerekítettük a számokat, de a projekt alakja pontosan olyan, amilyen valójában volt. Ha egy öregedő rendszeren ül, amelyhez fél hozzányúlni, nagyjából így néz ki belülről egy józan korszerűsítés.

Ebben a történetben nincs hősies újraírás, nincs hétvége, amikor átkapcsoltunk egy kapcsolót, és minden új lett. Az egész lényeg — ami működővé tette — az, hogy semmi drámai nem történt. A kamionok tovább rakodtak. A raktár alig vette észre, hogy mozdul alatta a padló. Ez a cél a régi rendszerekkel végzett munkában, és érdemes megérteni, miért.

A helyzet: egyetlen ember emlékezetén nyugvó rendszer

A raktár egy 2013 körül egy rég továbbállt fejlesztő által épített egyedi rendszeren futott. Ellátta az alapfeladatot — követte a készletet, nyomtatta a komissiózási listákat, kitolta a rendeléseket az ajtón —, és egy átlagos napon ezt jól tette. A probléma valójában nem a szoftver volt. A probléma mindaz volt, ami a szoftver köré nőtt, hogy használható maradjon.

Egy évtized alatt a csapat csendben egy árnyékrendszert épített ragasztószalagból: egy táblázatot a készletszámokra, amelyeket a szoftver rosszul számolt, egy második táblázatot, amely az elsőt összevetette a valósággal, egy WhatsApp-csoportot, ahol a raktárvezető jelezte azokat a tételeket, amelyeket a rendszer nem tudott ábrázolni, és egy nyomtatott dossziét a kerülőmegoldásokról, amelyet az új belépőknek fejből kellett tudniuk. Mindebből semmi sem volt egy helyen leírva. Az üzemvezető fejében élt, egy nyugodt, ötvenes éveiben járó nő fejében, aki tizennégy éve volt ott, és aki gyakorlatilag maga volt a dokumentáció.

Amikor a tulajdonos először felhívott minket, nem összeomlás miatt tette. Azért, mert a nő bejelentette, hogy két éven belül nyugdíjba akar menni, ő pedig kiszámolta, és rájött, hogy aznap, amikor a nő elmegy, vele együtt kisétál az ajtón annak jelentős része, ahogyan a raktár valójában működik. Ez gyakoribb kiváltó oka a korszerűsítésnek, mint bármilyen műszaki hiba: nem az, hogy a rendszer elromlik, hanem a felismerés, hogy az emberek, akik foltozgatják, nem lesznek itt örökké.

A kockázat nem a régi rendszer volt. A kockázat az volt, hogy az életben tartó tudás egyetlen emberben élt, aki nyugdíjba akart menni.
amit a tulajdonos eleinte nem tudott hangosan kimondani

A tünetek, amelyeket mindenki észrevenni elfelejtett

Amikor az első két napunkat csak azzal töltöttük, hogy néztük, hogyan dolgozik a raktár, a régi rendszer költségei mindenütt ott voltak — de annyira megszokottá váltak, hogy már senki sem jelölte meg őket problémaként. A készletszámokról megbízhatóan tudni lehetett, hogy kiszámítható mértékben rosszak, így minden nagy rendelés átment egy kézi fizikai ellenőrzésen „a biztonság kedvéért”. Az új belépőknek hetekbe telt, mire hasznossá váltak, mert a munka nagy része íratlan hagyomány volt. A rendszer pedig egy annyira régi operációs rendszeren futott, hogy már nem lehetett foltozni, egy olyan hálózaton, amelyről a tulajdonos magában tudta, hogy bekövetkezésre váró biztonsági incidens.

  • A készletpontosság 80% körül mozgott, így a dolgozók kézzel ellenőrizték a számokat mindennél, ami fontos volt — naponta órákat, csendben.
  • A komissiózási lista logikája nem bírt el a raktár jelenlegi elrendezésével, így a komissiózók azon az útvonalon jártak, amelyet a dosszié mondott, nem a képernyő.
  • A hó végi készletegyeztetés két embernek majdnem három napot vett el.
  • A szoftver adminisztrációs oldalát csak egyetlen gép tudta futtatni, és ha tönkrement volna, senkinek sem volt világos terve.
  • Semmi sem kapcsolódott az online rendelési csatornához, amelyet a cég 2019-ben adott hozzá — azokat a rendeléseket kézzel gépelték újra.
Egy raktáriroda sarka egy régi bézs asztali számítógéppel, amelyen elavult szoftver fut, kézzel írt öntapadós cetlikkel, a kerülőmegoldások nyomtatott dossziéjával és egy bögre kávéval körülvéve, meleg dokumentarista fény
A valódi rendszer nem a képernyőn volt — az öntapadós cetlikben, a dossziéban és egyetlen ember emlékezetében.

Amit szándékosan nem tettünk

A kézenfekvő lépés — amelyet sok szállító ajánlott volna — egy nagy, dobozos raktárkezelő platform megvásárlása, mindennek egyetlen hétvége alatti átmigrálása, és a régi rendszer hétfő reggeli kikapcsolása. Elégszer láttuk félresikerülni ezt a megközelítést ahhoz, hogy egy ilyen cégnek ne javasoljuk. A nagy bumm feltételezi, hogy teljesen érted a régi rendszert. Egy évtizednyi dokumentálatlan kerülőmegoldással senki sem értette — még azok sem, akik üzemeltették.

A második csábító lépés a teljes, nulláról induló egyedi újraírás: vedd mindazt, amit a régi rendszer csinál, építsd újra tisztán, indítsd el az újat. Felelősségteljesen hangzik, és klasszikus módja annak, hogy elégess egy évet és egy nagy költségvetést, miközben a cég megfagyva vár egy pótlásra, amely folyton csúszik. A baj az, hogy egy újraírásnak minden furcsaságot reprodukálnia kell, mielőtt elindulhatna — beleértve azokat a furcsaságokat is, amelyekről senki sem emlékszik, hogy teherhordók, amíg hiányozni nem kezdenek.

Így egyiket sem tettük. A régi rendszerre nem lebontandó dologként tekintettünk, hanem olyanként, amelyet körül kell venni és lassan lecserélni — egyszerre egy képességet, miközben a régi rendszer végig alatta fut biztonsági hálóként. Nem látványos. És egyben az egyetlen olyan változata ennek, amely megbízhatóan működik.

A megközelítés: fojtsd meg a régi rendszert, ne robbantsd fel

A fejlesztők között van egy jól bevált neve ennek a mintának — a „fojtogató” megközelítés, egy kúszónövényről elnevezve, amely körülnő egy fát, amíg meg nem tud állni a saját lábán, az eredeti pedig csendben eltűnik. A régi rendszert nem egy mozdulattal cseréled le. Új darabokat építesz köré, egyenként rájuk irányítod a valódi munkát, és hagyod, hogy a régi rendszer összezsugorodjon, amíg ami marad, elég kicsi lesz ahhoz, hogy kikapcsold anélkül, hogy bárki visszafojtaná a lélegzetét.

Ennél a raktárnál ez azt jelentette, hogy előre megállapodtunk egy sorrendben: melyik képességet fejtjük le először, melyiket hagyjuk a végére, és — döntő módon — egy szabályban, hogy minden szakaszban, ha az új darab rosszul viselkedik, még aznap egyenesen vissza tudtunk térni a régi módra. Egyetlen lépés sem lehetett a visszafordíthatatlanság pontja egészen a legvégéig. Egyedül ez a szabály engedte aludni a tulajdonost, és ez tette lehetővé, hogy a raktár dolgozói bízzanak a projektben ahelyett, hogy ellene feszültek volna.

  1. 1
    Térképezd fel, mit csinál valójában a rendszer
    Három hét a terület és az iroda árnyékolásával, hogy dokumentáljuk a valódi munkafolyamatot — beleértve minden táblázatot és dossziébeli kerülőmegoldást. Azt a rendszert írtuk le, amely létezett, nem azt, amelyet az eredeti specifikáció leírt.
  2. 2
    Hozd rendbe az adatokat, mielőtt áthelyezed
    Teljes fizikai készletszámlálást végeztünk, és ahhoz képest tisztítottuk meg a terméket adatbázist. A piszkos adat új rendszerbe migrálása csak gyorsabb rossz választ ad — ezért ez azelőtt jött, hogy bármilyen új szoftver hozzáért volna az adatokhoz.
  3. 3
    Cseréld le először a legfájdalmasabb darabot
    Megépítettük az új készletkövető és -számláló modult, párhuzamosan futtattuk a régivel, és csak akkor bíztunk benne, amikor a számok egy teljes hónapon át egyeztek a valósággal.
  4. 4
    Kösd be a csatornákat, amelyeket a régi rendszer figyelmen kívül hagyott
    Ezután az online rendelési csatornát közvetlenül az új készletadatokhoz kötöttük, megszüntetve a kézi újragépelést, amely 2019 óta csendben létezett.
  5. 5
    Fejtsd le a többit, majd vonuljon nyugdíjba a régi mag
    A komissiózás, a riportolás és az egyeztetés egyenként átkerült. Amikor szinte semmi valódi nem futott már a régi rendszeren, végre kikapcsoltuk — akkorra már nem-esemény.
Tiszta, diagramszerű illusztráció arról, ahogy egy új, modern szoftverréteg körülnő egy régi, elavult dobozt, és fokozatosan lecseréli, nyilakkal, amelyek a darabonként átirányított munkát mutatják, lapos szerkesztőségi stílus
Vedd körül, irányítsd át, zsugorítsd: a régi rendszer biztonsági hálóként futott tovább, amíg szinte semmi valódi nem függött tőle.

A részek, amelyek tényleg nehezek voltak

Tisztességtelen lenne simának beállítani. A műszaki munka volt a könnyebbik rész. A nehéz részek emberiek és eljárásbeliek voltak, és majdnem minden régirendszer-projektben ugyanazok a nehéz részek.

A dokumentálatlan szabály, amely elrontott egy funkciót

Két héttel azután, hogy az új készletmodult párhuzamosan futtattuk, az egyik termékkategóriánál elcsúsztak a számok, és nem láttuk, miért. Egy napnyi ásás után az üzemvezető szinte mellékesen megemlítette, hogy bizonyos ömlesztett tételeket raklaponként számoltak, nem darabonként, és a régi rendszerbe egy rejtett átváltás volt beépítve, amelyet egy évtizede senki sem dokumentált. Egyetlen specifikációban sem szerepelt. Csak az ő fejében és a dossziéban élt. Pusztán a kódból sosem találtuk volna meg — csak abból, hogy a két rendszert egymás mellett futtattuk, és megkérdeztük, miért nem egyeznek. Ez a párhuzamos futtatás teljes érve egyetlen anekdotában.

A terület megnyerése

A raktár dolgozói túléltek már nem egy jó szándékú „fejlesztést”, amely rosszabbá tette a napjukat, ezért ésszerű gyanakvással fogadták a projektet. Nem prezentációval szálltunk szembe vele. Kiválasztottuk a komissiózót, aki a leghangosabban panaszkodott, leültünk vele egy délelőttre, és úgy építettük újra a komissiózási képernyőt, ahogyan ő valójában bejárta a területet. Amint a teakonyhában elkezdte védeni az új rendszert, a többiek követték. A régirendszer-projekteknél a legkeményebb kritikus, ha megnyered, a legjobb szószólóddá válik — és ezt körlevéllel nem tudod megvenni.

Sosem érveltünk azzal, hogy az új rendszer jobb. Hagytuk, hogy a számok egy hónapig egyezzenek a valósággal, aztán hagytuk, hogy a leghangosabb kételkedő mondja ki helyettünk.
hogyan fogadták el valójában a bevezetést

Az eredmények egy év múltán

Óvatosak vagyunk a fényes előtte-utána számokkal, mert minden cég másként mér, és az önöké eltérő lesz. Kezeljék hát ezeket egyetlen projektből származó őszinte, kerekített számokként, amelyek a megtérülés alakját hivatottak megmutatni, nem ígéretet. A lényeg kevésbé bármelyik egyes mutatóról szól, sokkal inkább arról, mi szűnt meg ijesztő lenni.

MérőszámElőtteUtánaHatás
Készletpontosság~80%~98%A kézi kettős ellenőrzések jórészt megszűntek
Hó végi egyeztetés~3 nap, 2 fő~fél nap, 1 főHavonta nagyjából egy hétnyi munka megtérül
Kézzel újragépelt online rendelésekMindegyikNullaA csatorna most közvetlenül tölti a készletet
Új belépő hasznossá válási idejeTöbb hétTöbb napA hagyomány most a szoftverben van
Egyetlen törékeny admin gépIgenNemBárhol fut, megfelelően mentve
Kerekített, szemléltető számok egyetlen raktárkorszerűsítésből tizenkét hónap alatt.

A szám, amely a tulajdonost a legjobban érdekelte, egyetlen diagramon sem szerepelt. Az volt, hogy amikor az üzemvezető tényleg nyugdíjba ment — mint kiderült, néhány hónappal a tervezett előtt —, a raktár meg sem rezdült. A tudás, amely valaha az ő fejében élt, most egy olyan rendszerben élt, amelyre bárkit be lehetett tanítani néhány nap alatt. Az egész projekt eredeti oka csendben, teljesen megoldódott.

Egy világos, modern raktár, ahol a dolgozók kézi szkennereket és tableteket használnak, a falon egy képernyő tiszta, élő készlet-irányítópultokat mutat, nyugodt és rendezett, meleg természetes fény
Egy évvel később: ugyanaz a raktár, ugyanaz a csapat, de a tudás most a rendszerben él, nem egyetlen ember emlékezetében.

Ha egy ilyen rendszeren ül

A legtöbb tulajdonos, akinek öregedő alaprendszere van, egyszerre érzi ugyanazt a két dolgot: kockázatos megtartani, és rémisztő lecserélni. Mindkettő igaz. A hiba az, ha hagyjuk, hogy a második félelem győzzön, mert a régi rendszer kockázata nem marad állandó — csendben nő minden évben, ahogy az emberek, akik értik, közelednek a távozáshoz, és a platform, amelyen fut, egyre messzebb sodródik a támogatástól.

Nem kell választani a „hagyd békén és imádkozz” és a „tedd fel a céget egy nagy újraírásra” között. A középút — vedd körül, cseréld le darabonként, tartsd meg a régit hálóként, amíg az új ki nem érdemli a bizalmat — lassabb és sokkal kevésbé hősies. És egyben az a változat, amely nem állítja meg a kamionokat. Ha egyetlen dolgot kell elvinni ebből az egész történetből, az ez.

Van egy régi rendszere, amelyhez fél hozzányúlni?

Ha a raktára vagy a készletkezelése olyan szoftveren fut, amelyben már nem bízik teljesen — vagy amelyet már nem ért teljesen —, nézzük meg együtt. Feltérképezzük, mit csinál valójában, és megmutatjuk a legkisebb kockázatú utat egy modern pótláshoz, darabról darabra.

Nézze meg, hogyan korszerűsítünk raktárrendszereket

Gyakori kérdések

Tényleg le lehet cserélni egy raktárrendszert leállás nélkül?
Igen — pontosan ezért választjuk a darabonkénti megközelítést az éjszakai átállás helyett. A régi rendszer biztonsági hálóként fut tovább, miközben minden új képességet megépítünk, párhuzamosan tesztelünk, és csak akkor bízunk meg benne, amikor egyezik a valósággal. Egészen a legvégéig egyetlen pillanat sincs, amikor a raktár ne tudna visszatérni a régi módhoz. Így csinálva a terület alig veszi észre a migrációt.
Miért ne vegyenek egyszerűen egy dobozos raktárkezelő rendszert?
Néha az a helyes válasz, és ha így van, ezt meg is mondjuk. A dobozos platformok azonban feltételezik, hogy a folyamataik megegyeznek az ő feltételezéseikkel. Egy cég egy évtizednyi sajátos, dokumentálatlan kerülőmegoldással gyakran azt tapasztalja, hogy a szabványtermék 80%-ban illeszkedik, és a maradék 20%-on küzd vele — épp azon a részen, ami számít. A döntést érdemes tudatosan meghozni, nem alapértelmezésből.
Mennyi ideig tart egy ilyen projekt?
Egy ekkora, egyetlen raktárral rendelkező nagykereskedőnél hetek helyett hónapokban tervezzen — ez a konkrét projekt elejétől a végéig nagyjából egy évig tartott, szándékosan sietség nélkül. A darabonkénti módszer a sebességet biztonságra cseréli: papíron lassabb egy nagy bumm indításnál, de nem hordozza a megfagyott cég kockázatát, amely egy soha igazán le nem szállított pótlásra vár.
Mi a legfontosabb első lépés?
Őszintén dokumentálni, mit csinál valójában a jelenlegi rendszer — beleértve minden táblázatot és kerülőmegoldást, amely köré nőtt —, majd megtisztítani az adatokat. Mindkettő azelőtt történik, hogy bármilyen új szoftver megépülne. Az új technológiára való azonnali ugrás az a mód, ahogyan a korszerűsítési projektek megöröklik az összes régi problémát, és aztán hibáztatják őket értük.
Mi lesz a tudással, amely egyetlen kulcsfontosságú alkalmazott fejében él?
Ennek megragadása az egyik fő cél, nem mellékhatás. Azzal, hogy árnyékoljuk az illetőt, és dokumentálatlan szabályait belekódoljuk az új rendszerbe, a cég megszűnik egyetlen egyéntől függeni ahhoz, hogy a raktár működjön. Ebben az esetben a kulcsfontosságú alkalmazott a projekt során nyugdíjba ment, és a működés fennakadás nélkül folytatódott — pontosan ez az eredmény, amiért a korszerűsítés készült.
Have a nice day
Have a nice day
Szerkesztőség

A Have a nice day egy szoftverstúdió, amely segít a kis- és középvállalkozásoknak a digitalizációban — automatizálás, mesterséges intelligencia és egyedi szoftverek, amelyek a mindennapi működésben működnek, nem csak a diákon.

Kapcsolódó szolgáltatások