Veliki AI larp: 10 minuta klikanja, 8 sati glume
Deset minuta promptanja, osam sati glume da si zauzet — a Slack status kaže 'heads down deep work' 🧠
Postoji legenda koju svi u ovom poslu pričaju jedni drugima, pa i sebi kad je noć duga. Legenda glasi ovako: ja sam senior, ja sam arhitekt, agent mi je samo par ruku, ja i dalje mislim, ja i dalje odlučujem, samo sad radim brže. Lijepa priča. Ima strukturu, ima junaka, ima i moral. Jedini problem je što ćemo je u ovom poglavlju rastaviti na dijelove — kost po kost, sloj po sloj — i vidjeti koliko je toga istina, koliko uljepšano, a koliko čista izmišljotina koju pričaš samom sebi u devet ujutro, dok kava još ne djeluje.
I odmah da bude jasno, jer inače ovo poglavlje nema smisla: ne pišem o »njima«. Ne pišem o generaciji koja dolazi, ne pišem o juniorima koji ne znaju kompajlirati bez chatbota, ne pišem o menadžerima koji vjeruju u demo. Pišem o tebi. I, da skratim muke i budem fer, pišem i o sebi — jer bih lako mogao ovdje ostaviti pošten primjer iz vlastitog radnog tjedna, trenutak kad sam nešto odobrio bez da sam ga stvarno pročitao, ili dan kad sam shvatio da više ne znam objasniti zašto neki dio koda radi baš to što radi — i ne bi bilo laž.
Stvarnost — ona neromantična, koju nitko ne stavlja na LinkedIn — izgleda otprilike ovako. Ticket stigne (to je samo zadatak, papirić s opisom što treba napraviti). Otvoriš agenta, napišeš tri rečenice, on ispljune tristo linija koda za osam minuta. Pogledaš ih. Ne pročitaš, pogledaš — to je razlika o kojoj će ovo poglavlje pričati dosta. Izgleda uredno, izgleda kao da bi to i ti napisao, ima komentare na pravim mjestima, testovi su zeleni. Approve — klikneš da odobravaš kod. Merge — spojiš ga s glavnom verzijom projekta, onom pravom, na kojoj svi rade. Deploy — pustiš ga u pogon, na živu verziju proizvoda, tamo gdje ga vidi stvarni korisnik. Tri klika, i to je to. I onda — ovo je dio koji legenda nikad ne spominje — ostane ti sedam sati i pedeset minuta radnog dana za popuniti nečim. Bilo čime.
Pa ih popuniš. Odeš na Slack (to je aplikacija za poslovno dopisivanje, ono što bi tvojim roditeljima bio hodnik uz kavu, samo digitalno) i napišeš da si »u dubokom fokusu«, iako je fokus trajao koliko treba da otkucaš upit agentu. Kolegi za ručkom ispričaš da je tjedan bio lud. Otvoriš karticu s oglasima za posao — ne zato da odeš, nego zato što nešto u tebi osjeća da bi trebao vrijediti više za ovo malo posla koji radiš, pa to rješavaš gledanjem tuđih plaća umjesto pitanjem koje bi trebalo boljeti puno više: ako moj dan stane u deset minuta klikanja, zašto se onda osjećam umornije nego prije?
To je legenda o »arhitektu« koji je zapravo klikač. I nije priča o lijenosti — bilo bi lakše da jest, lijenost se rješava disciplinom. Ovo je priča o tome kako je najpametnija vrsta na planetu smislila najsofisticiraniji način da samu sebe uvjeri da još misli, dok umjesto toga samo — čeka. Idemo vidjeti koliko od te legende preživi kad je razgradimo. Upozoravam unaprijed: neće puno. I nema propovijedi na kraju — ti si i optuženik i porota, presudu donosi svatko sam, tiho, dok čita.
Osam i dvadeset ujutro. Kava je na stolu, još vruća, i to je ionako najvažniji dio jutra pa krenimo od bitnog. Otvaraš Jiru — to je alat u kojem tvrtke drže popis svih zadataka koje treba obaviti. Ticket je jasan: »Popravi bug u obradi plaćanja, korisnici prijavljuju duplo naplaćivanje.« Kopiraš opis, zalijepiš u agenta, dodaš jednu rečenicu konteksta jer si profesionalac, stisneš enter. I onda — čekaš. Gledaš kursor kako trepće. Skrolaš mobitel. Kursor još trepće. Provjeriš je li agent možda zapeo, nije, samo »razmišlja«, kaže indikator, i ti mu vjeruješ, jer što ćeš, valjda razmišlja bolje nego ti u ovom trenutku.
Agent završi. Diff se otvori — to je taj prikaz svih promjena u kodu, ono što je agent dodao osjenčano zeleno, ono što je obrisao osjenčano crveno, i upravo to bi trebao pažljivo pregledati prije nego što kažeš da je sve u redu — dvjestotinjak linija, uredno obojenih, zeleno-crveno, kao Božić. Pogledaš prvih desetak redova. Izgleda ok. Skrolaš dalje, brže, jer treba stići i na sastanak u devet, i onda ono — izgleda ok. Ne čitaš svaku liniju, ne provjeravaš logiku rubnih slučajeva s valutama koje agent nikad nije vidio, ne otvaraš datoteku s testovima da vidiš testira li test zapravo nešto ili samo tvrdi da je istina jednaka istini. Izgleda ok. Klik. Odobreno. Spojeno. Jedan ticket manje, jedan red zelene boje više u tvom osobnom pokazivaču produktivnosti kojeg nitko ne traži, ali ga svi imamo u glavi.
Slack status pokazuje: 🧠 heads down, duboko fokusiran, ne diraj, dubok rad. Duboko. Vrlo duboko. Toliko duboko da je cijela ta dubina trajala jedanaest minuta, uključujući vrijeme dok si čekao kavu da se prestane pušiti.
Ručak. Normalan, nezanimljiv, jedini iskren dio dana — jer za ručkom bar se ne pretvaraš da radiš, samo jedeš, i to je to.
Popodne. Drugi ticket, sličan prvom: prompt, čekaš, izgleda ok, approve. Onda treći. Onda — pauza, jer treba se malo »istražiti tržište«, provjeriti je li tvoja plaća uopće tržišno pravedna za sve to umno naprezanje kroz koje prolaziš. Otvoriš LinkedIn. Filtriraš po plaći, po opciji rada od kuće, po nazivu koji sadrži riječ senior ili, ako je dan loš, staff. Čitaš opise poslova s istom pažnjom koju bi trebao posvetiti onom diffu od dvjestotinjak linija. Prilično zanimljiva raspodjela koncentracije, kad malo razmisliš, ali nećeš o tome sad razmišljati, jer je vrijeme za sastanak.
Na sastanku kažeš da su ti dani napeti, da imaš puno toga na tanjuru. Kolega kimne, razumije — i on ima puno toga na tanjuru, valjda, tko zna, nitko ne pita detaljno, jer bi to bilo nepristojno, gotovo kao pitati koliko je diffova stvarno pročitao ovaj tjedan.
Navečer, dok zatvaraš laptop, kažeš sebi — pošteno, iskreno, gledajući u prazan ekran koji se gasi — danas sam stvarno bio produktivan. Tri tiketa. Zatvorena. Merge, merge, merge. Nisi lagao. Tiketi jesu zatvoreni. Samo nisi siguran je li „produktivan” pravi glagol za ono što se danas dogodilo, ili treba neki drugi, možda blaži, možda točniji — ali taj drugi glagol ne staje lijepo u status s emojijem mozga, pa ostaje ovaj.
Ne, ovo nije optužba. Nitko te ovdje ne prstom pokazuje — nema potrebe, jer već si, negdje između trećeg approvea i prvog LinkedIn filtera, prepoznao lice u ovom opisu. A ako nisi — ako ti je ovo potpuno strano, tuđe, netko drugi — u redu je i to. Nastavi čitati. Ali malo sporije.

