Reasoning modeli
Model koji šuti tri sekunde prije odgovora ne kasni – nego prvi put u životu razmišlja.
Kraj 2024. Ako si tih mjeseci otvorio bilo koji chat i postavio mu nešto ozbiljnije od „napiši mi pjesmu o mački” — recimo zadatak iz srednjoškolske matematike, ili logičku zagonetku s dva čovjeka, jednim čamcem i kozom koja ne smije ostati sama s vukom — dobio si odgovor za pola sekunde. Brz. Uvjerljiv. I često — potpuno pogrešan.
Ne zato što je model glup. Zato što je, u dubini duše, brzoplet. Cijela ta prethodna generacija (K7, poglavlje 9, sjećaš se — predviđa sljedeću riječ, ne rješava problem) radi jednu stvar: izbaci ono što joj prvo padne na pamet. Kao učenik koji digne ruku prije nego što je pitanje uopće dovršeno, jer je siguran da zna — a onda na ploči napiše nešto sramotno.
Zvuči kao pitanje koje bi postavilo dijete. I upravo je to razlog zašto je dobro pitanje. Jer odgovor na njega otvara nešto što do tad nitko nije uvećavao na ovaj način: ne veličinu mozga (koliko je model „nabildan”, koliko parametara ima), nego vrijeme koje mozak dobije da se njime posluži.
Krajem 2024. pojavljuju se modeli koji, prije nego što ispišu i slovo odgovora, interno — nevidljivo tebi — melju. Razlažu problem, provjeravaju sami sebe, odbacuju vlastite pogrešne tragove, i tek onda progovore. Traje to dulje. Košta to više — svaka ta tiha muka pod haubom trosi račun, prave pare, iako je ti nikad ne vidiš na ekranu. Ali odgovor je, na iznenađenje mnogih, često — točan.
I upravo tu se otvara pitanje koje je vrijedno cijelog poglavlja, jer laik ga postavlja instinktivno, a inženjer, treniran godinama, ga preskoči: čekaj, znači li to da AI sad — razmišlja? Ili je to samo skuplja verzija istog trika?
Odgovor nije jednostavan kao da ili ne. Ali zato je ovo poglavlje najbolje odraditi onako kako bi to radio da sjediš s prijateljem koji ništa ne zna o strojnom učenju, a pametniji je od većine ljudi koji o njemu pišu doktorate — jedno po jedno pitanje, dok se slika sama ne posloži.
Dobro, kaže laik, uzimam kavu, sjedam. Objasni mi jednu stvar koja mi ne ide u glavu. Pitao sam ChatGPT nešto lagano — koji je glavni grad Australije — i odgovorio je u sekundi, točno. Onda sam ga pitao da mi riješi jedan matematički dokaz, malo kompliciraniji, i opet je odgovorio u sekundi. Samo — pogrešno. Kako to da je isto brzo i za lako i za teško pitanje, kad je jedno trebalo razmišljanje a drugo ne?
E vidiš, upravo si stavio prst na ranu koja je cijelu 2024. mučila svakoga koji je ove modele koristio za nešto ozbiljnije od pisanja čestitke za rođendan. Model ne zna da je jedno pitanje lako a drugo teško — on ne sjedne i kaže sebi »ovo je Canberra, znam napamet, izbacujem«, pa onda za drugo »ovo je dokaz, moram sjesti i razmisliti«. On radi potpuno isto za oba, i za glavni grad i za dokaz.
Čekaj, kako to misliš isto? Pa dokaz je teži!
Jest teži za tebe. Za model ne postoji »teže« u smislu u kojem ti to misliš. Sjećaš se iz K7, poglavlje 9, kako smo objasnili što model zapravo radi? Predviđa sljedeću riječ. Samo to. Gleda što je vjerojatno da dolazi poslije onoga što je do sad napisano i ispljune tu riječ. Pa sljedeću. Pa sljedeću. U tom procesu ne postoji korak koji se zove »zastani i promisli«. Ne postoji unutarnji glas koji kaže »hej, ovo zvuči kompleksno, uzmi si vremena«. Sve je jedan dugi refleks.
Refleks. Kao kad ti nešto baciš, a ja to uhvatim bez da razmišljam?
Točno to. I znaš tko još radi na refleksu? Student na usmenom ispitu koji nije baš najbolje spremio gradivo, ali je brz na jeziku. Pitaš ga glavni grad Australije — Canberra, bez trena sumnje, jer je to činjenica koju je ili znao ili nije, tu nema mjesta za grešku u rasuđivanju. Ali mu daš dokaz da riješi, teorem, nekoliko koraka logike koji se moraju nadovezati jedan na drugi — a on ti isto tako brzo, s istim samopouzdanim tonom, izvali prvo što mu padne na pamet. Zvuči skoro pametno. Prva dva koraka su čak i točna. Treći korak je katastrofa, jer je preskočio provjeriti je li ono što je upravo napisao uopće konzistentno s onim što je napisao prije toga. Nije se vratio. Nije se ispravio. Samo je nastavio dalje, jer je tako navikao — piši, ne zastajkuj, zvuk samopouzdanja važniji je od točnosti.
To mi je, da budem iskren, poznato od nekih ljudi na sastancima.
OK, ali zašto je model takav? Zašto ga jednostavno nisu naučili da — pa, razmisli malo prije nego što odgovoriš?
Eto pitanje koje vrijedi cijelo poglavlje. Odgovor je: naučili su ga, ali to nije bilo trivijalno i nije se dogodilo preko noći. Do kraja 2024. imao si generaciju modela koji su, u osnovi, bili štreberi sa savršenom memorijom i nultim strpljenjem. Znali su ogromnu količinu stvari. Bili su brzi kao munja. Ali kad im zadaš problem koji traži da drže više koraka u glavi istovremeno, da provjere sami sebe, da se vrate i kažu „čekaj, ovo se ne slaže” — padali su. Ne zato što nisu znali potrebno gradivo, nego zato što ih nitko nije naučio proces provjeravanja. Bili su knjiga s odgovorima na kraju koja preskače stranicu s rješenjima.
I onda je netko rekao — dajmo mu vremena da razmisli.
Upravo to. Umjesto da ga tjeramo da svaki put smisli odgovor iz prve, kao onaj brzi štreber koji odbrzinski izlijeva sve što znade, netko je pitao — što ako ga naučimo da prije nego progovori, prvo malo... porazmisli u sebi? Da napiše korake, proba, provjeri, možda i pogriješi pa se ispravi — sve to prije nego što ti pokaže konačan odgovor? Zvuči kao sitnica. Nije. To je bila potpuno nova poluga napretka, a ova sekcija je tek predjelo priče o njoj.

