AI generirani kod ne rješava problem održavanja sustava
Brže pisanje novog koda stvara eksponencijalno teži dug za čitanje
Svi danas pričaju o tome kako umjetna inteligencija nevjerojatno ubrzava razvoj softvera. Alati poput Copilota, ChatGPT-a, Claudea i raznih drugih asistenata omogućuju programerima da u nekoliko sekundi generiraju stotine, pa i tisuće linija koda. Gledati kako se pred vašim očima ispisuje gotova funkcija ili cijela komponenta doista izgleda kao magija. No, dok se cijela industrija natječe tko će brže izbaciti novu značajku na tržište, zaboravljamo jednu ključnu, neugodnu istinu: programiranje se ne svodi samo na pisanje koda. Ono se puno više, i puno bolnije, svodi na čitanje, razumijevanje i održavanje postojećih kompleksnih sustava. Brzina stvaranja rješava samo jedan, manji dio jednadžbe razvoja softvera.
Prevladavajuća priča
U mainstream narativu, umjetna inteligencija rješava krizu nedostatka programera i visoke cijene razvoja tehnologije. Priča kaže da će uz pomoć moćnih AI alata svaki junior moći raditi posao iskusnog seniora, dok će sami seniori postati takozvani "10x inženjeri" koji mogu potpuno samostalno izgraditi cijele proizvode u rekordnom roku. Kompanije optimistično računaju da će im troškovi razvoja drastično pasti jer će strojevi pisati većinu koda, a ljudi će samo usmjeravati proces.
Investitori i menadžeri obožavaju ovaj narativ jer on obećava eksponencijalni rast produktivnosti. Fokus je gotovo isključivo na brzini kreiranja – koliko brzo možemo od nule doći do prvog funkcionalnog prototipa, MVP-a ili nove funkcionalnosti. U tom entuzijazmu, metrika uspjeha postala je količina isporučenog koda, dok se arhitektura i dugoročna stabilnost guraju u drugi plan.
Zašto je ta priča pogrešna ili nepotpuna
Ova priča fatalno zanemaruje osnovnu prirodu softverskog inženjerstva i stvarni životni ciklus softvera. Mi zapravo ne provodimo većinu svog radnog vremena pišući potpuno novi kod na praznom ekranu. Prema brojnim stručnim istraživanjima, programeri provode i do osamdeset posto svog vremena čitajući, analizirajući i pokušavajući razumjeti postojeći kod, kako bi uopće znali gdje i kako uvesti promjenu.
Kada umjetna inteligencija generira veliku količinu koda u vrlo kratkom vremenu, ona stvara sustav koji nitko u timu u potpunosti ne razumije. Taj kod često izgleda ispravno na prvi pogled i može proći osnovne testove, ali u pozadini može sadržavati suptilne logičke greške, sigurnosne propuste, halucinacije ili neoptimalna arhitektonska rješenja. Umjesto da pažljivo osmisle strukturu i dizajn sustava, programeri postaju iscrpljeni recenzenti ogromnih količina strojno generiranog teksta.
Problem je u tome što je pregledavanje i verifikacija tuđeg – ili u ovom slučaju strojnog – koda kognitivno mnogo zahtjevniji proces od samostalnog promišljenog pisanja istog. Kada dođe vrijeme za dodavanje novih funkcionalnosti, promjenu poslovne logike ili popravljanje kritičnih grešaka u tom generiranom kodu, vrijeme koje smo navodno uštedjeli na samom početku brzo se gubi. Trošimo sate i dane u pokušajima dešifriranja kompleksne, često generičke logike koju nitko od živih inženjera u tvrtki nije zapravo osmislio niti interno usvojio.
Posljedice u stvarnom svijetu
Ako industrija nastavi ovim nepromišljenim tempom, uskoro ćemo se suočiti s neviđenom krizom tehničkog duga. Kompanije koje agresivno koriste umjetnu inteligenciju isključivo za povećanje brzine isporuke uskoro će imati ogromne, napuhane baze koda koje su krhke, nefleksibilne i iznimno skupe za održavanje. Takvi sustavi postat će noćna mora za svakoga tko ih mora naslijediti.
U stvarnom svijetu, senior programeri će provoditi svoje dane frustrirano popravljajući bizarne greške i refaktorirajući nečitljiv, zapetljan "špageti kod" koji su generirali juniori uz nesmotrenu pomoć AI asistenata. Umjesto da rješavaju složene inženjerske probleme, najbolji stručnjaci postat će "čistači" strojnog nereda.
Gubitnici u ovom scenariju bit će dugoročni projekti, startupi koji žele skalirati i tvrtke koje grade ozbiljne, kritične sustave gdje je pouzdanost imperativ. S druge strane, kratkoročni dobitnici bit će samo agencije koje naplaćuju brzu izradu jednostavnih, potrošnih aplikacija po principu "isporuči i zaboravi". U konačnici, prava vrijednost softverskog inženjera na tržištu rada neće biti u tome koliko brzo može ispisati stotine linija koda, već u njegovoj sposobnosti da razumije složene apstrakcije, donosi teške arhitektonske odluke i održava red u sve većem digitalnom kaosu.
Završni stav
Umjetna inteligencija je neosporno fantastičan alat za rješavanje izoliranih problema, edukaciju i automatizaciju rutinskih zadataka, ali nije i ne može biti čarobni štapić za kvalitetan razvoj softvera. Brže generiranje koda samo po sebi ne znači bolji softver; bez strogog nadzora, ono najčešće znači samo brže i masovnije gomilanje tehničkog duga. Prava revolucija u razvoju softvera dogodit će se tek onog trenutka kada AI alati postanu jednako dobri u analizi, refaktoriranju i radikalnom pojednostavljivanju postojećih sustava, kao što su danas dobri u njihovom brzom kompliciranju.
Komentar objavljen na portalu Umjetna Inteligencija Blog by ShtefAI, autor: Shtef


