COCO slår till igen

Vi borde nog sluta ge COCO idéer.
Det förra experimentet skulle vara nog.
En riktig applikation.
Riktig navigering.
Användare.
Roller.
Databaser.
Språk.
Bevis.

En respektabel fallstudie.
En ren slutsats.
Sedan visade någon det: Logistics in Motion.
Det var nog misstaget.


Det började med tre lager
Inget särskilt spännande.
Tre DEMO-lager.
  • Kalsdorf bei Graz.
  • Wiener Neustadt.
  • Klagenfurt.
Syntetisk data.
Ingen kundinformation.
Inget produktionslager.

Precis den typ av miljö där ingenting viktigt ska hända.
Sedan valdes det första lagret.
Och applikationen fick kontext.
Från det ögonblicket hade varje skärm ytterligare en fråga knuten till sig.

Tillhör detta fortfarande samma lager?
Ändrar språket bara gränssnittet?
Förblir processen på samma steg?
Stämmer lagret fortfarande?
Pekar dokumentreferensen fortfarande på rätt händelse?
Ser operatören exakt det som behövs för nästa åtgärd?


Plötsligt var den intressanta delen inte längre skärmen.
Det var kontinuiteten mellan skärmarna.

COCO tenderar att göra det.

Logistik är inte en samling skärmar
Utifrån sett kan lagermjukvara se bedrägligt enkel ut.
Varor anländer.
De lagras.
Någon beställer dem.
De plockas.
De skickas.
Klart.

Förutom att det finns en hel operativ värld gömd mellan anlänt och skickat.
Förväntad.
Mottagen.
Kontrollerad.
Tillgänglig.
Reserverad.
Flyttad.
Plockad.
Blockerad.
Korrigerad.
Skickad.
Reviderad.


Den fysiska rörelsen spelar roll.
Men det är statusövergången som gör den rörelsen begriplig för mjukvaran.
Och när de två verkligheterna slutar stämma överens får någon till slut en dålig dag.

Flow.

Ett lager är lättare att förstå när rörelsen är synlig, inte bara registrerad.
Det är därför vårt logistikarbete aldrig egentligen börjat med menyer, instrumentpaneler, eller teknik.
Det börjar med det materiella Flow.

Var kommer informationen in?
Var förändras den?
Var kan den gå förlorad?

Var tvingas någon fråga en annan person vad som hände?
Var blir ett manuellt steg tyst den svagaste länken i en annars automatiserad process?
Ibland är svaret ett nytt gränssnitt.
Ibland en integration.
Ibland en skanner.
Ibland helt enkelt en bättre statusmodell.

Mer mjukvara är inte automatiskt bättre mjukvara.
Målet är inte automatisering för sin egen skull.
Målet är en process som förblir begriplig.

Control. Clarity. Flow.

Processen börjar innan den första bokningen.
Innan godsmottagning.
Innan plockning.
Innan lagerrörelse.
Innan den första transaktionen.
Flow ställer en mycket grundläggande fråga:
Vilket lager arbetar vi i?
Det låter nästan trivialt.
Det är det inte.
Lagerkontext hör till allt som följer.
Lager.
Dokument.
Platser.
Plockning.
Omflyttningar.
Revisionshistorik.
Undantag.

Processen kan se helt frisk ut medan den körs i fel kontext.
Det är precis den typen av problem som en skärmdump sällan avslöjar.
Och precis den typen av gräns som COCO gillar att ifrågasätta.

Språk är enkelt tills det inte är det
Tyska.
Engelska.
Kroatiska.
Norska.
Och andra.

En användarprofil definierar de tillgängliga språken.
Operatören byter språk medan applikationen är igång.
Gränssnittet ändras omedelbart.
Affärsprocessen får inte det.
Den skillnaden är viktig.
Lagret flyttar sig inte för att ordet för lager ändrades.
Plockordern startar inte om för att användaren valde ett annat språk.
En reservation försvinner inte.
Ett undantag tillhör inte plötsligt en annan transaktion.
Processen förblir där den är.
Endast dess representation förändras.
Det låter uppenbart.

Tills man inser hur många applikationer behandlar ett språkbyte nästan som en ny session.

En flerspråkig affärsapplikation borde inte göra det.
Presentationsläget kan ändras.
Affärsläget måste förbli stabilt.
Det gör språkbyte till ett förvånansvärt användbart regressionstest.
En liten funktion.
En mycket bra brottlinje.
COCO gillar brottlinjer.

Steg för steg börjar applikationen samla historik
Varor anländer.
Processen går framåt.
Godsmottagningen bokas.
Lagret förändras.
Lagerstatusen speglar den nya verkligheten.
Plockningen börjar.
Lagersaldo blir reserverat.
Operatören får en uppgift.