Anatomija samoobmane #1: review koji je postao scroll
Mit glasi ovako: code review je i dalje code review, samo brži. Agent napiše, ti pregledaš — isto kao kad je pisao kolega, samo što kolega ne treba kavu i ne uzima godišnji. Isti proces, druga brzina — to je priča koju svi pričamo timu, menadžeru, sebi u glavi dok čekamo da se učita diff. Zvuči razumno. Zvuči kao da je sve pod kontrolom. Šteta što je to, u devet od deset slučajeva, čista fikcija.
Stvarnost je nešto sasvim drugo i zove se scroll-and-approve — što će reći: klizanje pogledom i pritiskanje gumba za odobrenje, bez čitanja koje bi ime „review” zaista opravdalo. Diff se otvori, ima dvjesto pedeset redaka, izmijenjeno je šest datoteka, dodane su dvije nove, a ti — umoran, iza rasporeda, s još tri slična zadatka (tiketa, kako ih zovemo) koja čekaju u redu — počneš skrolati. Ne čitati. Skrolati. Oko klizi preko koda kao preko uvjeta korištenja neke aplikacije: brzo, površno, tražeći ne razumijevanje nego alarm. Nešto crveno. Nešto što vrišti. Ako ništa ne vrišti, palac gore. Odobreno. Sljedeći.
Zašto se to dogodilo, iako smo svi krenuli s najboljim namjerama? Prvi razlog je brutalno jednostavan: agent piše više nego što stigneš, ili želiš, pročitati. Kad je kolega pisao kod, pisao je onoliko koliko je stigao za dan — što je, realno, prirodni filter. Agent nema taj filter. Zamoliš ga da doda novu mogućnost (u žargonu: feature) i on ti vrati sedam izmijenjenih datoteka, novi pomoćni modul s gotovim funkcijama za višekratnu upotrebu, ažurirane testove i, dok si se okrenuo, preuredio je i onu funkciju koju nisi ni spominjao — jer mu se, kaže, učinilo da je „prljava”. Formalno je sve to materijal za code review. Realno, to je toliko teksta da bi ozbiljno čitanje trajalo duže nego što je agentu trebalo da to napiše — i tu matematika prestaje imati smisla za bilo koga s rokom nad glavom.
Drugi razlog je opakiji, jer ne govori o agentu nego o tebi. Sjećaš se poglavlja o halucinacijama — ono gdje smo objašnjavali da model ne laže namjerno, samo generira tekst koji zvuči uvjerljivo, jer uvjerljivost mu je jedini kompas? E, ta ista mehanika radi i u tvojoj glavi kad čitaš njegov kod. Kod koji je čisto formatiran, s razumnim nazivima varijabli, s komentarom koji objašnjava logiku u tonu udžbenika — taj kod ti *izgleda* ispravan. Ne jer si ga provjerio, nego jer je stil pisanja toliko uvjerljiv da ti mozak preskoči korak provjere i ode ravno na zaključak: ovo je napisala kompetentna osoba (ili kompetentan sustav), dakle vjerojatno je dobro. Vjeruješ jer zvuči dobro. Isto ono za što smo optuživali model — samo sad je subjekt tvoja prosudba, ne njegova.
Da budemo pošteni prema samima sebi — evo brojke koju nitko ne voli izgovoriti naglas, pa ćemo probati ovdje, bez svjedoka osim stranice koju čitaš. Zamisli da ti neki nevidljivi mjerač bilježi postotak koda koji stvarno, riječ po riječ, pratiš tijekom reviewa nasuprot postotku koda koji samo formalno odobriš (approve). Prije agenata, taj omjer je bio nešto poput 80 naprema 20 — čitao si većinu, brzo prelazio preko rutinskog dijela. Danas, kad ti agent servira dvjesto redaka u pola minute, omjer se tiho preokrenuo: čitaš možda 20 posto, ono što ti se učini bitnim ili sumnjivim, a preostalih 80 posto — testovi, „boilerplate” (onaj kod koji se piše iz navike, uvijek isti kalup, kao formular koji samo popuniš podacima), ona dva helpera koje si ni tražio nisi — jednostavno prođe, odobriš, spoji se (merge) i završi u pogonu (deploy) bez da si ga stvarno pročitao. Svatko od nas zna svoj broj. Nitko ga ne iznosi na sastanku gdje se tim okupi i prizna si u lice što je te dva tjedna zapravo radio (u žargonu: sprint retrospektiva).