"Chain of thought" i skriveno razmišljanje
Dobro, kaže laik, ali što to konkretno znači da model »razmišlja«? Ima li on neku malu glavicu u kutiji koja se muči nad problemom? Ne baš. Nego, evo objašnjenja bez sumnjivih metafora o svijesti u čipu.
— Kad kažete da model sad razmišlja prije odgovora, on to fizički negdje piše, ili samo... šuti pa onda govori?
Piše. To je cijela caka. Model nigdje ne šuti — on ne zna šutjeti, zna samo generirati riječ po riječ. Nekad je radio ovako: pročita pitanje, izbaci prvu riječ odgovora, drugu, treću, gotovo. Danas radi ovako: pročita pitanje, pa prije službenog odgovora izbaci hrpu rečenica koje su, u suštini, on kako sam sebi objašnjava zadatak. „Dobro, imamo tri vlaka, jedan ide 60 na sat, drugi...” — cijela ta rasprava sam sa sobom, pa tek na kraju: „Odgovor: 47 minuta.” To je otprilike kao kad rješavaš zadatak na papiru — računaš u stranu, precrtavaš, probaš drugi pristup, pa na kraju prepišeš samo rješenje u kućicu. Model vodi tu istu prljavu radnu bilježnicu, samo u tekstu.
— Ali čekajte, to zvuči kao ono što je svako malo netko pisao u prompt: »razmisli korak po korak«. To se meni čini kao trik, ne kao stvarna sposobnost.
I bio je trik. Dobro zapažanje. Ljudi su još 2022. otkrili da ako modelu prije pitanja dodaš rečenicu „razmisli korak po korak”, model odjednom bolje rješava matematiku i logičke zagonetke. Nitko ga nije za to posebno trenirao — model je samo, kad ga se natjeralo da prvo razlaže problem naglas, slučajno bio bolji u tome nego kad je odmah izbacio gotov odgovor. Netko je to zapazio, netko drugi napisao znanstveni rad, treći tu istu rečenicu ugurao u sustavnu uputu koja se modelu šalje unaprijed, prije nego što korisnik uopće nešto pita — i onda se cijela industrija zapitala: čekaj, ako ovaj mali trik radi tako dobro sam od sebe, što ako model natreniramo da to RADI PO DEFAULTU, bez da mu tko govori?
I upravo je to razlika između te prve generacije i reasoning modela — modela za razmišljanje — o kojima priča ovo poglavlje. Rani trik bio je štap kojim si gurao model da se ponaša pametnije. Nova generacija je model kojem je razmišljanje ušito u kosti: nije mu netko rekao „razmisli”, nego je tijekom treniranja nagrađivan kad je razmišljao dulje i temeljitije, a kažnjavan kad bi skakao na zaključak. Prompt trik bio je štaka. Ovo je operacija.
— Dobro, ali onda — vidim li ja taj proces razmišljanja kad pitam ChatGPT nešto? Ili to model radi negdje iza zavjese?
Uglavnom iza zavjese, da. To se zove reasoning tokens — tokeni razmišljanja. Token je, ako se nikad nisi pitao, komadić teksta kojim model računa — nekad cijela riječ, nekad samo dio riječi ili znak; njih model generira jedan po jedan, i baš njih se plaća, bilo tebi novčano bilo sustavu vremenski. Model te tokene razmišljanja generira, ti ih plaćaš, ali sučelje ti ih često ne pokaže cijele, nego samo neki sažetak ili čak ništa. Zašto sakriti? Nekad zato što je to sirovo razmišljanje zbilja zbrda-zdola i ne bi ti puno pomoglo da ga čitaš, nekad — budimo iskreni — i zato što tvrtka ne želi da vidiš unutarnji dijalog i ukradeš metodu. Ali nemoj se ljutiti na te skrivene tokene; oni su razlog zašto ti nekad odgovor dolazi sa zadrškom od nekoliko sekundi. Ne kasni server. Model se muči za tebe, u tišini, i to košta — i vrijeme i račun.
— Dobro, ali zašto to uopće POMAŽE? Zašto bi model bio bolji kad prvo napiše hrpu teksta sebi, umjesto da samo — razmisli u glavi, pa kaže rezultat?
Zato što on nema »u glavi«. Sjeti se, ovo je i dalje isti stroj koji predviđa sljedeću riječ na temelju prethodnih (K7, poglavlje 9) — nema odvojenog prostora za tihu misao, sve što »misli« mora doslovno postati tekst da bi mu poslužilo za sljedeći korak. Kad mu daš da prvo napiše korake, zapravo mu daš više prostora da problem razloži na komadiće, umjesto da u jednom dahu skoči s pitanja na odgovor — gdje je jedna pogrešna pretpostavka na početku dovoljna da sve otplovi krivo. Ovako prvo postavi manje korake, provjeri se usput, popravi grešku prije nego stigne do kraja. Razlaganje problema na sitnije korake smanjuje broj mjesta gdje se cijela stvar može srušiti u jednom udarcu. Isto zato ti kažeš učeniku da piše korake na testu iz matematike, ne samo konačni broj — ne da učitelj vidi trud, nego da SAM UČENIK usput uhvati gdje je zabrljao.
— Zvuči logično. Ali onda je ovo samo bolje pisanje domaće zadaće za sebe, a ne neka nova vrsta inteligencije?
Skoro. I to pitanje, drago moje, dovoljno je dobro da čeka svoju sekciju. Za sada zapamti samo ovo: model koji misli naglas na papiru nije prestao biti stroj koji predviđa riječi — samo je taj stroj konačno dobio dopuštenje da si ostavi bilješke prije nego digne ruku s odgovorom.

