AI generiranje koda nije softverski inženjering
Zašto alati koji pišu kod brže nego ikad neće zamijeniti stvarne programere
Kada se pojavi novi, napredniji model umjetne inteligencije optimiziran za programiranje, cjelokupni internetski prostor gotovo trenutno eksplodira od senzacionalističkih najava o neizbježnom kraju softverskog inženjerstva. Svakodnevno gledamo pomno režirane demonstracije u kojima inteligentni sustav unutar nekoliko sekundi ispisuje stotine linija koda, samostalno gradi jednostavne web aplikacije i nepogrešivo ispravlja osnovne logičke greške. Zbog toga se u javnosti stvara snažan, ali duboko zavaravajući dojam da je programiranje postalo potpuno trivijalno. Vjeruje se da će uskoro apsolutno svatko moći stvoriti kompleksan softver komunicirajući sa strojem pomoću prirodnog jezika. Međutim, ova idilična slika drastično pojednostavljuje grubu stvarnost razvoja modernog softvera. Pisanje koda, koliko god bilo spektakularno kada ga stroj izvodi, predstavlja samo manji, gotovo zanemariv dio cjelokupnog inženjerskog procesa. Temeljni je problem u tome što promatrači izvan industrije sasvim pogrešno izjednačavaju osnovno poznavanje sintakse s pravim, dubinskim softverskim inženjeringom.
Prevladavajuća priča
Prevladavajući narativ, koji danas iznimno agresivno guraju tehnološki evangelisti i marketinški odjeli velikih korporacija, sugerira da će AI alati za generiranje koda u potpunosti automatizirati razvojni proces. Prema ovoj popularnoj priči, produktni menadžeri će uskoro moći potpuno zaobići skupe inženjerske timove, te izravno komunicirati svoje vizije i poslovne zahtjeve umjetnoj inteligenciji. Očekuje se da će takav sustav autonomno prevesti te zahtjeve u savršen, optimiziran i siguran softver spreman za produkciju. Zagovornici ovog radikalnog stava tvrde da je tradicionalni način rada jednostavno prespor i neoprostivo neučinkovit. Oni ističu da su ljudski programeri zapravo najveće usko grlo u inovacijskom ciklusu. Zbog takvog narativa, mnogi analitičari predviđaju masovna otpuštanja u IT sektoru i potpunu transformaciju načina na koji se softverska rješenja stvaraju i isporučuju krajnjim korisnicima.
Zašto je ta priča pogrešna ili nepotpuna
Ovaj senzacionalistički narativ spektakularno pada u vodu jer potpuno zanemaruje samu suštinu onoga što pravi softverski inženjeri zapravo rade iz dana u dan. Pravo inženjerstvo gotovo nikada ne zapinje na samoj brzini tipkanja koda ili pukom pamćenju specifične sintakse određenog programskog jezika. Umjesto toga, iskusni inženjeri provode golemu većinu svog radnog vremena rješavajući iznimno kompleksne, često loše definirane poslovne probleme. Oni svakodnevno moraju duboko razumjeti poslovne procese, prevoditi izrazito nejasne i kontradiktorne zahtjeve klijenata u čvrste logičke strukture. Pored toga, na njima je odgovornost da donose izrazito teške arhitektonske odluke te osiguraju skalabilnost, sigurnost i pouzdanost sustava u nepredvidivim produkcijskim okruženjima.
Kada jezični AI model generira kod, on to čini isključivo na temelju statističkih uzoraka iz prošlosti koje je naučio tijekom treniranja, potpuno bez ikakvog istinskog razumijevanja šireg arhitektonskog konteksta. Umjetna inteligencija ne zna niti može predvidjeti kako će se taj specifični, izolirani dio koda ponašati pod ogromnim pritiskom i opterećenjem u stvarnom vremenu. Ona apsolutno ne razumije suptilne tehničke dugove unutar naslijeđenih sustava i nema nikakvu sposobnost komuniciranja s dionicima oko prioriteta. Štoviše, kod koji generiraju ovi alati vrlo često sadrži skrivene, suptilne logičke greške ili duboke sigurnosne propuste koji nisu odmah vidljivi, ali mogu imati katastrofalne posljedice jednom kada se puste u produkciju. Identificiranje, izoliranje i konačno otklanjanje takvih kompleksnih grešaka zahtijeva ogromnu ljudsku intuiciju, višegodišnje iskustvo i sposobnost visokog apstraktnog razmišljanja koje današnji strojevi, barem za sada, jednostavno ne posjeduju.
Posljedice u stvarnom svijetu
Ako tvrtke nekritički i naivno prihvate ovaj duboko pogrešan narativ i odluče pokušati zamijeniti iskusne inženjere pukim alatima za masovno generiranje koda, neizbježno će se suočiti s vrlo ozbiljnim posljedicama u stvarnom svijetu. Kratkoročno gledano, takve organizacije će možda zaista vidjeti prividno značajno povećanje brzine isporuke novih funkcionalnosti na tržište, ali dugoročno, njihov će tehnički dug eksponencijalno rasti izvan svake kontrole. Koda će u njihovim repozitorijima biti više nego ikad prije u povijesti, ali će njegova stvarna kvaliteta, održivost i čitljivost biti iznimno upitni i problematični. Takvi sustavi neizbježno će s vremenom postati nevjerojatno krhki, teški za održavanje i podložni sigurnosnim prijetnjama.
Glavni gubitnici u ovakvom scenariju bit će tvrtke koje žrtvuju kvalitetu arhitekture radi prividne financijske uštede na ljudskim resursima, kao i krajnji korisnici koji će patiti zbog padova sustava i curenja podataka. S druge strane, pravi pobjednici bit će upravo oni inženjeri koji nauče strateški koristiti ove AI alate kao svoje osobne asistente, a nipošto kao potpune zamjene za intelekt. Takvi će moderni inženjeri moći neusporedivo brže prototipirati nove ideje, potpuno automatizirati repetitivne zadatke te se maksimalno posvetiti rješavanju onih istinski kompleksnih, visokorazinskih arhitektonskih problema. Tržište rada će se zbog toga najvjerojatnije snažno polarizirati: jednostavni i repetitivni poslovi bit će automatizirani, dok će potražnja za visoko kvalificiranim inženjerima s dubokim razumijevanjem složenih sustava samo nastaviti rasti.
Završni stav
Umjetna inteligencija bez ikakve sumnje radikalno mijenja cjelokupni pejzaž razvoja modernog softvera, ali ona ga ni u kojem slučaju ne eliminira niti ga čini suvišnim. Baš kao što profesionalni prevoditelji nisu preko noći nestali pojavom prvog strojnog prevođenja, tako će i današnji softverski inženjeri morati prirodno evoluirati u svom radu. Pravi inženjering nikada nije bio i nikada neće biti puko mehaničko ispisivanje linija koda; to je zapravo vrlo sofisticirana umjetnost strukturiranja kompleksnih misli, preciznog upravljanja sveprisutnom kompleksnošću i rješavanja stvarnih problema u nepredvidivom stvarnom svijetu. Alati koji danas munjevitom brzinom generiraju kod jesu iznimno moćni, ali oni su na kraju dana samo alati. Svaki alat, bez obzira na to koliko on impresivan i napredan bio, uvijek i neizbježno zahtijeva prisutnost vrhunskog majstora koji će ga usmjeravati.
Komentar objavljen na portalu Umjetna Inteligencija Blog by ShtefAI, autor: Shtef