Anatomija samoobmane #2: znanje koje tiho isparava
Mit glasi ovako: senior programer je taj koji sve razumije. Junior kuca, senior misli. Junior guglamo, senior zna od prije. Legenda o senioru je legenda o čovjeku koji, kad sustav pukne u tri ujutro, otvori kod, pogleda ga tri minute i kaže rečenicu koja spašava noć: „aha, evo, ovdje.” Ta legenda je desetljećima bila istinita dovoljno često da postane arhetip. Problem je što se u ovoj eri tiho, bez ceremonije, počela ljuštiti — i ispod nje nije ostao lik iz legende, nego čovjek koji čita PR (kratica za pull request, onaj paketić promjena koji netko predloži da se uvrsti u projekt, i koji upravo zato čekaš da ga odobriš) koji je napisao netko drugi — u ovom slučaju agent — i klima glavom jer izgleda uredno.
Razlika prema onome što smo već secirali kod vibe-codera i kod junior programera koji nikad nije stigao naučiti (poglavlja 6 i 7, sjećaš se) je jedna, i baš je ta razlika ono što ovo boli deset puta više: onima ono znanje nikad nije ni bilo tamo. Nisu ga izgubili — nisu ga stigli steći. Ovdje je druga priča. Ovdje je znanje bilo tu. Godine su otišle u to da čovjek nauči kako datotečni sustav zapravo drži zaključavanje, zašto ta jedna race condition postoji (ukratko: to je greška koja se dogodi kad se dva dijela programa „utrkuju” za isti resurs, pa ishod postane nepredvidiv — kao kad dvoje ljudi istovremeno gura kroz jedna vrata i nikad nije sigurno tko će prvi proći), gdje curi memorija kad je pod opterećenjem, i zašto se ne otvara nova veza prema bazi za svaki upit nego se održava zajednička hrpa spremnih veza — ono što se u žargonu zove connection pool. To znanje nije mit — bilo je stvarno, stečeno, zasluženo. Mit je ono što dolazi poslije: uvjerenje da, jednom stečeno, znanje ostaje. Da je senior status stanje, a ne proces koji se mora hraniti.
Tako i ovo. Prvi tjedan ne pišeš kod ispod jedne funkcije — agent to riješi za tebe, brže i urednije nego što bi ti sam napisao petkom navečer. Drugi tjedan više ne pratiš zašto je odabrao baš taj pristup, samo provjeriš da testovi prolaze. Treći mjesec ne znaš više napamet gdje se u tom sustavu diže connection pool, jer to nisi ni jednom morao ručno otvoriti — agent je to riješio prije nego si stigao i pitati. Ništa od toga nije dramatičan trenutak. Nema dana kad odlučiš prestati znati. Ima tisuću sitnih dana kad je bilo lakše ne znati — i jednog dana, koji ne dolazi s najavom, otvoriš taj sustav i shvatiš da čitaš tuđ kod o vlastitom proizvodu.
I tu se rađa rečenica koja je, ako smo iskreni, kod poštenog broja ljudi postala trajno stanje — onih istih koji bi ti u zadnji tren rekli suprotno: „Znam da radi, ne znam zašto, ne znam kako.” Zvuči kao privremena fraza, kao nešto što izgovoriš dok čekaš da se sam prisjetiš. Nije. Postala je adresa na kojoj živiš. Sustav radi, nadzorna ploča je zelena, metrika je u redu — i to je dovoljno da guraš dalje, jer pitanje zašto radi nitko od tebe ne traži da odgovoriš. Dok ne zatraži.
To je razgradnja mita u ovom sloju: senior nije prestao biti senior jer je pao na ispitu ili napravio katastrofalnu grešku. Prestao je biti senior onako kako i sve drugo prestaje — postupno, neprimjetno, uz punu suglasnost vlastitog udobnog dana. A najstrašniji dio nije to što će to jednog dana isplivati na vidjelo. Najstrašniji dio je koliko dugo to može ostati skriveno — i koliko se lako čovjek, u međuvremenu, navikne zvati sebe titulom koju odavno samo posjeduje, a ne živi.

