Kada bug postane feature

13. ruj. 2022

Dobar dio svog radnog vremena developeri provedu otklanjajući razne probleme i bugove.

Bugovi su dio svakodnevice, nastaju u sklopu razvoja softvera, a često greška koja se dogodi u jednom procesu ne mora nužno predstavljati nešto loše za drugi.

Tako ako pogledamo unazad, mnogi bugovi u razvoju softvera i IT sferi, postali su sjajni featurei koji su danas gotovo svakodnevna rutina i funkcije koje koriste milijuni korisnika.

Ovdje ćemo predstaviti neke od najpoznatijih primjera. Neke od njih vjerojatno nikada ne biste smatrali slučajnima.

Google Undo

Koliko ste puta poslali e-mail i predomislili se ili je otišao na pogrešnu adresu, a spasio vas je Googleov Undo?

Jeste li znali da je ova funkcija zapravo stvorena greškom?!

Gmailu treba 5 sekundi za obradu e-pošte, što je posljedica kašnjenja od 5 sekundi prilikom obrade elektronske poruke. Programeri, koji su radili na Gmailu, pretvorili su ovu pogrešku u značajku, koja jednostavno, i vrlo praktično, omogućuje korisnicima da zaustave e-mail prije nego što je on stvarno poslan.

CTRL+ALT+DEL

Ctrl+Alt+Delete izumio je David Bradley, programer koji je radio na prvom IBM osobnom računalu. Jedan od problema s tadašnjim razvojnim timom bio je taj da kad god bi računalo naišlo na pogrešku u kodiranju, morali su ručno ponovno pokrenuti cijeli sustav.

Tako je Bradly stvorio prečac na tipkovnici, koji je pokrenuo resetiranje sustava bez testova memorije koji su oduzimali vrijeme i frustrirali programere. Trebalo mu je samo 5 minuta, bez namjere da ikad postane dio korisničkog iskustva. Kombinacija ctrl+alt+del odabrana je prema rasporedu tipkovnice jer se činilo malo vjerojatnim da bi sve tri bile slučajno pritisnute u isto vrijeme.

U današnje vrijeme često upisujemo ovaj prečac kako bismo ažurirali aplikaciju koja ne reagira, ponovno pokrenuli računalo itd. Iako je nastao ranih 80-ih, postao je vidljiviji tek desetljeće kasnije, kada su Windowsi zaživjeli.

Skriveni fileovi na Linuxu

U Linuxu i Unixu možete jednostavno sakriti datoteku jednostavnim dodavanjem točke ispred naziva datoteke. To ipak nije bila izvorna namjera, već je imala veze s lakšom navigacijom kada su stvoreni prvi sustavi datoteka na Unixu.

Jedna datoteka s točkom (.) i datoteka s dvostrukom točkom (..) dodane su u svaki direktorij kako bi se olakšalo kretanje po strukturi direktorija. Budući da te datoteke u sebi nisu sadržavale stvarne podatke, binarnom ls-u je dodan brzi hack, koji je uključivao provjeru prvog znaka - ako je to točka, treba je zanemariti. I uspjelo je.

Danas ako napravite datoteku koja počinje s točkom, ona će postati datoteka na disku koja se standardno ne prikazuje, što svakako, kao što vidimo, nije bila prvotna namjera.

C++ Templatei

Templatei su specifična značajka C++-a koja je omogućila važan razvoj generičkog programiranja (npr. STL biblioteka), a zapravo je nastala greškom u procesu standardizacije. Ova funkcija je trebala biti daleko manje moćna i zanimljiva, ali promjene standardnog teksta u posljednjem trenutku dovele su do drugačijeg učinka.

Šahovska partija velemajstora i računala

Nesvakidašnja partija šaha odigrana je 1997. godine, a u povijest je ušla zahvaljujući pogrešci u programu.

Protivnici ovog povijesnog susreta bili su Garry Kasparov, slavni šahovski velemajstor, te još jedan neobičniji protivnik - Deep Blue, IBM računalo. Kad je Deep Blue pobijedio u finalnom meču, Kasparov je odbio vjerovati u to, smatrajući Deep Blueovu igru ​​previše "ljudskom." Onima koji su više vjerovali u moć tehnologije činilo se da je umjetna inteligencija dosegla točku u kojoj može nadmudriti čovjeka u igri koja se dugo smatrala presloženom za stroj.

Petnaest godina kasnije, pak, jedan od tvoraca Deep Bluea rekao je da je ključni potez koji je zadao konačni udarac Kasparovu rezultat greške u softveru Deep Bluea, te da se to navodno dogodilo u trenutku kada računalo više nije znalo što bi učinilo sljedeće..

Super Mario Bros

Ako ste ljubitelji videoigara, onda će vam biti posebno zanimljivo da su neki potezi u njima zapravo nastali kao rezultat pogreške.

Sigurno ste barem jednom igrali Super Mario, a jedno od pravila kojeg se vjerojatno sjećate je da kada Mario udari blokove glavom, zarađujete dodatne novčiće.

Naizgled vrlo simpatično, ovo zapravo nikada nije bilo planirano. Nastalo je kao greška koju su programeri ispravili, a nakon što su dizajneri vidjeli da dodaje nešto igri, odlučili su vratiti tu funkciju.

Uređivanje MySpace profila

Svi mi koji smo odrasli u 90-ima znamo koliko je MySpace bio popularan. A jeste li znali da je mogućnost uređivanja MySpace profila zapravo bila greška?

Uređivanje HTML-a i CSS-a ovoj je platformi donijelo ogromnu popularnost u usporedbi s ostalim konkurentima. Još jedan primjer kako se greška pretvara u snagu.

Mortal Kombat

I ERMAC lik iz Mortal Kombata je rezultat greške. Originalna igra napisana je u macrou kako bi uhvatila pogreške kodiranja poznate i kao “eror macro.” Svaki put kad bi se dogodila takva greška tijekom igre, ispisao bi se tekst "ermac", što je također pokrenulo priče o uvođenju novog lika.

ERMAC je tada predstavljen kao novi lik u Ultimate Mortal Kombat 3, iako zapravo nikada nije bio planiran.

Ima li još?

Bugovi pretvoreni u featuree dio su još mnogih video igrica, od Minecrafta do Lare Croft, o čemu više možete pročitati OVDJE.

Ako vas zanima ova tema, možete pronaći veliki broj rasprava na forumima kao na primjer Quora.  

Jeste li ikada napravili pogrešku koja je postala feature? Ako vas zanimaju iskustva drugih programera ili želite čuti što vaše kolege općenito misle o ovoj temi, to možete učiniti započinjanjem rasprave na Joberty zajednici.

Joberty

Joberty je platforma za razmjenu iskustava iz IT zajednice.

Tvoja prijava je uspješno sačuvana!
Odlično! Kako bi imao pristup cijelom sadržaju bloga potrebno je izvršiti proces plaćanja.
Tvoja prijava je uspješna!
Tvoj nalog je aktiviran, sada imaš pristup cijelom sadržaju bloga.