Flyt i AI-ens tid: når det blir lettere å lage, men vanskeligere å bevege seg
Christian Neverdal (Telenor) · JavaZone 2026, Room 7 Programsiden på JavaZone
Dette foredraget praktiserer det det forkynner: Christian har bygget en Discord-basert AI-agent ("Kerrigan") som genererer nye slides live gjennom hele talken, på forespørsel eller ut fra det som skjer i salen. Formatet i seg selv er poenget - hele foredraget handler om flyt: ikke bare individuell utvikler-flyt, men flyt for teamet, produktet og hele organisasjonen, og hvorfor AI som kun akselererer ett enkelt steg i en verdikjede (koding) ofte bare flytter køen et annet sted.
Vibecoding som eksperiment, ikke bare lek
Christian har vibecodet en rekke små apper på fritiden - en oversetter-app ("Ambient Translator"), en app som gjenkjenner source-knappen på en fjernkontroll fra et bilde, en universalfjernkontroll-hjelper, og flere til.
Poenget er ikke antallet apper, men hva som er blitt mulig: avstanden fra idé til brukt produkt har kollapset. Der en normal designprosess ville droppet et rart edge-case ("hva om du skal trykke med nesa?"), kan man nå bare spørre AI-en og få et forsøk på svar med det samme.
Et konkret eksempel: i stedet for å lage wireframes eller Figma-skisser til brukertesting, sendte han ut fire fullstendig fungerende oversetter-app-varianter til ekte testere, med ulik kompleksitet og ulike avveininger. Folk vil ha forskjellige ting - "kanskje folk vil ha fire forskjellige typer spagettisaus" - og med AI koster det ham nesten ingenting å la dem faktisk prøve alle fire i stedet for å gjette seg frem til én.
Flyt handler om hele verdikjeden, ikke ett steg
Kjernepåstanden: det er lett å optimalisere individuelle steg i en prosess med AI - Figma har sin AI, Jira har kanskje sin, Slack, IDE-en, GitHub - men ingen tar tak i integrasjonspunktene mellom dem, fordi det er det vanskelige. Og det er akkurat disse punktene som avgjør om noe faktisk flyter.
En kø oppstår overalt hvor noe brukes 100 %: motorveien, trappa opp til andre etasje, studielånet, CPU-en, GPU-en - eller en AI-agent som kjøres på makset kapasitet. En del av det AI har lovet er frigjort tid, men hvis den frigjorte tiden bare fylles opp igjen til 100 % (game jockeying, "token-maxing"), er man tilbake der man startet. Konklusjonen er ikke ny, men blir viktigere: hold gjerne utnyttelsen rundt 80 %, med litt slakk - akkurat som 20 %-ordninger på jobb egentlig er innebygd slakk i forkledning.
flowchart LR
A[Design<br/>egen AI] -. ingen som eier<br/>integrasjonen .-> B[Kode<br/>egen AI]
B -. ingen som eier<br/>integrasjonen .-> C[Review<br/>egen AI]
C -. ingen som eier<br/>integrasjonen .-> D[Release<br/>egen AI]
D -. ingen som eier<br/>integrasjonen .-> E[Drift<br/>egen AI]
style A fill:#2563eb,color:#fff
style B fill:#2563eb,color:#fff
style C fill:#2563eb,color:#fff
style D fill:#2563eb,color:#fff
style E fill:#2563eb,color:#fff
Hvert steg blir raskere hver for seg, men de stiplede overgangene - der ingen har ansvar for helheten - er der flyten faktisk går tapt.
Ti ganger output betyr ti ganger kø et annet sted i systemet - typisk hos den som skal reviewe. "Shift left on AI" betyr å tenke på hele arbeidsflyten fra intensjon til produksjon, ikke bare på hvor fort agenten skriver kode.
Å game metrikker er faktisk helt greit
Et bevisst kontroversielt poeng: hvis noen gamer en metrikk (for eksempel antall pull requests), er den beste responsen ikke å bli sint, men å innse at metrikken ikke fanget det du egentlig ville måle. Løsningen er enten å måle noe som er vanskeligere å game - som brukertilfredshet - eller å måle hele livssyklus-kostnaden i stedet for ett steg i midten.
Hvis ledelsen ønsker å måle noe som "100 deploys om dagen", kan man svare med et motspørsmål: skal vi også spørre folk hvor smertefullt de synes det er å deploye, og hvor mange av de deployene som faktisk har en hensikt? Ofte er svaret nok til at alle skjønner at metrikken bare var en proxy for en intensjon - ikke intensjonen selv.
Menneskelig venting er ikke bortkastet tid
Et gjennomgangstema er at "sitte og gjøre ingenting mens agenten jobber" i seg selv er unaturlig for mennesker. Løsningen trenger ikke være mer produktivitetspress - å spille et raskt spill med en kollega mens agenten jobber er ofte bedre enn å presse den til å gjøre enda et sett med endringer mens du er sliten selv. Ventetiden er dessuten sjelden helt passiv: folk svarer på spørsmål, hjelper andre med avklaringer - de gjør noe nyttig som ellers ville skapt kø.
Konkrete grep i praksis
- Behandle agent-instruksjoner som prompt for samarbeid, ikke bare for koding. Legg for eksempel inn i agentfilen at den skal sjekke antall åpne, gamle pull requests via GitHub sitt API før den begynner på noe nytt
- er inventory full, har du ikke fått mest mulig ut av AI-en enda.
- Bruk sunn fornuft fremfor harde grenser. En regel som "denne filen skal være maks 8000 linjer" blir gamet til 7999 - be heller agenten om ikke å sette nye rekorder (i byggetid, fillengde, kompleksitet), og la den bruke skjønn.
- Vær forsiktig med å pakke alt inn i skript som kjøres fra kaldstart hver gang. Et skript som bygger og kjører alle tester på nytt for hver minste endring er tryggere, men også tregere - noen ganger er det greit at agenten, som et menneske, gjør litt for lite og heller retter opp etterpå.
- "Make it so." Som kaptein Picard i Star Trek delegerte han ikke bare oppgaven, men handlingsrommet til å løse den. Det samme gjelder agenter: skal de faktisk kunne jobbe selvstendig, må de ha fullmakt til å handle innenfor tydelige rammer - ikke spørre om tillatelse for hvert steg.
- Null overlevering er målet. Et cloud-designverktøy krevde eksport av en zip-fil og manuell utpakking for hver ny iterasjon - to klikk med friksjon var nok til å ødelegge flyten helt. Sammenlign med å FTP-synke en fil rett til en live server: alt som ikke er sømløst, skaper venting og frustrasjon, og batchene vokser for å kompensere.
- Stå ikke i veien for andre. Spør først om en "harmløs" endring (f.eks. en avhengighetsoppdatering) kan blokkere noen, før du gjør den - en overraskende full disk på en delt byggeserver er en dyr måte å lære det på.
Feature flags som teknisk gjeld
Feature flags er en gjenganger i mange organisasjoner - men hvert flagg betyr reelt sett to versjoner av systemet, to flagg betyr fire. Christian foreslår å behandle dem eksplisitt som gjeld: gjeld er nyttig så lenge du betaler den ned, med en tydelig eier, utløpsdato og plan for sletting.
Håpet er at bedre AI-drevet selvtillit i utrulling etter hvert gjør mange flagg overflødige - men inntil videre er eksplisitt gjeldshåndtering bedre enn stilltiende opphopning.
Mikrotjenester, batch-størrelse og tautologiske tester
Mikrotjeneste-arkitektur flytter kompleksitet ut av boksene og inn i pilene (nettverkskallene) mellom dem - og ingen tester pilene ordentlig før de er fulle i produksjon. Her er agenter (kombinert med OpenTelemetry-basert sporing) overraskende gode til å feilsøke og selvkorrigere raskere enn et menneske ville gjort.
Uber sin gamle tommelfingerregel er verdt å låne: hvis en god utvikler trenger mer enn to dager på å reimplementere en tjeneste fra spesifikasjonen alene, er den for stor og bør deles opp. Med en agent som referanse gir det samme heuristikken enda mer kraft - trenger agenten mer enn to dager på en tjeneste, er dere sannsynligvis ute og sykler.
En kjent svakhet er at AI-genererte tester ofte blir tautologiske - de
bekrefter bare at en mock ble kalt, ikke at koden faktisk gjør noe riktig.
Mutasjonstesting (som bytter om true/false, </> og lignende i
koden og sjekker at testene faktisk feiler) er en underbrukt, ikke-AI-basert
teknikk for å avsløre nettopp dette - og noe man fint kan be en agent gjøre
selv som en sjekk på sine egne tester.
Kaos-agenten og live-genererte slides
Kodebasen bak talken (inkludert Kerrigan-agenten) vokste til over 8000 linjer og 70 markdown-filer. I stedet for å reorganisere manuelt, fikk en egen agent ved navn "Zero Chaos" som eneste oppdrag å redusere kaos i arbeidsflyten - konsolidere filer, rydde struktur, ingenting annet.
Selve slidedekket ble bygget opp live, tips for tips, gjennom hele talken - et konkret bevis på at avstanden fra idé ("lag en slide om X") til brukt resultat kan kollapse helt ned til sekunder når integrasjonen er god nok.
Nøkkeltakeaways
- Flyt er en egenskap ved hele verdikjeden, ikke et enkeltstående steg - optimaliser integrasjonspunktene, ikke bare de individuelle verktøyene.
- 100 % utnyttelse skaper kø, uansett om det er en motorvei, en agent eller en person - planlegg med slakk.
- Ikke bli sint på at folk gamer en metrikk - bytt til en metrikk som er vanskeligere å game, eller mål hele livssyklusen.
- Deleger handlingsrom til agenter ("make it so"), ikke bare enkeltoppgaver
- men gi dem samtidig fullmakt til å bruke skjønn fremfor rigide skript og harde grenser.
- Null overlevering (ingen zip-filer, ingen manuelle eksportsteg) er idealet - all friksjon i integrasjonen skaper venting og større batcher.
- Behandle feature flags som eksplisitt teknisk gjeld: eier, utløpsdato, sletteplan.