Demoer viser altid det lykkelige forløb. Agenten får en opgave, udfører elleve trin og leverer et resultat, og alle i lokalet nikker. Det spørgsmål, der afgør, om systemet nogensinde kommer i drift, bliver ikke stillet: Hvad sker der, når trin syv fejler?
Svaret afhænger næsten udelukkende af én ting, som ingen leverandør nævner af sig selv – hvordan systemet holder styr på, hvor langt det er nået. Der findes tre grundformer. De koster det samme at bygge for en simpel opgave, og de opfører sig vildt forskelligt den dag, noget går galt.
Løkken
Den første form er almindelig programkode: et forløb, der kører trin for trin, med nogle hvis-så'er undervejs. Tilstanden – hvor langt er vi, hvad har vi fundet ud af – ligger i maskinens hukommelse, mens forløbet kører.
Billedet er kokken, der har opskriften i hovedet. Det går hurtigt, og der er ingen overhead. Men bliver kokken afbrudt midt i det hele, er der ingen, der ved, om saucen har fået salt.
Falder processen på trin syv, er de seks første trins arbejde væk, medmindre nogen udtrykkeligt har gemt det undervejs. Det gør man sjældent i et system, der blev bygget på en eftermiddag som et forsøg, og derefter blev sat i drift, fordi det virkede.
Grafen
Den anden form deler forløbet op i navngivne stationer med pile imellem. En motor kører stationerne én for én og afgør efter hver station, hvilken pil der skal følges. Det, der er fundet ud af undervejs, sendes med videre som en kuvert fra station til station.
Billedet er samlebåndet. Hver station har et navn, en opgave og en kuvert, den modtager og sender videre. Fejler station syv, kører man station syv om med den kuvert, station seks afleverede. De første seks stationer skal ikke gøres igen.
Det er også den eneste af de tre, hvor forgreninger og sammenløb er noget, man tegner frem for noget, man koder sig igennem. Skal tre analyser køre samtidig og samles bagefter, er det to stationer og seks pile. I løkkeformen er det en del af programmet, ingen tør røre igen.
Til gengæld er styringen central. Motoren kender hele forløbet, og hvis nogen skal forstå systemet, skal de forstå motoren.
Loggen
Den tredje form vender det hele om. Man gemmer ikke, hvordan tilstanden ser ud nu. Man gemmer hændelserne: hvad der skete, i hvilken rækkefølge, med tidspunkt. Tilstanden lige nu regnes ud ved at spille hændelserne igennem forfra.
Billedet er kassekladden. En revisor spørger ikke, hvad der står på kontoen – han spørger, hvilke posteringer der ligger bag. Saldoen er et resultat, ikke et faktum.
Der er ingen central motor. Hver del af systemet lytter efter de hændelser, den interesserer sig for, og reagerer på dem. Tre dele må gerne reagere på den samme hændelse uden at kende hinanden.
Prisen er, at ingen enkelt person kan pege på et diagram og sige, hvad systemet gør. Rækkefølgen findes, men den står ikke tegnet nogen steder. Gevinsten er, at systemet kan svare på et spørgsmål, de to andre former ikke kan besvare: Hvorfor gjorde du det?
De tre former side om side
| Løkken | Grafen | Loggen | |
|---|---|---|---|
| Tankegang | opskrift, der køres oppefra og ned | samlebånd med navngivne stationer | kassekladde af hændelser |
| Hvem styrer | forløbet selv, ét sted | en motor, der kender hele kortet | ingen – hver del reagerer selv |
| Hvor tilstanden bor | i hukommelsen, mens det kører | i kuverten, der sendes mellem stationer | i loggen, som aldrig ændres |
| Flere spor ad gangen | besværligt | indbygget | indbygget |
| Ved nedbrud på trin syv | alt arbejde tabt | station syv køres om | spil loggen igennem igen |
| Kan forklare sig bagefter | nej | delvist | ja, fuldt |
| Passer til | korte, ensartede forløb | agenter med flere roller og godkendelsestrin | systemer, der skal kunne revideres |
Prisen betales ikke, når systemet bygges
Det er dét, der gør valget svært at tage alvorligt på forhånd. De tre former koster nogenlunde det samme at bygge, når opgaven er lille. Forskellen dukker op to steder, og begge ligger efter beslutningen.
Det første sted er fejlen. Et forløb på elleve trin, hvor tre af dem kalder ud af huset, fejler regelmæssigt. Ikke fordi noget er i stykker, men fordi et API svarer langsomt, en kvote løber tør, en fil er låst. I løkkeformen betyder hver af de fejl, at hele forløbet køres om – med de omkostninger, det har, hvis trinnene koster penge eller sender noget ud af huset undervejs.
Det andet sted er spørgsmålet. Et halvt år efter kommer nogen og vil vide, hvorfor ordren blev afvist den 4. marts. I løkkeformen findes svaret kun, hvis nogen på forhånd havde forudset spørgsmålet og skrevet det ned. I loggen findes det altid, fordi loggen ikke er en beskrivelse af, hvad der skete – den er dét, der skete.
For en virksomhed i en reguleret branche er det andet punkt ikke en teknisk finesse. Det er forskellen på at kunne svare tilsynet og ikke at kunne.
Det kedelige svar er tit det rigtige
Størstedelen af de opgaver, en mindre virksomhed automatiserer med AI, hører hjemme i løkken. Kør de 300 fakturaer igennem, træk beløbet ud, skriv det i et regneark. Ensartede deltrin, kort forløb, billig genkørsel. At bygge det som en graf af stationer med en hændelseslog under er ikke grundighed, det er en udgift uden modydelse – og et system, den næste medarbejder ikke tør røre.
To spørgsmål afgør det uden at kræve teknisk indsigt:
Hvor mange trin, og hvad koster det at køre dem om? Tre trin, der alle kan gentages gratis, er en løkke. Elleve trin, hvoraf et sender en mail til en kunde, er det ikke.
Skal nogen kunne spørge bagefter? Ikke »ville det være rart«, men: findes der en revisor, et tilsyn, en kunde eller en bestyrelse, der kan komme til at spørge, hvorfor systemet gjorde, som det gjorde? Hvis ja, skal hændelserne gemmes fra første dag. Det kan ikke bygges ind bagefter, for de hændelser, der ikke blev skrevet ned dengang, findes ikke længere.
Hvad du skal spørge din leverandør om
Du behøver ikke kunne tegne arkitekturen. Du skal kunne stille tre spørgsmål og forstå svaret:
Hvor står systemet, hvis det falder midtvejs – forfra, eller ved det trin, det nåede?
Hvis jeg om et år vil vide, hvorfor systemet traf en bestemt afgørelse, hvor slår jeg det op?
Hvad koster det at køre et fejlet forløb om – i kroner og i kald ud af huset?
Får du ikke svar på dem, er det ikke, fordi spørgsmålene er for tekniske. Det er, fordi de ikke er blevet stillet endnu.