Zakoni razvoja

3 min

Okej, vreme je da stanemo. Stop. Dosta više s nasumičnim razvojem. Ne pričamo više o pravljenju sajta za taštu ili aplikacije za lokalni video klub. Reč je o našoj svakodnevici. Budućnosti. O životima svih nas. Ništa više, ništa manje.

Kratki rezovi

Godine 1980. NORAD je usled kompjuterske greške objavio da je u toku napad na Sjedinjene Države.

Godine 1985. je otkrivena ozonska rupa iznad Antartika koju NASA nije uočila za sedam godina proučavanja, usled greške u dizajnu softvera za analizu podataka.

Godine 1996. raketa Ariane 5 je skrenula sa predviđene putanje 37 sekundi nakon poletanja, jer je ponovno upotrebljen kod koji je radio sa prethodnom generacijom raketa.

Godine 1999. je Marsov orbiter eksplodirao praktično čim je dostigao odredište. NASA je unajmila izvođača radova koji je koristio imperijalne jedinice, umesto metričkih.

Godine 2014. servis za hitne slučajeve (911) nije radio u celoj državi Washington, usled nasumično postavljenog maksimuma određenog programskog brojača.

Godine 2018. je zabeležena prva greška na autonomnim vozilima: Uber-ov automobil je izazvao smrt pešaka koji je prepoznat kao false positive slučaj.

Godine 2019. softverska greška na avionima Boeing 737 dovode do pada dve letelice.

Godine 2014. postojalo je 18.5 miliona programera. 2018. taj broj raste na 23 miliona, na kraju ove godine će nas biti 26.5 miliona; predviđanja kažu da 2023. taj broj raste na 27.7 miliona.

Apokalipsa, sada?

Stanje stvari

Softver je magična stvar: editovanjem tekstualnih fajlova postižemo da ceo sistem radi na odgovarajući način. To je predivno dostignuće, ali ujedno i prokletstvo. Pošto ga je moguće menjati tako lako, softver se neprestano menja, usložnjava, uvećava. I tako do trenutka kada više nije moguće pojmiti šta se tačno dešava u sistemu.

Nije softver kriv za to. On radi tačno ono što mu je iskodirano da radi. Greška je u tome što je pogrešno napisan.

Suština galopirajuće kompleksnosti je nerazumevanje problema koji softver rešava. Mi, softverski inženjeri, ne kapiramo šta to tačno radimo. I, čini mi se, da nas baš briga za to.

Zakoni razvoja

Stvari moraju da se promene, iz korena. Dosta je više sa veličanjem pukog znanja kodiranja. Potrebno je da se osvrnemo ŠTA i KAKO to pravimo. Čak i kada imamo ideju kako se prave kompleskni sistemi, mi to ne radimo.

Moraju se konačno uvrežiti pravila, zakoni razvoja. Svi koji se bave razvojem, od arhitekata, programera, dizajnera, hardveraša - moraju da stvore koncepte i sveopšte prihvaćene zakone koji svaki razvoj mora da prati. Trebaju nam Njutnovi zakoni, a ne design patterni.

Nije reč o apsolutizmu. Reč je o evoluciji.

Jer, ako mi to ne uradimo, ko će drugi?

Misao za kraj

Da li možete da zamisliti razvoj softvera… bez aktivnosti koju danas nazivamo programiranjem?

🧧
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.