Lærdom fra felten: Hva fem måneder med KI-assistert utvikling lærte oss om komplekse systemer

Lærdom fra felten: Hva fem måneder med KI-assistert utvikling lærte oss om komplekse systemer

Jul 09, 2026 ai development vibe coding developer tools distributed systems machine learning operations software engineering productivity code generation ai-assisted development

Fra «dyrt feilkjøp» til «game changer»: Vår uventede reise med AI-programmering

La meg være ærlig: de fleste utviklere har et komplisert forhold til AI-kodeverktøy. Vi har sett演示ene, lest suksesshistoriene, kanskje prøvd selv—bare for å bruke uker på å rydde opp i generert kode som så bra ut, men kollapset i praksis.

Vi var der selv. For noen år siden tok vi sjansen på tidlige AI-verktøy og endte opp med måneders oppryddingsarbeid. Koden så ren ut, bestod initielle tester, og misset fullstendig nyansene vi faktisk trengte. Det var en dyr lærdom i hvorfor blind tillit til AI-output er en oppskrift på katastrofe.

Så da vi kom tilbake til AI-verktøy i år, gjorde vi det med passelig forsiktighet. Det vi oppdaget overrasket oss: verktøyene hadde modnet dramatisk, men enda viktigere—hvordan du bruker dem betyr like mye som hvilke verktøy du velger.

Den virkelige aha-opplevelsen: Start smått, tenk stort

Vendepunktet kom fra en uventet kant. En ikke-ingeniør på teamet vårt—markedsansvarlig vår—satte sammen en fungerende database-klient på bare et par timer ved hjelp av en AI-assistent. Det fungerte. Ikke perfekt, men godt nok til å være brukbart.

Det fanget oppmerksomheten vår. Hvis AI kunne hjelpe noen utenfor kjerne-engineering med å levere fungerende kode raskt, hva kunne det da gjøre for faktisk feature-utvikling?

Vi begynte å eksperimentere med å utvide eksisterende systemer. REST API-et vårt trengte nye funksjoner for batch-operasjoner. Den opprinnelige implementasjonen hadde tatt betydelig innsats. Den AI-assisterte utvidelsen? To dager.

Dette var nøkkelinnsikten: AI er ekspert på å utvide og bygge videre på eksisterende kodebaser. Den forstår kontekst, navnekonvensjoner og arkitektoniske mønstre når de allerede er etablert. Der den sliter, er å skape komplekse systemer fra scratch uten det fundamentet.

Det store veddet: Angripe et ti år gammelt problem

Opmuntret av disse seirene bestemte vi oss for å teste grensene. Det var en funksjon brukerne våre hadde etterspurt gjentatte ganger i år—en mulighet vi hadde nedprioritert fordi kompleksiteten virket uoverkommelig med tradisjonelle utviklingsmetoder.

Vi snakker om å legge til avanserte spørringsmuligheter i en distribuert key-value store. Tenk på det som å bringe komplekse SQL-muligheter til et system tradisjonelt optimalisert for enkle, ultrasnelle operasjoner. Med konvensjonelle metoder lå estimatene våre på minimum to år.

Spørsmålet var enkelt: kunne AI-assistert utvikling fundamentalt endre den ligningen?

Fem måneder senere hadde vi svaret. Vi leverte beta-støtte for funksjoner som hadde ligget på TODO-listen vår i over et tiår.

Utviklingsmodellen som faktisk fungerer

Her er hva vi lærte: AI erstatter ikke god teknisk dømmekraft—den forsterker den. Gjennom hele utviklingsprosessen opprettholdt vi den disiplinerte tilnærmingen som alltid har fungert for komplekse systemer:

Start med en overordnet plan. Vit hvor du skal før du begynner å skrive kode, selv om det er en AI som skriver den koden.

Del opp i detaljerte faser. Implementasjonen vår gikk gjennom flere planleggingsrunder, hver med 10-20+ distinkte faser. AI kan hjelpe deg med å utføre disse fasene raskere, men bare hvis du har gjort tenkearbeidet på forhånd.

