Razvoj s AI alatima: Stvarnost protiv marketinga
Zašto brže pisanje koda ne znači uvijek brzu isporuku
Kada slušate prezentacije o novim alatima baziranim na umjetnoj inteligenciji, često se stvara dojam da je programiranje postalo trivijalno. Marketing prodaje priču o brzom kodiranju bez truda, gdje je dovoljno samo napisati kratku uputu, a sustav će obaviti sav težak posao. No, za nas koji svakodnevno koristimo te alate u stvarnim projektima, situacija je znatno složenija. Brzina pisanja koda svakako raste, no s njom dolaze i novi, često nepredviđeni izazovi koji mijenjaju samu prirodu našeg posla.
Prevladavajuća priča
Industrija i tehnološki entuzijasti neprestano naglašavaju kako će alati poput Copilota, ChatGPT-a i drugih asistenata radikalno smanjiti vrijeme razvoja. Prevladavajuća priča sugerira da se usko grlo u razvoju softvera nalazi u samom tipkanju, odnosno pretvaranju logike u sintaksu. Prema tom narativu, ako alat može generirati stotine linija koda u sekundi, produktivnost bi trebala rasti eksponencijalno. Ova vizija privlači menadžment i investitore, jer nudi obećanje o bržim i jeftinijim projektima, manjem broju grešaka i općenito lakšem upravljanju tehnološkim razvojem.
Zašto je ta priča pogrešna ili nepotpuna
Problem s ovom pričom je što potpuno zanemaruje gdje programeri zapravo provode najviše vremena. Pisanje potpuno novog koda iz nule čini samo mali dio našeg posla. Većina vremena odlazi na razumijevanje postojećeg sustava, otkrivanje zašto se nešto ponaša na određeni način, debagiranje neočekivanih grešaka i osiguravanje da novi kod neće srušiti postojeću funkcionalnost.
Kada AI alat generira veliki blok koda, on ne poznaje specifične poslovne zahtjeve, povijesne tehničke odluke ili skrivene ovisnosti u vašem projektu. Njegov je kod u pravilu sintaktički ispravan i izgleda uvjerljivo, ali to ne znači da je arhitektonski točan ili dugoročno održiv. Programer sada mora preuzeti ulogu recenzenta za kod koji nije sam napisao, što zahtijeva puno višu razinu kognitivne pažnje i koncentracije. Brže generiranje koda znači i brže generiranje tehničkog duga ako taj kod nije temeljito provjeren. Umjesto da rješavaju probleme, programeri nerijetko provode sate pokušavajući dešifrirati zašto je AI predložio rješenje koje je naizgled briljantno, ali u kontekstu njihovog sustava potpuno neprimjenjivo.
Posljedice u stvarnom svijetu
U praksi, ovo znači promjenu vještina koje se traže od inženjera. Tehničko znanje sintakse postaje manje važno od sposobnosti kritičkog razmišljanja, čitanja koda i razumijevanja šireg konteksta sustava. Inženjeri koji znaju postaviti prava pitanja i prepoznati arhitektonske propuste u generiranom kodu postaju najvrjedniji članovi tima.
S druge strane, timovi koji slijepo vjeruju alatima i mjere produktivnost brojem napisanih linija koda vrlo brzo će se naći u problemima. Mogli bi isporučivati brže u kratkom roku, ali će dugoročno stvoriti krhke sustave koje je izuzetno teško održavati i nadograđivati. Pritisak menadžmenta koji očekuje nerealnu brzinu isporuke, temeljen na marketinškim obećanjima, često dovodi do frustracije i pregaranja, jer se stvarni tehnički izazovi ne prepoznaju i ne valoriziraju.
Završni stav
Umjetna inteligencija je moćan alat koji nesumnjivo pomaže u razvoju softvera, ali nije čarobni štapić koji rješava sve probleme. Ona nas oslobađa rutinskih zadataka, no istovremeno nas tjera da postanemo bolji arhitekti, stroži recenzenti i bolji poznavatelji vlastitih sustava. Brzina razvoja ne mjeri se brzinom kojom možemo napisati kod, već brzinom kojom taj kod možemo s pouzdanjem integrirati, razumjeti i održavati tijekom vremena.
I na kraju, važno je napomenuti da ovi alati nikada neće moći u potpunosti zamijeniti ljudsku prosudbu i iskustvo. Dok algoritmi postaju sve napredniji, oni i dalje djeluju u okvirima podataka na kojima su obučeni i ne posjeduju stvarno razumijevanje svijeta u kojem živimo, niti intuitivno shvaćanje kompleksnih međuljudskih i poslovnih odnosa koji često diktiraju razvojne odluke. Pravi izazov budućnosti nije kako ćemo izgraditi pametnije alate, već kako ćemo educirati programere da te alate koriste mudro, kritički i s jasnim razumijevanjem njihovih ograničenja. Budućnost softverskog inženjerstva nije u slijepom oslanjanju na strojeve, već u pronalasku prave ravnoteže između ljudske kreativnosti, dubokog domenskog znanja i brzine koju nude automatizirani sustavi.
Komentar objavljen na portalu Umjetna Inteligencija Blog by ShtefAI, autor: Shtef