Nova os skaliranja: inference-time compute
— Dobro, čekaj — kaže laik, i vidi mu se da se sad tek zagrijava. — Cijelo vrijeme mi pričaš da je AI bio utrka u veličini. Veći model, više parametara, veći GPT. Sad mi kažeš da modeli razmišljaju prije nego što odgovore. Je li to onda ista utrka, samo u novom kostimu, ili je nešto sasvim treće?
Odlično pitanje, i evo poante ovog poglavlja u jednoj rečenici: nešto treće. Do sad je vrijedilo pravilo koje smo upoznali u prošloj knjizi (K7, poglavlje 5, ako te zanima cijela drama oko zakona skaliranja) — veći model, više podataka, više treniranja, bolji rezultat. Jedna os, jedan gumb, samo ga guraš gore. E sad je netko otkrio drugi gumb. Isti model, ista veličina, ista količina treninga — a ako mu daš da duže misli prije nego odgovori, odgovor mu je bolji. Nova dimenzija skaliranja. Ne veći mozak — dulje vrijeme razmišljanja.
— Ono kao razlika između genija koji baci odgovor za tri sekunde i genija koji sjedne, uzme papir i pet minuta računa?
Baš tako. I oboje su genijalci, isti IQ, ista škola — ali onaj koji je sjeo i računao rjeđe će pogriješiti na težem zadatku. Trik je u tome što to računanje nije besplatno. Traje. I netko to plaća.
— Aha, sad dolazimo do onog dijela gdje me razočaraš pričom o novcu.
Kad model počne duže misliti prije odgovora, ta mala stavka po upitu naraste. Ne dramatično za tebe kad pitaš gdje je najbliži McDonald's — tu mu ne treba razmišljanje, i pametan sustav to prepozna i ne troši ga uzalud. Ali kad mu daš dokaz iz matematičke olimpijade ili zadatak u programiranju gdje treba sastaviti dvadeset manjih komadića koda u jednu cjelinu koja skupa radi, model može provesti — figurativno rečeno — minute u nečemu što izgleda kao unutarnji monolog, prije nego ispljune tri rečenice odgovora. I za te minute netko plaća struju, vrijeme GPU-a (grafičke kartice, odnosno procesora koji pogoni sve to računanje u pozadini) i hlađenje podatkovnog centra.
— Čekaj, pa zašto bi neka firma to htjela? Zvuči kao da im ta nova poluga zapravo poskuplji posao, ne pojeftini.
Zato što se ekonomija cijele igre promijenila, i to je ono što je stvarno novo. Dosad je logika bila: uloži ogromnu lovu jednom, u trening, i onda serviraj jeftino, milijardama korisnika, do kraja života tog modela. Klasičan softverski biznis model — napravi jednom, prodaj beskonačno puta. E sad imaš i drugu opciju: model može biti manji, jeftiniji za trenirati, a onda dio troška prebaciš na svaki pojedinačni upit — pusti ga da razmišlja koliko treba, i naplati po utrošenom razmišljanju. To je bliže poslovnom modelu struje ili vode nego poslovnom modelu Netflixa. Plaćaš po potrošnji, ne pretplatu na neograničeno.
— Znači sad postoje dvije vrste skupog. Skupo jednom, i skupo svaki put.
Upravo to. I sad firme kombiniraju oboje — velik, skupo treniran model, kojem onda dodatno daš dulje da misli na teškim zadacima, pa plaćaš dvostruko na oba kraja. Nitko ti to ne govori otvoreno u marketinškom materijalu, jer „plaćaš po sekundi razmišljanja robota” zvuči manje sexy od „najmoćniji model do sada”. Ali kad vidiš da ti račun za API poziv — a to je taj trenutak kad tvoja aplikacija u pozadini pošalje pitanje modelu i plati mu za odgovor, bez da ti to ikad vidiš — naraste deset puta kad uključiš „reasoning mode”, to je razlog. Ne magija. Računica.
— Dobro, i ta žulja onda i mene, kao korisnika, jer čekam tih par sekundi dok se onaj kolutić na ekranu vrti?
Točno to. Kad vidiš da ChatGPT ili neki drugi model stane, pokaže neku poruku tipa „razmišljam...”, i prođe pet, deset, možda trideset sekundi prije odgovora — to nije kašnjenje servera, nije bug, nije loš internet. To je nova poluga koju smo upravo opisali, u punom pogonu, na tvom računu. Plaćaš vremenom da bi dobio bolji odgovor. I po prvi put u kratkoj povijesti chatbotova, sporost je feature, ne bug.