Test nakkeslående. Dette er der AI-assistanse blir virkelig transformativ. Å generere omfattende testpakker—inkludert distribuerte systemtester som normalt krever enorm innsats—blir gjennomførbart. Vi kunne teste individuelle systemlag i isolasjon før vi tok tak i integrasjon, noe som dramatisk akselererte veien til en fungerende implementasjon.

De komplementære styrkene til ulike AI-modeller

Ikke alle AI-assistenter er like, og vi lærte å utnytte deres distinkte styrker:

Modell A (vi brukte Claude) var ekspert på å opprettholde kontekst gjennom lange utviklingsøkter. Den holdt styr på hvor vi var i den overordnede planen, hva som gjensto, og hvordan ny kode passet inn i den større arkitekturen. Denne modellen var prosjektleder og navigator vår.

Modell B (vi brukte Codex) viste seg bedre på å løse komplekse, fokuserte problemer. Når vi støtte på en spesielt vrien bug eller trengte å implementere en innviklet algoritme, fant denne modellen ofte elegante løsninger raskere enn vi kunne.

Lærdommen? Ikke bind deg til ett verktøy. Bygg en arbeidsflyt som utnytter hver modells styrker.

Async-utfordringen: Der AI fortsatt trenger veiledning

Her er en nyanse som overrasket oss: AI-programmeringsverktøy fungerer bemerkelsesverdig godt med sekvensiell, synkron kode—den typen mønstre de har sett mest av i treningsdata.

Når du kaster asynkrone operasjoner inn i miksen, blir ting interessant. Modellenes mangler noen ganger kontekst som ville vært åpenbar for en erfaren utvikler. Men her er det fine: det er vanligvis greit å korrigere gjennom målrettede prompts og forklaringer.

Det motsatte er også sant. Hastigheten AI kan generere fungerende kode med—spesielt for boilerplate og velkjente mønstre—overgår fullstendig hva et menneske kunne oppnå manuelt. Det er som å ha en utslettelig pair-programmer som aldri blir lei av å skrive enhetstester.

Hva dette betyr for ditt neste prosjekt

Hvis du vurderer AI-assistert utvikling, her er vår ærlige vurdering:

Det fungerer exceptionelt godt når:

  • Du har en eksisterende kodebase med etablerte mønstre
  • Du utvider eller legger til eksisterende funksjonalitet
  • Du kan generere omfattende testpakker (noe vi alltid har ønsket, men aldri hatt kapasitet til)
  • Du opprettholder menneskelig tilsyn og ikke er redd for å iterere på prompts

Det er risikabelt når:

  • Du bygger komplekse systemer fra scratch uten referansearkitektur
  • Domenet krever dyp kontekstuell forståelse AI ikke har blitt eksponert for
  • Du forventer at AI skal forstå implisitte krav uten eksplisitt spesifikasjon

Teknologien har modnet til et punkt der seriøs ingeniørarbeid med AI-assistanse er genuint mulig. Men det er fortsatt et verktøy som krever dyktige hender for å brukes effektivt.

Vibe coding-fordelen

Det er et begrep som vinner fotfeste i utviklermiljøene: "vibe coding." Det fanger noe reelt om hvordan AI endrer utvikleropplevelsen. Når AI håndterer boilerplate og genererer initielle implementasjoner, kan ingeniører bruke mer tid på de kreative, arkitektoniske beslutningene som faktisk betyr noe.

Vår fem måneders reise beviste at dette ikke bare er hype. Vi leverte funksjoner som ville tatt år med tradisjonelle tilnærminger. Enda viktigere: vi opprettholdt kvalitet gjennom hele prosessen—fordi testinfrastrukturen vi bygde med AI-assistanse fanget problemer tidlig.

Fremtiden for komplekse systemutvikling handler ikke om å erstatte ingeniører med AI. Det handler om å gi ingeniører superkrefter—og å lære når man skal stole på verktøyene versus når man skal bruke menneskelig skjønn.

Det er en vibe vi kan være med på.

Read in other languages:

BG EL CS UZ TR SV FI RO PT PL NL HU IT FR ES DE DA ZH-HANS EN