„STUDENÁ SPRCHA“ PRO ABSOLVENTY IT OBORU

Michal, vývojář, 12 let v SDE

Jako čerství absolventi jsme si tím prošli nejspíš všichni - po promoci rychle do práce a už, už začít uplatňovat všechny ty úžasné znalosti a dovednosti. A pak většinou přišla studená sprcha a srážka s realitou. Že to tak není jen v IT je nasnadě. Pokusím se Vám předat několik málo rad, co by v začátcích mohly pomoci.

Doba se nám trochu změnila a dnes je v tom našem IT oboru zcela běžné, že člověk během studia již pracuje. Sice většinou na zkrácený úvazek, ale pracuje, a tím sbírá cenné zkušenosti. Zkuste to brát jako příležitost dozvědět se ještě něco navíc. Nebo ještě lépe - jako přímý doplněk studia, takovou placenou praxi.

Mimochodem, malá vsuvka. Zkoušeli jste se ve svém (ne IT zběhlém) okolí zeptat, co si ostatní lidé představí pod pojmem práce v IT, nebo lépe tzv. ajťák? Zkuste to, možná budete překvapeni. 

Na co si dát pozor? V čem vlastně spočívá zmíněná studená sprcha?!

Předně jsou to lidé. Typicky se člověk stane členem nějakého týmu, který už je nějak zaběhlý a nově příchozí se chtě nechtě musí přizpůsobit. Chovat se jako suverén, co všemu rozumí asi není nejlepší způsob, jak se uvést mezi nové kolegy. Každý člověk je jistým způsobem originál. Co s tím? No přece využít příležitosti. Všichni jsou to zkušenější lidé a určitě se od nich dá mnohému naučit. Nebude to jako s kamarády na přednášce nebo v hospodě, ale není to ani nic hrozného. Časem třeba zjistíte, že ten zamračený kolega je vlastně docela fajn, že té Javě opravdu rozumí, ví jak funguje uvnitř a dokáže dobře vysvětlit i na první pohled nepochopitelné chování. Je víc než pravděpodobné, že kolegové podobná úskalí už také přežili a jistě se rádi podělí o nějaké tipy. Zkuste se zeptat, neprohloupíte.

Další taková věc je projekt samotný. Člověk čeká nějaký moderní state of art kód s trendy frameworky a často se nestačí divit, co a jak někde může fungovat. To nezmiňuji, že zákazníci za to ochotně platí. Pozor, zákazníci, ale nekupují to, jak kód vypadá, ale zda jim to či ono řešení ušetří jejich čas a práci. Ve výsledku je vlastně jedno jak škaredý kód je, protože když se člověk dostatečně rozkouká, tak na každém projektu se dá najít něco zajímavého k práci nebo třeba jen k inspiraci. Například i to, jak něco nedělat je vlastně pozitivní znalost a časem se Vám bude určitě hodit. Postupně se třeba dozvíte, že projekt je starý 10 až 15 let a že tuhle část už někdo přepsat zkoušel. Že teď se řeší tohle a do budoucna se uvažuje co s támhletím a podobně. I když to tak na první pohled nevypadá, jedná se o velkou studnici znalostí a je dobré z ní načerpat, pokud možno, co nejvíc. Tohle jsou tzv. nepředatelné věci, které člověk musí vidět na vlastní oči a zažít i přímé dopady. Až na něco takového narazíte příště, určitě si na to vzpomenete a stejnou chybu už neuděláte.

Co se týká frameworků a knihoven obecně, dovolím si krátkou odbočku. Začnu malou parafrázi. Dobrý framework je jako oheň - dobrý sluha, ale zlý pán.Viděl jsem webový kód napsaný s minimem knihoven v čele s jQuery, který byl mnohem čitelnější a udržitelnější, než ten napsaný v AngularJS řešící podobnou věc. Přitom by tomu z logiky věci mělo být naopak. Problémem však bylo to, že ten druhý kód v AngularJS psali lidé, co vůbec nevěděli jak na to, nový framework dostali jako součást zadání. AngularJS byl v době svého vzniku revoluční a přínosný podobně jako jQuery ve své době. Oba jsou již dnes překonány dalšími nástupci, ale i tak obsahují stále zajímavé myšlenky a postupy. A proto, dostanete-li se k nějakému legacy kódu, kde jsou použity z dnešního pohledu tzv. "prehistorické" technologie, zkuste se nejprve podívat, zda to nemá dobrý důvod a zda je skutečně nutné začít neprodleně s přepisem do něčeho novějšího.

Poslední velké úskalí je proces, potažmo organizace vývoje. Ve škole nám o tom v několika předmětech vykládali, ale i přesto jsem si myslel, že budu většinu času sedět u počítače a psát nový kód. O to horší to pro mě bylo, když jsem zjistil, že tomu tak skutečně není, a tedy, že nám ve škole bohužel nelhali. Dnes je moderní organizovat vývoj s pomocí nějaké agilní metodiky. Většinou to znamená množství nejrůznějších meetingů a několik dalších náležitostí. Zlí jazykové tvrdí, že jim to nic moc nepřináší a jen je to zdržuje od práce. S tím nemohu souhlasit - oni také nepíšou skvělý, samo dokumentovaný kód, který nepotřebuje žádné testy. Tu dokumentaci někdo v nějaké formě napsat musí, testy je rovněž třeba vytvořit a nasazení také není jen tak samo, je potřeba to probrat s OPS atd. Zmiňované metodiky navíc napomáhají správné komunikaci uvnitř a vně týmů. Nepodceňujte její důležitost.

Další hledisko je úroveň znalostí a dovedností, ty jsou u každého člena týmu jiné. Nejrůznější metodiky se snaží vylepšit fungování týmu jako celku. Sladit jej na jednu vlnu, aby fungoval jako dobře namazaný stroj. Například taková letitá poučka říká, že o každém řádku kódu by měli mít znalosti minimálně dva lidé.Protože k čemu je firmě kritická část kódu, když mu rozumí jen jeden člověk, který je zrovna na dovolené někde v Tramtárii? Něco je potřeba změnit a nikdo tak neví jak a co všechno to způsobí, v horším případě rozbije.

Ještě je dobré zmínit změny. A to hned dvojího typu. Jedním z typu jsou změny zadání. A na ty se můžete spolehnout, že nastanou a bude potřeba předělávat již hotové části, mnohdy právě dokončené. Často se tak děje v nejméně vhodnou dobu a jejich vlivem poté dochází k netriviálním úpravám v kódu, i když změna zadání spočívá jen v několika málo slovech. I zde může proces pomoci, stačí mít definována základní pravidla, týkající se toho, kdy a jak k takové změně může dojít. Druhou kategorii pak tvoří změny iniciované od vývojářů samotných. Například nasadit novou verzi knihovny, použít jinou variantu, přepsat kód do modernějšího frameworku a podobně. Nelekněte se, prosadit takové změny, i když logické a jednoznačně přínosné, vyžaduje mnohdy velké úsilí. Určitě víte, co byla velká softwarová krize, co k ní vedlo a co bylo jejím důsledkem. Dobrý proces je tu od toho, aby pomohl všem zainteresovaným stranám dosáhnout společného cíle.

Všem, co jste dočetli až do konce děkuji za pozornost a přeji hodně úspěchů ve Vaši kariéře. Nenechte se mýlit, ani já nemám patent na rozum - neustále se učím, objevuji a raduji se z něčeho nového. Bude-li Vám někdo tvrdit opak, nejspíš jen něco přehlíží. Nebuďte takoví.