En mobil vy reducerar hela processen till det som spelar roll i just det ögonblicket:
Position.
Lagerplats.
Kvantitet.
SSCC.
Operatör.
Inget mer.
Inget mindre.
Det är viktigt.
Det mobila gränssnittet är inte en andra affärsprocess.
Det är en annan vy av samma process.
Lagerapplikationen får veta allt.
Plockaren behöver inte.
Clarity betyder inte alltid att visa mer information.
Ibland betyder clarity disciplinen att dölja nästan allt.

Sedan skannar någon fel plats
Här blir ett logistikflöde mer intressant än en funktionslista.
Den förväntade platsen är en sak.
Den skannade platsen är en annan.
Flow stannar.
Kraschar inte.
Stannar.
Det är en skillnad.
Processtatusen förblir synlig.
Det påverkade lagersaldot förblir begripligt.
Undantaget blir explicit.

Kontextuell hjälp förklarar vad som är relevant för den aktuella situationen.
Användaren löser avvikelsen.
Processen fortsätter.
Det här ögonblicket säger mer om operativ mjukvara än flera sidor med happy-path-skärmdumpar.
Verklig logistik är inte svårt när allt är korrekt.
Verklig logistik blir svårt när något är nästan korrekt.
Ett användbart system döljer inte det bakom en grön instrumentpanel.
Det ger undantaget en status.

En anledning.
En historik.
Och en väg framåt.


Dokument minns det människor glömmer

Allteftersom flödet fortskrider börjar referenser ackumuleras.
ASN.
Godsmottagning.
Lagerrörelse.
Plockning.
Utleverans.
Flow.
Den intressanta delen är inte att dokument existerar.
Den intressanta delen är att de berättar samma historia som processen.
Varför är detta lagersaldo här?
Vilken mottagning introducerade det?
Vilken operation reserverade det?
Vilken plockning förbrukade det?
Vilken leverans flyttade ut det?
Löstes ett undantag före nästa steg?
Vilket var det aktiva lagret?
Vad hände innan det nuvarande läget?
När status och dokumentation produceras av samma process blir spårbarheten lättare att lita på.
När de inte gör det börjar människor så småningom rekonstruera historiken.
Vanligtvis i Excel.
Vanligtvis under press.
Vanligtvis efter att något redan gått fel.
COCO föredrar bevis före det ögonblicket.
Tydligen reser COCO också
Det fanns en annan liten förändring mellan körningarna.
Ubuntu hade sin körning.
Red Hat Enterprise Linux 10 tog nästa.
COCO fortsatte.
Ingen ceremoni.
Inget speciellt "Red Hat-läge".
Inget omskrivet flöde.
Inget bekvämt förenklat test.
Samma Flow.
Annan mark under det.
En tidigare COCO-körning hade redan testat applikationen på Ubuntu Linux.
Den nuvarande flyttade till Red Hat Enterprise Linux 10.
Annan skrivbordsmiljö.
Andra systembibliotek.
Annan paketering.
Annan driftsmiljö.
Samma lager.
Samma affärslägen.
Samma lagerövergångar.
Samma språkbyten.
Samma undantagslogik.
Samma bevis.
Det är ett ganska bra sätt att testa plattformsoberoende mjukvara.

Annonsera inte att det är plattformsoberoende. Flytta det. Se sedan vad som går sönder.

Språkstatus.
Lagerkontext.
Dialogbeteende.
Timing.
Teman.
Processövergångar.
Undantagshantering.
Bevis.
Operativsystem har förvånansvärt kreativa sätt att exponera antaganden.

Ubuntu exponerade några.
Red Hat exponerar andra.
Det är användbart.

Eftersom plattformsoberoende teknik inte är förmågan att starta den körbara filen två gånger.

Det är förmågan att ändra miljön utan att ändra processens innebörd.
En lageroperatör borde inte bry sig om applikationen körs på Ubuntu eller Red Hat.
En plockorder borde inte bry sig heller.
Inte heller en revisionsspår.
Om plattformsskillnader börjar ändra affärsbeteendet är mjukvaran inte verkligt plattformsoberoende.
Den är bara portabel.
COCO verkar betydligt mer intresserad av den första definitionen.
Det är vi också.

COCO bestämmer inte vad korrekt logistik betyder
Den här delen är viktig.
COCO blir inte en lagerexpert bara för att det kan följa ett lagerflöde.
Människor definierar fortfarande korrekthet.
Människor bestämmer när lager blir tillgängligt.
Människor definierar vad en blockerad leverans betyder.
Människor bestämmer vem som får korrigera en kvantitet.
Människor definierar vilken rörelse som kräver en revisionsspår.
Människor bestämmer hur en giltig undantagslösning ser ut.
Människor bestämmer när en leverans är verkligt komplett.
COCOs jobb är annorlunda.

Upprepa.
Observera.
Jämföra.
Minnas.
Lämna bevis.


Gör det sedan igen efter att mjukvaran ändras.
Och igen.
Och igen.
Utan att bli uttråkad.
Utan att bestämma att förra veckans resultat förmodligen fortfarande gäller.
Utan att hoppa över det irriterande undantaget för att lunchen är om tolv minuter.
Den glamorösa framtiden för AI-testning innehåller en förvånansvärd mängd upprepning.
Vi betraktar det som en funktion.

