Opasna iluzija brzog kodiranja s umjetnom inteligencijom
Kratkoročno ubrzanje skriva dugoročni tehnički dug
Svi smo barem jednom svjedočili spektakularnim demonstracijama u kojima moderni AI asistent generira cijele komponente, funkcije pa i čitave mini-aplikacije u svega nekoliko sekundi. Obećanje koje nam se plasira je kristalno jasno i naizgled neodoljivo: brže kodiranje, drastično manje uloženog truda i neusporedivo brža isporuka na tržište. Za industriju koja je vječno u zaostatku s rokovima, to zvuči kao sveti gral. Međutim, u surovom svijetu svakodnevnog softverskog inženjerstva, ta brzina gotovo uvijek dolazi s prikrivenom, ali vrlo stvarnom cijenom. Ta cijena je tehnički dug koji naplaćuje svoje visoke kamate tek kasnije u razvojnom ciklusu, često baš onda kada je projekt najranjiviji.
Prevladavajuća priča
Tehnološka industrija trenutno doslovno bruji o tome kako generativna umjetna inteligencija eksponencijalno povećava, udvostručuje ili čak utrostručuje produktivnost programera na svim razinama. Alati kao što su GitHub Copilot, ChatGPT, Claude i razni drugi LLM asistenti više se ne predstavljaju samo kao zgodni dodaci u razvojnim okruženjima, već kao ultimativno rješenje za ubrzanje svakog aspekta razvoja softvera. Prevladavajuća priča koju guraju tehnološki divovi jest da je problem "pisanja koda" zapravo riješen te da će softver od sada nastajati brzinom misli.
Posljedično, očekivanja menadžmenta i klijenata su naglo porasla. Ako AI može napisati stotine linija koda u sekundi, pretpostavka je da će se projekti koji su nekad trajali mjesecima sada završavati u rekordnom roku, u svega nekoliko tjedana. U takvoj atmosferi, svaki otpor programera koji upozoravaju na potencijalne rizike često se tumači kao nepotrebni pesimizam ili strah od gubitka posla. Mjerenje "produktivnosti" počinje se svoditi na broj isporučenih linija koda ili brzinu zatvaranja zadataka na ploči, a ne na stvarnu vrijednost i stabilnost onoga što je isporučeno.
Zašto je ta priča pogrešna ili nepotpuna
Osnovni problem leži u fundamentalnom nerazumijevanju onoga što softverski inženjering zapravo jest. Pisanje potpuno novog koda, odnosno "tipkanje", u stvarnosti predstavlja samo manji dio posla svakog ozbiljnog programera. Prava kompleksnost našeg posla nalazi se u dubinskom razumijevanju kompliciranih poslovnih pravila, u postavljanju održive arhitekture, u integraciji različitih sustava te u predviđanju i rješavanju onih nebrojenih i skrivenih rubnih slučajeva s kojima se stvarni korisnici susreću.
Kada umjetna inteligencija samostalno generira velike blokove koda koji programer nije duboko i kritički promislio, istog trenutka stvara se instantni tehnički dug. Taj kod je impresivan i često izgleda potpuno točno na prvi, letimičan pogled. Međutim, problem je što modeli jezika nemaju stvarni kontekst o specifičnostima vašeg cijelog sustava, niti razumiju vaše dugoročne poslovne ciljeve. Zbog toga taj generirani kod može sadržavati suptilne logičke greške, skrivene sigurnosne propuste, slabe performanse u specifičnim uvjetima ili arhitektonske nedostatke koji izlaze na vidjelo tek u produkcijskom okruženju, pod stvarnim opterećenjem.
Osim toga, postoji i problem "vlasništva" nad kodom. Kada sami napišete kompleksan algoritam, vi poznajete svaku varijablu i razumijete zašto ste donijeli određene kompromise. Kada vam AI izbaci gotovu funkciju od pedeset linija i vi ju samo prihvatite, vi zapravo ne razumijete taj kod u potpunosti. U trenutku kada se dogodi kritična greška – a dogodit će se – otklanjanje te greške u tuđem, odnosno strojnom kodu kojeg niste temeljito analizirali redovito traje znatno duže nego da ste taj dio sustava od početka samostalno, polako i pažljivo razvijali.
Posljedice u stvarnom svijetu
Ako se kao industrija nastavimo oslanjati isključivo na sirovu brzinu generiranja koda, vrlo brzo ćemo u potpunosti izgubiti iz vida ono najvažnije – kvalitetu, sigurnost i dugoročnu održivost softvera.
Prva ozbiljna posljedica već je vidljiva u mnogim timovima. Senior programeri, čije je vrijeme izuzetno dragocjeno, provodit će sve više i više vremena u iscrpljujućim revizijama tuđeg (strojnog) koda. Umjesto da rješavaju kompleksne, arhitektonske probleme i osmišljavaju inovativna rješenja koja donose stvarnu poslovnu vrijednost, oni će postati glorificirani lektori koji love suptilne halucinacije i logičke rupe koje je AI posijao u kodnoj bazi.
S druge strane, posljedice za mlađe programere su još opasnije. Juniori bi se vrlo lako mogli naći u zamci gdje postaju potpuno ovisni o pametnim alatima. Kopiranjem i ljepljenjem gotovih rješenja bez dubinskog razumijevanja temeljnih koncepata, paradigmi i obrazaca dizajna, zaustavlja se njihov stvarni profesionalni razvoj. Generacija programera koja nauči "lijepiti" AI kod, a ne razumije zašto nešto radi onako kako radi, dugoročno predstavlja ogroman rizik za stabilnost cijele industrije.
U konačnici, tvrtke i organizacije koje optimiziraju isključivo za brzinu isporuke mogle bi se suočiti s pravim noćnim morama. Kroz nekoliko godina, imat će kodne baze koje su toliko zamršene, neoptimizirane i pune skrivenih "zakrpa" da će njihovo održavanje postati nemoguće skupo. Svaka nova nadogradnja tražit će sve više vremena, a tehnički dug će ugušiti svaku priliku za inovaciju.
Završni stav
Umjetna inteligencija nesumnjivo je donijela revoluciju u naše alate i način rada. AI asistenti su izvrsni, neumorni pomoćnici koji nam mogu ukloniti dosadne, repetitivne zadatke i ponuditi brzi uvid u dokumentaciju. No, oni su ujedno i očajno loši arhitekti. Brzina pisanja koda nikada ne smije postati važnija od njegovog dubinskog razumijevanja, sigurnosti i dugoročne održivosti. Ako dopustimo da nas zaslijepi iluzija instantne produktivnosti, današnju uštedu u vremenu sutra ćemo platiti dvostruko, a ponekad i trostruko skuplje kroz lavinu tehničkog duga. Pravi inženjering se ne mjeri brzinom kucanja po tipkovnici, već sposobnošću izgradnje sustava koji traju.
Komentar objavljen na portalu Umjetna Inteligencija Blog by ShtefAI, autor: Shtef



