Jošt Novljan o programiranju, metodologijah programerskih projektov in vodenju programerskih ekip [POINT OUT Weekly #68]

V oseminšestdeseti oddaji POINT OUT Weekly gostimo Jošta Novljana, vodjo inženiringa pri podjetju Reciprocity.

Govorimo o podjetju, ki ponuja orodje za upravljanje skladnosti ter skrbi, da so skladna s standardi. Ker podjetje v osnovi prihaja iz Amerike se Jošt pri delu sooča z izzivi, kot so organizacija ekip, ki primarno deluje na drugi lokaciji.

1. Metodologije programerskih projektov

Jošt pri delu največ uporablja metodologijo, ki ji pravimo scrum. To je agilna metodologija, kar pomeni, da delo poteka v hitrih ciklih.

Ena izmed arhaičnih metod vodenja projektov je tudi waterfall, tako pa se imenuje, ker poteka iz koraka v korak. Slovi po tem, da veliko specifikacij napišeš vnaprej. Vse, kar moraš narediti po začrtanem planu je, da mu slediš. V primeru, da med izvajanjem načrta gre vse po pričakovanjih, je omenjena metodologija odlična. Na žalost v večini primerov ni tako preprosto. Velikokrat se zato metoda izkaže za neuspešno. Produkt, ki ga dostaviš stranki po dolgem postopku razvoja ni vedno to, kar so želeli.

Zato, ker se stvari brez prestanka spreminjajo, se je razvil manifesto, iz katerega sledi veliko agilnih metodologij.

Ena izmed njih je scrum metodologija, ki narekuje kratke cikle. Vsakega načrtuješ po zaključku prejšnjega. Najbolj pogost je dvotedenski cikel, ki mu pravimo sprint. Na začetku definiraš cikel in splaniraš potek. Ob poteku svojo ekipo seveda vedno znova obveščaš o poteku dela in tako zagotoviš, da vse poteka brez težav. Ob koncu cikla produkt dostaviš stranki. Ko prejmeš komentarje na produkt, ki si ga dostavil, lahko opišeš nov cikel. Tako se izogneš prevelikemu delu zamanj.

Še ena izredno preprosta metodologija je kanban. Vključuje tabelo s stolpci, ki jih razdeliš na »za narediti«, »v poteku«, in »že narejeno«. Tako imaš odličen pregled nad potekom svojega dela in dela svoje ekipe. Za to se uporabljajo tudi programi, kot sta na primer Asana ali Trello.

Pomembno je, da znamo pravilno presoditi, katera metodologija nam bo pri projektu najbolj ustrezala. Zaželjeno je, da jo dobro pozna tudi naš naročnik. Tako lahko dobro ve, kaj pričakovati in kdaj.

2. Kaj določa dobrega programerja?

Programerski projekti so lahko izredno drugačni od ostalih. Z stvarmi se namreč lahko ukvarjajo mnogo dlje, zato njihovega časa ne moreš pravilno oceniti.

Industrija še ne ve popolnoma, kako bi uspešno ocenili individualne programerje in postavili uspešen proces intervjuja. Ocenjevanje celotne programerske ekipe je zato izredno zapleteno. Jošt si je za sestavljanje ekipe določil približno deset kriterijev, po katerih ocenjuje programerje. Le-te so mešanica subjektivnih in objektivnih mnenj. Največji izziv je vzdrževanje primernega razmerja med tehničnim dolgom in dostavi novih funkcionalnosti.

Pomembno je predvsem ravnovesje med subjektivnostjo in objektivnostjo. Stvari so dandanes preveč subjektivne, za vsako pozicijo, ki jo ponujaš, pa moraš postaviti objektivno ocenjevanje. Najti je potrebno merljive zadeve, ki jih lahko pri vsakem posamezniku gledaš. Ključni kazalniki uspeha so pri temu izredno pomembni.

Dober programer se lahko meri po tem, koliko programskih jezikov zna in uspešno uporablja, vendar je pri tem za mnogo koga bolj pomembno generalno znanje. Programskih jezikov je namreč več tisoč – vsak dober programer pa se bo programski jezik po potrebi hitro naučil.

Gledati je potrebno seveda tudi na izkušnje s projekti. Te so namreč sami po sebi tako različni, da se lahko na podlagi izkušenj odločimo o kandidatovem znanju. Pomembno je, da se ob začetku v novi službi tudi dobro ujame z ekipo. Tako je ob začetku bolj produktiven in se novih stvari nauči izredno hitro.

Glede karakterja je pomembno, kako deluje na nivoju ekipe, kako komunicira in razume stvari. Če se s človekom ne ujameš že na intervjuju, so opozorilni znaki zelo očitni. Radovednost in zanimanje je izredno pomembna karakteristika, strast in energija pa sta nekaj, kar je pri iskanju novih zaposlenih ključno.

Ekipa se mora biti drug od drugega vedno pripravljena učiti novih stvari. Za to je primeren program Github, preko katerega lahko drugim svetuješ glede kode in produkta.

3. Razvijanje programerskega znanja in vodstvenih kompetenc

Svoje kompetence vedno znova nadgrajuj. Programerska industrija se namreč dnevno razvija, zato je treba njenemu toku konstantno slediti samo zato, da lahko ostaneš zaposljiv. Za uspešno spremljanje novih tehnologij in trendov je primeren Hacker News. To je slaven inkubator za start up-e. Tam se je oblikovala skupnost, kjer ljudje objavljajo in glasujejo za novice iz tehnologije.

Iz vidika vodenja ekip je na voljo veliko knjig. Napisane so izpod rok ljudi, ki imajo na temu področju veliko izkušenj, zato te lahko pripeljejo izredno daleč. Pomembno je povezovanje z enako mislečimi ljudmi, s katerimi se lahko o delu pogosto pogovarjaš in z njimi napreduješ.

Ta oddaja je na voljo tudi na:

V tej oddaji se dobiš odgovore na naslednja vprašanja:

Nekaj uporabnih povezav, ki so bile omenjene v videu:

O oddaji

POINT OUT Weekly je spletna video oddaja za marketingaše/tržnike in druge, ki jih zanima digitalni marketing ter iščejo inspiracijo, ideje in nasvete, kako maksimalno izkoristiti potencial svojega podjetja. Vsak teden pokrijemo eno od tematik s področja digitalnega marketinga. S spremljanjem oddaje POINT OUT Weekly se boste naučili najnovejših taktik, priprave najboljših strategij, uporabe orodij za boljše rezultate in prejeli nasvete, ki jih lahko takoj uporabite v praksi.