Pisanje koda danas je brže nego ikad, ali prava prepreka u razvoju softvera je razumevanje postojećih sistema. LLM alati mogu da napišu funkcije umesto nas, ali nijedna veštačka inteligencija još ne ume da prenese kompletnu sliku o tome kako aplikacija radi.
Da bi programer bezbedno dodao novu funkcionalnost ili ispravio grešku, mora da izgradi mentalni model aplikacije. To je unutrašnja mapa koja povezuje delove koda, podatke, servise i zavisnosti. Bez tog modela programer posmatra samo tekst na ekranu, bez jasne predstave o odnosima u sistemu. Proces podseća na istraživanje nepoznatog grada: tek kada upoznate ulice, orijentire i veze između delova, možete da se krećete sigurno.
Zašto je čitanje koda skuplje od pisanja
Razumevanje čak i jednostavne funkcije zahteva mnogo više od pregleda nekoliko linija. Potrebno je znati gde je funkcija definisana, kakve podatke vraća, da li koristi bazu, API ili keš sloj, kao i kako se ponaša kada naiđe na neočekivane vrednosti. Programer mora da otkrije ko još poziva tu funkciju i u kojim kontekstima. Taj proces uključuje čitanje dokumentacije, pregled testova i ponekad pretraživanje kroz više fajlova i slojeva aplikacije.
Zbog toga je debugovanje obično zahtevnije od samog pisanja. Potrebno je rekonstruisati korake koji su doveli do greške, što zahteva vreme i pažljivo razumevanje. Često je lakše napisati nov kod nego proučiti postojeći, ali taj pristup povećava rizik od novih problema i dupliranja funkcionalnosti.
Kako AI menja dinamiku, ali ne i suštinu
Veliki jezički modeli doneli su mogućnost generisanja koda u velikim količinama. Međutim, što je kod obimniji, to je više vremena potrebno da se shvati šta on zaista radi i kako utiče na ostatak sistema. Čak i kada AI proizvede tačan kod, odgovornost programera ostaje ista: potrebno je pročitati i razumeti svaku liniju pre nego što se kod pusti u produkciju.
Ova realnost utiče na način na koji bi timovi trebalo da koriste AI. Umesto da traže ogromne blokove koda, programeri bi mogli da iskoriste AI da ubrzaju proces razumevanja. Kvalitet razvoja ne meri se brojem napisanih linija, već brzinom kojom tim gradi precizan mentalni model sistema.
Budućnost razvoja zavisi od razumevanja
Sve dok ne postoji alat koji može trenutno da prenese potpunu sliku o aplikaciji, čitanje ostaje osnovni trošak razvoja softvera. Rešenje nije u većem broju linija koda, već u alatima i procesima koji olakšavaju sagledavanje kompleksnih sistema. Budućnost programiranja zavisiće od toga koliko brzo možemo da razumemo ono što već postoji, a ne samo od brzine kojom pišemo nove funkcije.