Kao

Razvoj softvera je poput plovidbe morem. Kormiralimo snagom znanja i iskustva, krotimo ćudi talasa koji nas prate; katkad nas lagano ljuljajući, a nekad divlje terajući ka obzorju. Stojimo na pramcu, mi pomorci softverskog razvoja, zagledani u plavetnilo koje se prostire do kraja vidika. U večito neizvesnom prostranstvu, pitamo se - šta donosi sledeći talas, kakvi novi zahtevi nas čekaju, gde će zapeti greška, hoće li klijent biti zadovoljan, kakav će bag isplivati? Svaki dan na moru nosi novu lekciju, svaki izazov donosi vrednost koja se preslikava na naš rad. Kada je posada našeg softverskog tima uigrana, jedrimo najbrže; svaki vetar nas gura u leđa, svaki talas nas baca ka napred. Na moru se sve, svakog časa, neprestano menja; mi, pomorci softverskog razvoja plešemo večitu igru s vetrom, vodom, suncem i mesecom; jedrimo izazovima projekta stalno dalje, ka cilju. …

Al’ sam vas preveslao.

Arhitektura

Predavanje na arhitektonskom fakultetu:

Dragi studenti, osmotrite ovaj građevinski objekat; uočite stamenu osnovu i ispratite modularnost prostorija, nasleđivanje spratova… sve je poput razvoja kakvog softverskog projekta.

(nijedan profesor arhitekture ikada.)

Da li su poređenja simetrična? Ako je razvoj softvera sličan arhitekturi, da li je arhitektura nalik razvoju softvera?

Metafora

Analogije i metafore su neizbežne u naučnoj naraciji. Naučnici redovno posežu za poređenjima da bi formulisali hipoteze i interpretirali rezultate, kao i da komuniciraju nalaze, zapažanja, rezultate. Ovakav način izražavanja odgovara nestručnima: dobijaju smisao i kontekstualizuju apstraktne ideje, stiču nova znanja. Dakle, poređenja su neophodna - neki tvrde da su nisu u pitanju samo lingvističke figure, već osnova za misaone procese i konceptualna razumevanja, jer mapiraju značenja i znanja iz jednog domena u drugi.

S druge strane, metafore mogu da ometaju razumevanje; čak i pojačavaju nedoumice i nesporazume. Zanimljiva je kritika metafore za gen (jedinica nasleđivanja): od “nacrt”, koja se učestalo koristi, bolje je poređenje “recept”, jer je preciznija analogija. Nisam slučajno izabrao ovaj primer: gde su geni u programiranju? U klasama?

Kakve veze ovo ima sa softverskim inženjerstvom? Velike. To što lingvistike nigde nema u korpusu inženjera koji se - ironije li - bave programskim jezicima ne predstavlja izgovor. Programiranje je komunikcija sa drugim inženjerima kroz kod; u svetu koji je sačinjen od apstrakcija pravilna upotreba poređenja je važna.

Etika poređenja

Pristižem do teme. Uočavam učestalu potrebu za nečim što nazivam “generalizacija poređenjem.” To su poređenja koja generalizuju celu struku, poredeći je sa drugim aktivnostima:

…i tako se ovaj niz svakodnevno nastavlja dalje, za inspiraciju je dovoljno uključiti se na LI.

Besmislice.

Problem sa ovakvim poređenjima je stručnost. Poređenje dve prakse može da pruži samo onaj ko je profesionalno radio u obe struke. Mnogi od autora gornjih izjava nude privid razumevanja pružajući nam poređenje koje nam na prvi pogled izgleda smisleno, jer, zapravo, pojma nemamo kako ta druga aktivnost (obrada polja, snimanje filma…) zaista izgleda. Kako ispada, isti slučaj je i sa autorima “pametnih” misli: ni oni sami nemaju profesionalna iskustva iz bilo koje navedene oblasti sa kojom porede razvoj softvera.

Autori, dakle, porede razvoj softvera sa praksamo o kojima sami nemaju pojma. To dovodi u pitanju njihovu etiku: pričaju o nečemu o čemu ne znaju.

Samo-šamar

Oblače, šta je ovo? Šta pa ti, Oblače, znaš o baštovanstvu!?

Sad bi bio štos da izvučem diplomu hortikulture sa poljoprivrednog fakulteta - ali, jbg, nemam. Greši čovek.

Inače, “snimanje filma” je moja ideja o tome na šta bi razvoj softvera mogao da liči - uz sva upozorenja da o snimanju filmova znam tek ono šta sam pročitao iz popularističkih knjiga. Čini mi se da je taj proces u isto vreme i besramno egoističan i podvrgnut pravilima kompozicije kadrova u službi pričanja priče; slično razvoju softvera?

Umetnost

Granica koju ne prelazim je poređenje razvoja sa umetnošću. To mi govori da 1) ništa ne znate o umetnosti i 2) ništa ne znate o razvoju.

🧧
Nisam definisan svojim stavovima. Stavove usvajamo, menjamo, nadograđujemo, ali oni ne čine nas same. Manje je važno da li se slažemo,
koliko da se razumemo.
> ČASTI KAFU <