Ako ste tek skočili na ovu stranicu, možda prije svega da pročitate prethodne dijelove i to:
- Softverski obrt/zanatstvo
- Softver zanatlija II
- Softver zanatlija III – Demistifikacija agilnosti
- Softver zanatlija IV – Softverski obrt
Dio I. Ideologija i stav
Stav softverskog obrta
Na prste jedne ruke se mogu nabrojati situacije kada je nekada davno napisani kôd dobar i dan danas. Ako svaki ili većinu kôda koji smo pisali nekada u prošlosti i dan danas gledamo kao dobar ili nedaj Bože odličan, to veoma prosto znači da od tada, pa do danas, nismo naučili apsolutno ništa!
Za softverske obrtnike:
- cjeloživotna obaveza je pronalaženja načina kako biti bolji;
- glavni cilj je ostvarivanje cilja klijenta na najefikasniji način;
- moralna obaveza je dijeljenje znanja s manje iskusnim obrtnicima.
Za svakog programera, a posebno za onoga koji jeste ili želi da bude profesionalac, majstor, vrhunski znalac, softverski obrtnik, veoma je važno shvatiti da je svaki pojedinac „vlasnik sopstvene karijere”.
Ko je vlasnik naše karijere?
Slijedeći dva pasusa ćemo citirati iz knjige jer su veoma sažeta i govore mnogo o tome kako se svaki pojedinac treba postaviti naspram sopstvene karijere.
Šta ako nam firma za koju radimo ne kupi nijednu knjigu? Što ako nas kompanija nikad nije poslala na bilo koji kurs ili konferenciju? Da li bi to bio jedini način da saznamo nešto novo? Da li to zaista znači da je kompanija loša?
Zamislite da vam je potreban vodoinstalater da biste obavili neki posao u svojoj kući. Zamislite da vam treba pravnik za rješavanje bilo kakvih pravnih pitanja, ili liječnik kada ste bolesni, ili stomatolog kada imate bolan zub. Obično idete tim profesionalcima kada imate problema, pa zamislite da vam se oni obraćaju i kažu: „Možete li mi kupiti knjigu? Možete li me poslati na kurs? “ Šta biste pomislili o tome? Da stvar bude još gora, zamislite da se iz nekog stvarno bizarnog razloga odlučite kupiti im knjigu ili poslati na kurs, a kad steknu znanje koje ste im dali, vraćaju se i naplaćuju vam usluge. Kako vam sve ovo zvuči?
Naravno, mnoštvo je poslova oko nas u kojima firme ne bi mogle opstati ako ne bi sve ovo iznad radile, ali ovdje se ne govori o tim poslovima i takvim firmama. Pa čak se ne govori ni o programerima. Govori se o profesionalcima, stručnjacima, softverskim obrtnicima, softverskim velemajstorima. Programeri koji se oslanjaju samo na pomoć firme u njihovom usavršavanju nisu uošte profesionalni programeri softvera, nego samo zamaskirani najobičniji tvornički radnici!
Da ne bi bilo zabune, i sam Sandro je to pojasnio u ovom poglavlju. Firme trebaju da pomažu svojim radnicima na sve moguće načine da se usavrše, da budu bolji, ali to ne znači da softverski majstori trebaju na sve to gledati kao obavezu firme i samo i jedino se na to oslanjati. Ili većinski se na to oslanjati. U smislu, ako firma pogura dobro i jest, a ako ne pogura, pa šta je tu je, ja sam profesionalac i sam ću da nađem način kako da se usavršim.
Odnos poslodavac-zaposlenik
Naravno, ako se želi biti ovakav kako je opisano iznad, onda odnos poslodavac-zaposlenik nikako ne može biti u tradicionalnom obliku kao što je to slučaj i dan danas u mnogim firmama. Vratimo se samo na citirane pasuse. Ako se želi uposliti profesionalni vodoinstalater, pravnik, ekonomista, kakav odnos bi bio s njima? Kakav ugovor bi napravili, šta bi se poštovalo u ugovoru itd itd?
Ne može se unajmiti pravnik i onda mu visiti nad glavom i govoriti, ovo ćeš ovako, ovo ćeš onako. Sad ćeš ovo, sad ćeš ono i slično. To ne ide tako! Pravniku se kaže šta je problem, a on kao stručnjak će iznaći najbolje, najefikasnije, optimalno rješenje.
Živimo u svijetu u kom ima sve više i više informacija, a sve manje i manje smisla.
Žan Badrijah (Jean Baudrillard)
Kao što se može vidjeti na ovoj internet domeni, ali i na profilu na Medium-u, autor ovih redaka voli učenje, izučavanje, studiranje. Voli metode prenošenja znanja i sve ono što je vezano za obrazovanje ili sticanje novih vještina i znanja. Slično je, očito, i s Sandrom, jer nam u svojoj knjizi donosi čak nekoliko poglavlja u kojima pokušava približiti ili objasniti šta i kako raditi pa da se bude profesionalac, vrhunski znalac, softverski velemajstor, softverski obrtnik.
Tako on veli:
1. Knjige, mnogo knjiga
Živimo u vremenima u kojima ima toliko knjiga u raznim formatima kakvih ljudska civilizacija nije upamtila. U tom mnoštvu je preteško biti pametan i znati šta izabrati, ali barem treba znati u koji odjeljak biblioteke otići. Pa tako se imaju knjige:
- Knjige vezane za tehnologiju – najbolje se raspitati koju knjigu kupiti, posuditi za posebnu oblast koja nas zanima ili smo trenutno u potrebi da načimo zbog prirode posla, projekta, …
- Konceptualne knjige – to su knjige s kojima se uče novi pojomovi, paradigme i prakse. Znanja iz ovih knjiga se ne mogu odmah primijeniti, kao iz prethodnih. To nisu praktikumi, ali otvaraju vidike.
- Biheviorističke knjige ili knjige ponašanja – uz njihovu pomoć bismo trebali načiti kako biti efikasniji, kako biti profesionalac, kako postupati s ljudima uopšteno, ali i konkretno s klijentima, rokovima, članovima tima, …
- Revolucionarne knjige – to su knjige koje nekada znaju izazvati veliki bum na tržištu, a nekada su potpuno marginalizirane. Marginalizirane budu uglavnom zbog toga što su mnogo ispred svog vremena, pa ih mnogi ne razumiju i odbace. S njima se može naučiti mnogo, slično kao s konceptualnim knjigama. Neke od ovih knjiga su: The Pragmatic Programmer, The Mythical Man-Month, Design Patterns (DoF), Test-Driven Development: By Example, Extreme Programming Explained: Embrace Change, The Clean Coder i Refactoring (Nisam siguran da li je i jedna od navedenih knjiga prevedena na bosanski, pa stoga samo naslovi na engleskom radi lakšeg pronalaska na internetu)
2. Blogovi
Mnogi veliki autori skoro da su odustali od pisanja knjiga. Ili barem pisanja knjiga na svaku moguću temu i radije pišu blogove. Praćenje njih, čitanje komentara i učestvovanje u diskusijama itekako može pomoći u vlastitom razvoju.
Ali ovdje treba itekako biti obazriv. Mnogo je danas programera koji žele da budu slavni ili da poprave svoj CV pa se odluče na pisanje. S njima se veoma često mogu stvari naučiti na pogrešan način. Nije to stvar samo s religijom ili politikom kako vidimo, nego i s svijetom računara, odnosno u ovom konkretnom slučaju razvojem softvera.
Naravno, pokrenuti vlastiti blog je još jedan korak dalje, bolje, više.
3. Veb stranice i portali s tehničkom pozadinom
Svaka zemlja (osim Bosne, haman) ima barem jedan IT časopis, ali i portal na kojima objavljuje stvari vezano za IT na veoma stručnom nivou s recenzijama. I takve stranice ne treba miješati s stranicama nekih zajednica, poput linux zajednica, macos zajednica, zajednica nekog programskog jezika i slično.
4. Znati koga zapratiti
Slično je kao i s knjigama. U mnoštvu članaka i među mnoštvom autora teško je znati koga zapratiti, ali podjela se može vršiti baš isto kao i za knjige, pa na osnovu toga onda zapratiti određene autore u razgovoru sa zajednicom i iskustvima drugih.
5. Društvene mreže (Ne nisu socijalne, u našem jeziku socijalna mreža ima potpuno drugačije značenje nego u engleskom)
Ovdje se prvenstveno misli na Twitter. Ima se koga zapratiti, šta napisati, pročitati, samo valja naći prave ljude. Također uz pomoć društvenih mreža se može proširiti informacija o novom blogu, kao što radi i autor ovih redaka.
6. Praksa, praksa, praksa, …. jesmo li rekli prasa?
Kod prakse ne treba se samo fokusirati na rješavanje problema nego i na mnoge druge usputne stvari, a koje će olakšati život, jer se rade mehanički. Baš poput vožnje automobila. U početku, kada se učilo kako voziti, nije se vidjelo ništa. Preznojavalo se na svakom stajanju, mijenjaju brzine, uzbrdici, nizbrdici. Ako bi ispred nas bio neki kamion prati bi ga kilometrima i ne bismo imali hrabrosti da ga preteknemo. Slično je i s programiranjem. Za programiranje prvo i osnovo što treba naučiti je kucati naslijepo na tastaturi. Pa onda koristiti razne olakšice koje se nalaze u IDE-ovima za programske jezike i/ili okvire koji se koriste/uče i slično.
7. Kate – Ne iz karatea, nego mali jednostavni primjeri s kojima se uče algoritmi, dobre prakse
Za ovu tačku ćemo samo postaviti link na jednu od stranica koja se bavi Katama – http://codekata.com/kata/codekata-how-it-started/
8. Vlastiti projekti kao hobi ili engleskim rječnikom kazano – Pet Projects
To je mali projekat na kom se radi iz hobija, iz ljubavi, drži ga se, njeguje, čuva, baš poput kućnog ljubimca. Na takvim projektima sami biramo tehnologije, programske jezike, programske okvire, rokove, dizajn, baš sve. I upravo kroz to učimo i saznavamo mnoge stvari. Nailazimo na mnoštvo problema gdje je potrebno pitati u raznim programerskim zajednicama kako riješiti problem i kako naučiti pristupiti problemu i pronalasku rješenja.
9. Učlaniti se u klubove razvoja sotvera na principima otvorenog koda
Nije rijedak slučaj da neki svršenik IT fakulteta pita, šta da radim? Kako da postignem barem neko iskustvo i nešto da upišem u CV kako bih bio konkurentan na konkrusu za posao. Nije rijedak ni odgovor koji kaže da se učlani u neki projekat na Github-u i da se doprinese. Takvi odgovori su često presmiješni. Kako će doprinijeti neko bilo kom projektu ako nema iskustva? Međutim, kada se priča o softverskim obrtnicima, softverskim velemajstorima tada ovo itekako ima smisla.
Svakako, savjet za početnike, ali i profesionalce kada se priključuju bilo kom projektu, a posebno projektu otvorenog koda jeste da počnu s testovima. Mnoštvo projekata nema testove.
10. Nestrahovati, nego naprotiv, njegovati progamiranje u paru – Pair Programming
Mnogi programeri, posebno oni s dugogodišnjim radnim iskustvom imaju strah od programiranja u paru. Plaše se da će biti razotkriveni i da će se pokazati kako iako imaju ogromno radno iskustvo nisu baš vrhunski stručnjaci. No, to je samo subjektivni stav i fobija, strah koji nadvladava realnost. Svi trebaju da se oslobode i primjenjuju programiranje u paru na projektima u zabavi, hobiju ili na poslu. Tu se uči mnogo toga, čak i ne vezano za programiranje, kao što je odnos prema kolegama, način izražavanja, prezentovanja, …
11. Socijalizacija! Ovo je nešto što je stereotip – programeri nisu društveni, a trebali/morali bi biti
U Proglasu softverskog obrta ima rečenica koja glasi:
Ne samo individualci i interakcije, već također i zajednica profesionalaca
Ideja, odnosno stereotipi da su programeri potpuno introventni, nedruštveni tipovi s velikim cvikama i staklima kao dno od tegle je potpuno zastarjela. Zajednice programera su veoma aktivne, produktive, proaktivne i to treba njegovati i pridruživati se takvim zajednicama i aktivnostima koje one organizuju.
12. Truditi se u istraživanjima toliko da se bude kao Dora pronalazač
Jedna od najvećih mahana svakog čovjeka je ne prihvatati da se ne zna ono što se ne zna. A još veća mahana je ako se neko smatra profesionalcem, stručnjakom, u ovom našem primjeru softverskim velemajstorom, a ne priznaje da ne zna ono što stvarno, zaisat ne zna.
Prihvatiti činjenicu da se stalno mora učiti i da se zna malo od onoga što je na tržištu prvi je znak i korak ka majstorstvu.
13. Uz sve gore nabrojano, veoma teško, ali se mora naći ravnoteža između posla, profesije i života, hobija, porodice, prijatelja. Nešto što se danas popularno zove Work-life balance
Svi danas govore na svim stranama rečenicu:
Nemam vremena!
Mnogi su vjerovatno itekako upravu. I to upravo oni koji žele da budu profesionalci u svom poslu. Jer, budimo realni, dan ima 24 sata. Ako se uzme za primjer da čovjek spava 8 sati, najmanje 10-11 sati provede na poslu uključujući prevoz, veoma malo ostaje vremena za porodicu, odmor i lično usavršavanje.
Zato je veoma važno odbaciti sve ono što je beskorisno u našim životima i gledati da se svaki trenutak vremena iskoristi na najbolji mogući način. Ako se odmara, onda neka to bude odmor, a ne djelimičan rad, gledanje u mobitel, tablet, … Ako je učenje, čitanje, zabava, provođenje vremena s porodicom, neka to vrijeme ma koliko kratko bilo bude iskorišteno u punom potencijalu.
14. Kreativno vrijeme
Mnogi ljudi rečenicu Nemam vremena koriste samo kako bi opravdali vlastitu ljenost. Čak bih se usudio reći da je većina takvih, a da je malo onih koji nemaju vremena zbog toga što žele da se usavršavaju.
Pogledajmo samo koliko vremena provedemo ispred televizora, a da se ni ne sjećamo šta smo na kraju pogledali. Koliko vremena smo proveli na društvenim mrežama listajući slike, male postove, čisto onako gladeći ekran telefona ili tableta? I ovdje je veoma važno naglasiti. Ne treba u potpunosti odbaciti tv ili pregledavanje interneta! Ne treba napraviti brutalni presjek sa svim, ali treba postepeno smanjivati. Ako se provodi vrijeme ispred TV-a, onda neka to bude doista s ciljem, s razlogom. Isto je i s telefonom, tabletom, …
Mnogi ljudi vole da idu u teretanu, drugi da idu s rajom u kafić, neki klub, neki drugi vole šetnje, biciklizam, planinarenje. Sve je to uredu, ali je važno naći mjeru u svemu.
15. Pomodoro tehnika
Pomodoro tehnika je veoma dobra i korisna. U početku je teško navići se, ali kasnije se doista vidi koliko je čovjek fokusiran na ono što radi, te koliko brzo se umara i koliko mu treba da se odmori. Mi smo na poslu, po ugovoru, obavezni biti 8h, ali niko od nas ne može biti fokusiran 8h na posao. U najboljem slučaju, idealnom, to je 6h. Ako već danas ili od sutra ujutro primijenite pomodoro tehniku praćenja vremena iznenadićete se koliko malo vremena ste doista produktivni. I nije to problem, ako se doista produktivno!
Balans
Održavanje ravnoteže je možda i najteži posao. Zato prije nego se uvede bilo koja promjena u vlastitom životu, ma čega se ona ticala, ne bi trebala biti nagla promjena, osim ako je odricanje od opojnih sredstava npr ili nešto slično. Ali u tim slučajevima se onda pristupa pomoći stručnjaka i liječenju, tako da takve ekstremne primjere ne treba uzimati kada se govori o ovim temama.
Rim nije sagrađen za jedan dan!
Italijanska poslovica
Ako se odlučimo da se usavršavamo čitanjem knjige, a nismo do sada imali praksu čitanja, neka to bude jedna knjiga u pola godine. Ako je preko 500 strana, može čak i jedna knjiga za godinu dana. Ali neka bude! Ako se zaleti, tada se čovjek premori, jer svi moramo voditi računa i o fizičkom i mentalnom zdravlju i pronaći životni balans.
Zaključak
Vrijeme se nikada ne smije koristiti kao izgovor za nečinjenje određenih dobrih stvari. Nikada! Svi mi imamo vremena. Ustvari, svi imamo istu količinu vremena, 24h, 1440minuta. Razlika je samo u tome kako će ko od nas da iskoristi svaku minutu, svaki sat koji ima na raspolaganju.
0Hits: 60