Anatomija samoobmane #3: predstava za druge i sebe
Mit koji pričaš kolegama — i, važnije, mit koji pričaš sebi — glasi ovako: „Ludo sam zauzet, stvarno. Ovaj tjedan sam gasio požare na tri fronte.” Legenda je impresivna. Ima tempo, ima žrtvu, ima čovjeka koji jedva stigne na ručak. Stvarnost je da si u devet ujutro poslao zahtjev AI-u (onaj famozni prompt), u devet i deset dobio diff, u devet i dvanaest kliknuo approve, i onda imaš — koliko? Sedam sati i četrdeset osam minuta viška. Legenda i stvarnost žive u istoj rečenici i nikad se ne susreću, jer ih ti pažljivo držiš u različitim prostorijama.
Druga verzija mita je elegantnija i na papiru zvuči skoro kao unapređenje: „Ja se sad bavim arhitekturom. Ne tipkam više, to je ispod mene, ja razmišljam na višoj razini.” Zvuči ti poznato? Trebalo bi — to je ista fraza koja se u ovoj knjizi već jednom pojavila, kad je 10x developer objašnjavao zašto ne piše testove nego samo „vodi” tim od jednog člana. Tu je bila laska za ego. Ovdje je laska za savjest. Nijansa je jedina razlika: onaj je tvrdio da je previše dobar za sitne poslove, ti tvrdiš da si prerastao sam alat kojim se sitni poslovi rade. Rezultat je identičan — nitko ne čita kod, samo su se etikete promijenile.
Ok, možda ne baš svi. Netko od vas doslovno je iskoristio taj slobodan prostor da uči, da čita dokumentaciju sustava koji održava, da postane bolji u onom smislu koji se ne mjeri brojem promptova. Takvi postoje, i njima ova rečenica ne smeta jer se ne prepoznaju u njoj — a to je upravo test koji vrijedi provesti na sebi, iskreno, bez publike. Ali znaš na što mislim. I, što je gore, znaš da znaš — jer da ne znaš, ne bi ti ova stranica ovoliko smetala baš sad, u ovom trenutku, dok čitaš i tražiš rupu u argumentu umjesto da priznaš da je jedna od te dvije verzije tebe iz ovog poglavlja — ona umorna genijalna arhitekta ili ona potplaćena žrtva sustava — jutros sjedila za tvojim stolom.
Ono što je zanimljivo — i pomalo tužno — jest da mit o zauzetosti nije nastao iz zlobe. Nastao je jer je istina neugodna na jedan sasvim novi način: nismo lijeni u starom, poznatom smislu, onom s nogama na stolu i kavom u ruci. Radimo nešto, samo to nešto traje deset minuta i onda nestane, a osam sati praznine treba nekako popuniti pričom koja opravdava plaću, titulu i vlastiti osjećaj vrijednosti. Legenda o zauzetom arhitektu nije laž kolegama. Prvo i najviše je laž samome sebi, izgovorena tako često da si je, u nekom trenutku, i sam počeo vjerovati.
I upravo tu mit prestaje biti smiješan. Jer dok se ti uvjeravaš da si arhitekt s previše posla i preplaćen premalo, propuštaš pitanje koje ovo poglavlje tek postavlja u sljedećoj sekciji — a koje se, nagađam, već negdje u tebi motalo cijelo ovo vrijeme, samo si ga uspješno guralo u drugu prostoriju zajedno s ostalim neugodnim istinama.