Bevis förändrar samtalet
Traditionell testning slutar ofta med en helt rimlig mening:
"Det fungerade när jag testade det."

COCO är intresserad av nästa mening.

Vad fungerade exakt?
Vilket lager?
Vilken användare?
Vilket språk?
Vilket processläge?
Vilken sekvens?
Vilket dokument?
Vilket lagervärde?
Vad hände omedelbart före teststeget?
Vad ändrades omedelbart efteråt?
Kan en annan ingenjör förstå resultatet utan att fråga personen som utförde testet?
Det är där regressionstestning blir mer än upprepad klickning.
En skärm kan vara korrekt medan processen är fel.
Ett plockfönster kan se perfekt ut medan lagret redan drivit iväg.
Ett dokument kan existera medan tillståndet som borde ha skapat det aldrig inträffade.
En applikation kan visa 100 % medan en revisionsspår tyst är oense.
COCO följer Flow eftersom det är i Flow som dessa motsägelser blir synliga.

Någonstans mellan Control och Flow
Det finns en intressant symmetri här.
Bra logistikmjukvara försöker minska osäkerheten inom en verksamhet.
Bra testning försöker minska osäkerheten om mjukvaran som kör den.
Den ena frågar:
Var är artikeln?
Den andra frågar:
Hur vet vi att mjukvaran fortfarande vet det?
Den ena frågar:
Var denna rörelse slutförd?
Den andra frågar:
Vilket bevis visar att statusen ändrades korrekt?
Den ena frågar:
Kan nästa skift fortsätta?
Den andra frågar:
Kan nästa ingenjör förstå vad som hände?
Olika frågor.
Samma instinkt.
Gör statusen synlig.
Bevara resonemanget.
Minska mängden kunskap som bara finns i någons huvud.
Kanske är det kopplingen vi inte ursprungligen planerade.

Teknisk excellens utan banderollen
Ingen klickar på en Engineering Excellence-knapp.
Det finns ingen.
Och det borde det förmodligen inte finnas.
Teknisk excellens visar sig indirekt.
Lagerkontexten överlever ett språkbyte.
Samma process överlever en annan Linux-plattform.
En lagerrörelse förblir spårbar.
En mobil plockare ser exakt det som behövs och inget annat.
Ett undantag avbryter processen utan att förstöra dess status.
Hjälpfönstret förklarar den aktuella kontexten istället för att visa generisk dokumentation.
Dokumentkedjan stämmer överens med den operativa sekvensen.
Nästa ingenjör kan förstå vad som hände utan att fråga personen som råkade vara där.
Det finns gott om teater tillgänglig i modern mjukvara.
AI kan generera imponerande demonstrationer.
Instrumentpaneler kan animeras.
Siffror kan röra sig.
Videor kan se väldigt övertygande ut.
Inget av det bevisar att två lageroperationer inte tyst kan producera ett felaktigt resultat.
Inget av det bevisar att ett undantag fortfarande kan rekonstrueras veckor senare.
Inget av det bevisar att lagerarbetaren, speditören, och utvecklaren tittar på samma operativa sanning.

Teknisk excellens börjar på en mindre fotogen plats.

Med konsekvens.
Med bevis.
Med gränser.


Med viljan att hålla de tråkiga delarna tråkiga.
Osynlig tillförlitlighet producerar sällan den mest dramatiska skärmdumpen.
Tills man medvetet börjar leta efter den.

Control. Clarity. Flow.
Control är att veta vilket lager, vilken process, och vilket läge som är aktivt.
Clarity är att förstå vad som förändrades, när det förändrades, och varför.
Flow är att låta verksamheten fortsätta utan att förlora historien bakom den.
Det fungerar för logistik.
Det fungerar för mjukvarutestning.
Det fungerar förvånansvärt bra för teknik i sig.
Det första Flow-experimentet gav COCO Administration.
Användare.
Roller.
Databaser.
Språk.
Sedan gav någon det ett lager.
Sedan flera språk.
Sedan mobil plockning.
Sedan lager.
Sedan omflyttningar.
Sedan undantag.
Sedan dokument.
Sedan ett annat operativsystem.
Vid denna punkt borde vi förmodligen sluta lägga till saker.
Det kommer vi förmodligen inte att göra.

Control. Clarity. Flow.

Ubuntu hade sin tur.

Red Hat har den nuvarande.

Flow fortsätter att röra sig.

COCO fortsätter att titta.
Och någonstans mitt i den sista körningen blev det uppenbart att det finns ytterligare en fråga som väntar bakom denna.

Vi vet vad det är.
COCO vet vad det är.
Du vet inte.
Än.


Vi skulle kunna berätta för dig.

Men då kanske du slutar kolla om en ny Insiders-artikel har dykt upp.
Och det skulle förstöra experimentet.

Publicerad: 28.08.2026