Spoygg - Iteracija iliti kako programirati u životu

  1. Iterativni proces je proces u kojem se promene uvode pokušaj po pokušaj.
  2. U iterativnom procesu svaki pokušaj obezbeđuje ključne informacije koje povećavaju mogučnost uspeha sledećeg pokušaja.
  3. Ključne informacije je jedino moguće dobiti kroz praksu.
  4. Kroz praksu se javljaju novi aspekti koji menjaju prvobitnu zamisao bilo isticanjem novog načina rada koji ranije nije bio očit, bilo manjkavošću rešenja koje je primenjeno.

Ovo su bitne stvari koje sam naučio o životu iz programiranja. Iako svaki dobar projekat zahteva početnu arhitekturu i zamisao kako će sistem funkcionisati, krajnja slika nikad nije identična sa prvobitnom zamisli. Zašto je ovo bitno?

Bitno je zato što tako funkcioniše ceo život!

Samo što je u programiranju taj proces veoma očit:

  • Od plana, znanja i praznog foldera kreneš da gradiš gotov proizvod.
  • Krećeš od ničeg, od praznog foldera na disku, potrebno je doneti odluke.
  • Kako dodaješ kod u taj folder stvari počinju da se kreću, sad se već osećaš bolje.
  • Uzimaš jedan sledeći zadatak da obaviš jer si svestan da postoji određeni red kojim stvari moraju ići, komponenta C ne radi bez komponente B, a B ne radi bez A.
  • Počni od A.
  • Ne očajavaj što C već ne postoji, poštuj proces.
  • Dalje svaka komponenta je podeljena na svoje delove: a, b, c, d.
  • Svaku komponentu rešavaš tako što gradiš jedan po jedan deo.
  • Svaki deo rešavaš tako što kreneš od minimalnog funkcionalnog rešenja i dodaješ po malo dok taj deo ne bude u skladu sa njegovim specifikacijama.
  • itd.

Ova poslednja stavka je ono što nazivamo iterativni proces. Ustvari jedan njegov činilac. U iterativnom procesu smo svesni da deo gradiš pokušaj po pokušaj. Da komponentu gradiš deo po deo (znači još pokušaja u okviru pokušaja). A da ceo sistem gradiš komponentu po komponentu, s vremena na vreme se starajući o tome da svi delovi lepo sarađuju i dodaješ male ali potrebne izmene da bi se sve još bolje složilo. Kroz pokušaje sve više učiš o specifičnom sistemu koji gradiš i njegovim specifičnim zahtevima i osobinama. Znači ceo sistem gradiš pokušaj po pokušaj u okviru pokušaja u okviru pokušaja ad infinitum :D

Ovo je veoma važna lekciju koju bih voleo da više ljudi primeni u životu, a primenjiv je na sve aspekte života. Ljudi odustaju pre nego što su uopšte pokušali da učine prvi korak od mnogih koji su potrebni da bi se bilo šta uradilo. Da li znate koji je prosek pokušaja pre nego što odustanemo od nečeg? Manje od jedan!!! Ljudi bukvalno odustaju od nečeg pre nego što su uopšte pokušali da ga završe kako god izgledalo kad bude gotovo. Druga interesantna statistika je da većina projekata propadne na 90% posto gotovog posla. Odustaje se kada je potreban još jadan mali napor da bi sve bilo gotovo.

Daj bre čoveče, koliko puta dete padne dok ne nauči da hoda? Koliko puta si pao sa bicikla dok si učio da ga voziš? Koliko puta si pao kad si i naučio da ga voziš? Pa nisi rekao: “Iako vozim već deset godina ovaj pad definitivno znači da bicikli nije za mene.” Kako je moguće da smo potpuno obrisali iz srca taj dečiji entuzijazam, strast i veru da sve što zamislim mogu i da ostvarim jednostavnim upornim pokušajima.

Znam da ovo nije laka lekcija. Jednostavno previše puta se od nas očekivalo da budemo savršeni pre nego što smo pogrešili. Greške su dobre, greške su koraci na putu ostvarenja. Uspešni su oni koji su napravili najviše grešaka u životu. Jedino kroz greške se zaista uči, kroz uspeh samo održavamo status quo.

Zato usadite sebi u glavu da je bukvalno sve što vidite oko sebe nastalo zato što je neko bio dovoljno detinjast da pokušava dokle god nije ostvario svoju zamisao. Uvek pokušaj, iskustvo je neprocenjivo.

Screenshot from 2013-01-20 12:19:34
Deo koda našeg sajta koji prilikom učitavanja strane na kojoj se nalazi YouTube video proverava da li na našem serveru već postoji thumbnail za taj video, i ako ne postoji skida ga sa YouTube servera i snima na naš server, jer YouTube ograničava koliko puta možeš u toku određenog vremena da skineš thumbnail sa njihovog servera. Ukoliko bi prilikom svakog učitavanja strane na kojoj ima YT video (uključujući i početnu) skidali thumbnail sa YT servera, s vremena na vreme slika se ne bi prikazala. Zato sliku samo jednom uzimamo sa YT i snimamo na naš server i svaki sledeći put za taj video sliku uzimamo s našeg servera. To se zove u programiranju “keširanje” i savršen je primer sarađivanja dva potpuno odvojena sistema i njihovih komponenti.

Širi radost, možda ćeš baš ti nekom ulepšati dan :)

8 Comments

  1. Jaca

    Odlično 5+, uz ovu temu preporučujem, kao dodatnu inspiraciju svima koji nisu gledali: http://www.youtube.com/watch?feature=player_embedded&v=YgFsbSYE4Ks
    Srdačan pozdrav

  2. jovanajovana

    divan tekst :)
    kako je to dobra stvar kada izvucemo maksimum iz svega cime se bavimo i gledamo da naucimo nesto iz svih uglova :) bilo to kopanje baste, programiranje ili slikanje :)
    ja sam na tih 90 posto sada a treba mi 100 , trebao mi je ovaj tekst
    hvala ! :) poooz

  3. Dusica

    Odlican tekst. Zapravo citav koncept vaseg sajta je u ovom tekstu, ali je nadogradjen sa idejama, nacinima, metodama, misljenjima itd. Ljudi obozavaju slozenost svih zivotnih postupaka, a zapravo Istina je vrlo vrlo jednostavna bas kao i tvoj tekst. Hvala.

  4. Mira Purhmajer

    A problem bi mogao da bude i što ljudi ne znaju uvek redosled komponenata u svom životu, pa krenu od B, a ono ne radi bez A… A kao avaj! :) ipak, reče jednom neko da te mali koraci mogu odvesti do Mont Everesta, samo ako ih preduzimaš… Setimo se toga često, jer komp nismo mi, nego kao što reče Spoygg život, ili Univerzum – on će da promeša karte…

  5. Vina

    Mali ali dosledni koraci menjaju naš život, menjaju svet. Uvek biti konektovan sa sobom, i u svakom momentu preispitati sebe šta nam je alajment da uradimo, da li nam to prija, realno sagledavanje sopstvenog učinka…. Siguran uspeh i sreća u svakom smislu.
    Obožavam ovaj tekst :)

  6. Suzi

    Kako ono bese ‘ i put od hiljadu milja pocinje jednim korakom’ ;)

Leave a Comment