Skokovi i granice
— Dobro, dosta filozofije, daj mi brojke. Je li ovo stvarno bolje, ili samo bolje ‘zvuči’?
Brojke su brutalne, u dobrom smislu. Uzmi natjecateljsku matematiku — ne osnovnoškolsko zbrajanje, nego zadatke s olimpijada, onih gdje se petnaestogodišnjaci s IQ-om od 160 muče satima. Modeli bez reasoninga su na takvim testovima prolazili s tugom, kao učenik koji je došao na ispit nenaučen i nada se da će pogoditi. Reasoning modeli su na istim testovima počeli rješavati zadatke koje rješava možda pet posto ljudske populacije. Ne sve — ali dovoljno da matematičari na Twitteru počnu pisati duge niti s uzvičnicima.
Isto s kodom. Ne mislim na „napiši mi funkciju koja zbraja dva broja” — to je rješavalo i prije, to je trivijalno. Mislim na natjecateljsko programiranje, onu vrstu zadataka gdje moraš smisliti algoritam, ne samo prekucati sintaksu — gdje se traži da sam osmisliš rješenje, ne da samo znaš zapisati gotovu ideju u kod. Reasoning modeli su se počeli plasirati u rangove koji su, realno, iznad prosječnog profesionalnog programera na takvim natjecanjima. Ne iznad najboljih. Ali iznad prosjeka — da.
— Čekaj, iznad prosječnog programera? Trebam se bojati za posao?
Strpi se do petog i šestog poglavlja ove knjige, tamo se to pitanje ozbiljno secira. Za sad — ne, ne trebaš se bojati, iz razloga koji dolazi odmah iza ovoga. Ali da, ovo je bio trenutak kad su i inženjeri koji rade AI za živi kruh počeli malo nervozno vrtjeti kavu u šalici.
I znanost je osjetila razliku. Modeli su počeli pomagati u stvarima koje su se prije smatrale »to je za doktorande, ne za chatbot« — provjera dokaza, generiranje hipoteza, pretraga literature koja bi čovjeku uzela tjedne čitanja. Ne otkrivaju lijek za rak, budimo pošteni. Ali su korisni asistenti u poslu koji je dosad tražio godine specijalizacije.
— OK, impresivno. Ali negdje ovdje mora biti kvaka. Uvijek je.
Dvije kvake, i obje su bitne. Prva: razmišljanje ne liječi halucinacije — samo ih učini elegantnijima. (Halucinacija, ako se ne sjećaš, je kad model nešto samouvjereno izmisli i predstavi kao činjenicu.) Model i dalje zna izmisliti izvor, datum, funkciju koja ne postoji — samo to sad radi nakon pet koraka uvjerljivog razmišljanja, umjesto odmah. Dobio si samouvjerenu grešku obučenu u odijelo, ne manje grešku. Ako ti to zvuči kao opis polovice ljudi koje poznaješ — nisi jedini kome je to palo na pamet.
Druga kvaka: cijena. Svaki taj korak razmišljanja nije besplatan — pretvara se u tokene, i svaki takav komadić košta i vrijeme i novac. Postavi jednostavno pitanje „koji je glavni grad Francuske” reasoning modelu i on — ovisno o podešenju — može potrošiti sekunde razmišljajući o nečemu što ne treba razmišljati. To je kao platiti taksistu da te odveze do kioska preko puta ulice, a on prije toga smisli cijelu rutu, provjeri gorivo, konzultira kartu. Stigneš na cilj, ali si platio limuzinsku turu.
— Dobro, zadnje pitanje, i onda ću te pustiti. Je li to uopće razmišljanje? Ili samo bolji trik?
Pošteno pitanje, i pošten odgovor je — ne znamo, ljudi se oko toga svađaju otprilike kao oko religije. Jedna strana kaže: to je čisto glumljeno razmišljanje, model je samo naučen da generira tekst koji izgleda kao razmišljanje, jer je upravo na takvom tekstu treniran. Nema tu unutarnjeg iskustva, nema „aha” trenutka, samo statistika koja se pravi pametna. Druga strana kaže: a što je tvoje razmišljanje, ako ne isto to — obrada uzoraka naučenih tijekom života, samo u drugom mediju?
Iskreno, ne mislim da će se ta rasprava riješiti u ovom poglavlju, niti u ovoj knjizi. U poglavlju 14, kad budemo pitali je li AI svjestan, vraćamo se točno na ovo isto pitanje s druge strane — i spojler, ni tamo nema pravog odgovora. Za sad, praktični test je jedini koji imamo: rezultat na papiru. A rezultat, htjeli ili ne, ide gore.