Pitanje koje nitko ne želi naglas + izlaz
Dobro. Sad dio koji nitko od nas ne govori naglas, pa ću ja, jer netko mora, a evo me — upravo pišem enciklopediju o tehnologiji, pola dana s agentom otvorenim u drugom prozoru. Pitanje glasi ovako: ako ti posao stane u deset minuta promptanja, koliko dugo misliš da to nitko neće primijetiti? Ne pitam moralno. Ne pitam je li to fer prema kolegama, prema firmi, prema onom apstraktnom konceptu poštenog rada za poštenu plaću. Pitam egzistencijalno, kao pitanje koje si postavljaš u tri ujutro kad ne možeš spati: što ako sam ja taj dio sustava koji se može izbrisati, a jedino što ga još drži je to što se nitko još nije sjetio pogledati?
I sad udar tamo gdje mora ići — u sebe, ne u tebe. Jer bih bio hipokrit najgore vrste da napišem ovo poglavlje kao propovjednik s propovjedaonice, dok sam dolje u crkvi isti grešnik kao svi ostali. Priznajem, i ne prvi put: approvao sam pull request — zahtjev da se agentov kod spoji u projekt — za koji je agent napisao devedeset posto sadržaja, pročitao ga dijagonalno, kliknuo approve, i sljedeća dva sata proveo skrolajući nešto potpuno nevezano, uz mirnu, skoro ugodnu svijest da bih trebao osjećati krivnju, a osjećam samo prazninu koja ne boli. Ovo poglavlje nije pisano s visine. Pisano je iz istog fotelja u kojem se to događa. Ispovijed prije nego optužba, i ako zvuči kao da nekog osuđujem, znaj da sam prvi na popisu.
Ali — i ovo je jedina rečenica u ovom poglavlju koja smije zvučati kao izlaz, a ne kao kazna — postoji razlika između onih koji koriste agenta i onih koji su postali njegov produžetak. Razlika nije u tome koliko si promptova ukucao u danu. Razlika je u tome jesi li još sposoban objasniti zašto to što je agent napisao radi, i bi li primijetio da ne radi kad nešto pukne u tri ujutro, dok agent samo slegne ramenima u tekstu koji nema ramena. Oni koji ostanu znati — koji stvarno pročitaju što odobravaju, koji razumiju sustav ispod alata, koji agenta koriste kao odvijač, a ne kao ruku koja umjesto njih drži odvijač — oni će biti jedini koji vrijede kad se prašina slegne. Ne zato što su bolji ljudi. Zato što će biti jedini koji preostanu razumjeti zašto je nešto uopće pokvareno.
Nije poanta, i nikad nije bila, da ugasiš agenta i vratiš se šarafcigeru i kasetama. Poanta je jednostavnija i puno neugodnija: nemoj prestati misliti samo zato što je netko izmislio stroj koji zvuči kao da misli umjesto tebe. To je cijela presuda ovog poglavlja, cijeli mit razotkriven do kraja — legenda je govorila da će nas strojevi zamijeniti. Stvarnost je da nas strojevi mogu zamijeniti samo u onom dijelu posla u kojem smo se sami odlučili prestati postojati.