Na Džoelovom sajtu nabasao sam na link na izuzetno zanimljiv tekst na blogu Rands in Repose. Naime, čovek priča o dva pristupa rešavanju problema (u razvoju softvera, ali je slika verovatno primenljiva i šire): inkrementalističkom i komplecionističkom. Da demistifikujemo stvari, imali su neki bag u koodu i autor je predložio da se stvar jednokratno “zakrpi”, ne rešavajući problem suštinski, zbog nedostatka vremena za trajno i celovito rešenje, sa argumentom da je “bolje išta nego ništa”. Njegov kolega se nije složio, rekavši da je predloženo rešenje “manje nego ništa”.

Iskusniji programeri će lako prepoznati datu situaciju, meni se slične dešavaju barem jednom mesečno. Iako autor bloga izgleda zagovara inkrementalističko rešenje, ja bih sebe pre svrstao u drugi tabor. Naime, iz iskustva znam da celovito rešenje u krajnjoj liniji štedi vreme. Međutim, ono što je u konkretnoj situaciji presudno je zloglasni rok (Englezi imaju adekvatno zastrašujući pojam deadline), koji se verovatno mora ispoštovati. U tom smislu nema ni izbora koje ćemo rešenje odabrati. U trenutku kad je dedlajn pred vratima, ne biraju se sredstva: program se krpi kako se zna i ume. Stvarne razlike u pristupu se primećuju kad naizgled ima dovoljno vremena, i kad se i donose najbitnije odluke u projektu.

U tom smislu, ja bih predložio reviziju Rands-ove podele i izdvojio tri vrste programera: inkrementaliste i realistične i nerealistične komplecioniste. ;)