Što reasoning znači za agente
— Dobro, sad kad model umije razmišljati prije nego odgovori… kako se to uopće spaja s onim agentom iz prvog poglavlja? Onim što sam ide, pretražuje internet i piše kod?
Sjećaš se agenta iz prvog poglavlja? Model koji ne samo da odgovara, nego djeluje — pozove alat, pročita rezultat, pozove drugi alat, zaključi. Cijela ta priča stoji na jednoj pretpostavci koju smo do sad prešutjeli: da model ZNA koje korake poduzeti i u kojem redu. E pa to je planiranje. A planiranje je — pogodi — upravo ono što reasoning model radi kad „razmišlja” prije nego progovori. Prije je agent morao planirati na isti impulzivan način na koji je i pisao odgovore: prvi korak koji mu padne na pamet, pa se snalazi u hodu. Sad ima mehanizam da prije akcije stane, razloži problem na korake, provjeri ih — pa onda krene djelovati. Reasoning nije samo bolji odgovor na kviz pitanje. Reasoning je motor planiranja.
— Ali agent bez planiranja je i dosad nekako funkcionirao, ne? Sam si rekao da su radili ti raniji agenti.
Funkcionirali, da, na jednostavnim zadacima — pretraži pa sažmi, na primjer. Ali čim zadatak ima više koraka koji ovise jedan o drugom — provjeri stanje baze, pa ako je takvo-i-takvo napravi ovo, inače ono, pa onda pozovi treći alat s rezultatom drugog — agent bez reasoning-a se gubi otprilike na trećem koraku. Ne zna zašto je krenuo tim putem, pa ne zna kad je krenuo pogrešnim. Reasoning model prije nego dirne alat razmisli: „OK, korak jedan je ovo, ako uspije ide korak dva, ako ne, probaj drugačije.” To je razlika između pripravnika koji odmah krene tipkati i onoga koji prvo nacrta plan na papiru.
— A gdje tu ulaze alati i pamćenje, oni o kojima si rekao da dolaze u sljedećim poglavljima?
Tu se slaže puzzle. Alati (MCP, poglavlje 4) su ruke agenta — s njima može nešto stvarno napraviti, pročitati datoteku, poslati upit, pokrenuti kod. Memorija je njegovo sjećanje na ono što je već radio, da ne kreće iznova. A reasoning je mozak koji odlučuje kojim redom te ruke koristiti i zašto. Sam po sebi, reasoning model koji samo razmišlja i ništa ne dira je filozof u fotelji — pametan, ali nikud ne stigne. Alati bez reasoning-a su ruke bez plana — brzo se pokvari nešto. Spoj sve troje — razmišljanje, alate, pamćenje — je ono što tek sad, 2024. i 2025., počinje nalikovati na agenta koji stvarno nešto odradi, a ne samo simulira da radi.
— Dobro, zvuči mi ovo skoro kao ono što psiholozi pišu o ljudskom mozgu. Brzo i sporo razmišljanje, je l' tako nešto?
Kahneman bi se osjećao ugodno u ovoj priči, da. Daniel Kahneman je psiholog koji je za svoje istraživanje ljudskog razmišljanja dobio Nobelovu nagradu, a najpoznatiji je po knjizi „Brzo i sporo mišljenje”, gdje ljudski um dijeli na dva sustava. Sustav 1 — brz, intuitivan, često pogrešan na složenim stvarima. Sustav 2 — spor, naporan, precizniji. AI je do kraja 2024. imao samo Sustav 1, koliko god brz i impresivan bio. Reasoning modeli su mu, u praktičnom smislu, dali Sustav 2. Ne jer je netko namjerno kopirao Kahnemana — nego jer se ispostavilo da je isti kompromis nužan i za silicij i za neurone: kad je problem lagan, brzo i intuitivno je dovoljno; kad je problem stvaran, moraš stati i razmisliti, po cijenu vremena.
— I kamo to onda vodi? Model koji planira, koristi alate i pamti — to zvuči već poprilično samostalno.
To je upravo pitanje koje treba da te malo zabrine, u dobrom smislu. Model koji razmišlja prije akcije, pa uzme alat, pa provjeri rezultat, pa nastavi — to više nije chatbot koji ti nudi rečenicu. To je nešto što sve više liči na suradnika koji sjedi za tipkovnicom umjesto tebe. A baš to je tema sljedećih poglavlja — jer upravo se u ovom periodu, s ovom kombinacijom, cijela ideja pisanja softvera počinje mijenjati iz temelja. Ne kao alat koji ti pomaže pisati kod. Kao nešto što kod piše samo, i planira samo, i — kako ćemo vidjeti — griješi samo. Ali to je priča za poglavlje pet.