Futured Blog
V případě týmu se 1+1 rovná 2,5
Lada Brůnová
15. 4. 2021
Hned po škole nastoupil Lukáš Sztefek na pozici Android vývojáře. Dnes vede desetičlenný Android tým, přesto ale dál aktivně programuje, protože věří, že nejlepší motivací pro tým je, když se jejich leader nebojí ušpinit si ruce. S Lukášem jsme si povídali o jeho největším pracovním průšvihu, o budoucnosti Androidu, ale i AI.

Lukáši, kdy a jak ses dostal do Futured?

To už bude nějaký ten pátek. Moje cesta se protla s Futured zhruba před šesti lety, kdy se o mně kamarád z vysoké zmínil Lukášovi, který firmu založil. O pár dní později už jsem pracoval na první aplikaci.

S Matějem, který u nás vede iOS, jsme si povídali o momentu, kdy se člověk rozhodne, zda se bude věnovat iOS, nebo Androidu. Jak to bylo u tebe, proč právě Android?

Moje kamarádství s Androidem se upeklo někdy během doby, kdy jsem si volil téma bakalářky a vůbec jsem nevěděl, čemu se chci věnovat. V té době, v roce 2011, byl Android hodně v plenkách, šlo o celkem neprobádanou oblast. Zavětřil jsem příležitost a skočil po ní.

Po škole jsi k nám nastoupil na pozici vývojáře, nyní vedeš celý Android tým. Co vlastně pozice leadera obnáší?

Soustředím se hlavně na to, abychom vytvářeli skvělé produkty a aby nás práce na nich bavila a naplňovala. Kromě rozvoje týmu přispívám i do různých fází života projektů — ať už jde o vytváření prvotní nabídky, časové odhady, analýzy nebo třeba konfiguraci automatického vydávání aplikace do produkce, tedy přímo do rukou koncových uživatelů. A snažím se neopomíjet mou srdeční záležitost, tedy programování, abych nevypadl ze cviku.

Dozvěděla jsem se, že tvým snem bylo naprogramovat hru…

Stále ještě je, ale jiné sny dostaly prioritu. Neumím totiž kreslit, což by se mi u hry hodilo, a tak jsem se přesunul k business logice. Složitost u mě zvítězila nad krásou. Krásu vidím ve vytváření složitých věcí.

Které sny dostaly prioritu?

Umělá inteligence, ve které se chci víc zorientovat a také ji umět aplikovat. Nyní jsem třeba uprostřed kurzu, na kterém se učím uplatnit AI v obchodování. Předtím jsem si s AI hrál v rámci her, to je taková ta klasika, kdy učíš autíčko jezdit po předem definované trase.

Čím tě AI fascinuje?

Jsem přesvědčený, že změní svět. Bude všude. A stejně jako jsem vycítil příležitost, když byl na vzestupu Android, chci být i v případě AI připravený na budoucnost, a to nejen tak, že budu mít povědomí, ale že si sám něco vyzkouším.

Je to zatím jen koníček? Nebo už jsi tuhle zkušenost přenesl i do některého z projektů, na kterých pracuješ?

Beru to jako koníček. Ale je pravda, že při vývoji aplikace pro Nesnězeno jsem si pár věcí vyzkoušel. Šlo o analýzu sentimentu, kdy jsme v rámci zpracování textu, v tomto případě popisu, zkoušeli produkty tzv. kategorizovat. Nakonec jsme ten nápad z mnoha důvodů nepoužili, ale je fajn si zkoušet nové věci a testovat je na reálných projektech.

Inovace máme ve Futured rádi. Jak ale poznat, že právě ta daná novinka je krok správným směrem?

Každý náš projekt je o kousíček jiný než ten předchozí. Tímhle iterativním způsobem přicházíme na to, co funguje nejlépe a můžeme vybrušovat základní kameny každé z našich aplikací. Vítáme každý nápad, jak věci měnit, ale rozhodně jej slepě nenásledujeme, pokud se neshodneme na jeho přínosu.

Jaký takový nápad například přišel naposledy?

V poslední aplikaci to byl například důraz na modularitu, protože šlo o velmi rozsáhlý projekt. Aplikace má aktuálně 16 gradle modulů, což je mnohem více, než průměr. Jakmile bude hotovo, na některém z budoucích Android Talků si v týmu shrneme naše poznatky z vývoje a stanovíme si, jestli to bude náš nový standard, nebo nikoli.

Nyní pracuješ i na jednom projektu, který jsi převzal v ne úplně dobrém programátorském stavu. Jaká je to pro tebe zkušenost?

Hodnotím ji vlastně velmi pozitivně, i když mě některé fáze bolí. Ale beru to jako příležitost vrtat se v legacy kódu, tu nemívám často. Zpravidla totiž v týmu řešení vymyslíme, a pak se mu věnujeme coby autoři. Tohle je úplně jiný přístup. A taky jsem konečně z Futured knihovny vytáhl knihu Working Effectively with Legacy Code a uplatnil znalosti, které jsou v ní popsané.

Jak si můžu představit opravování kódu?

Tím, že se aplikace vyvíjí dlouhou dobu a přispívá do ní spousta programátorů, kteří mají vlastní návyky, vzniká tzv. technologický dluh. Ten se musí v budoucnu splatit, jinak bude narůstat a můžeš se dostat do fáze, kdy každý zásah do aplikace způsobí nové a nové problémy. Technologický dluh odstraňuješ refactorováním, tedy omlazováním již existujícího kódu. Aplikaci s velkým technologickým dluhem si můžeš představit jako promotané klubko nití, kde zatažení za jednu nitku způsobí, že zároveň taháš za několik dalších, což je velmi nežádoucí. V praxi to znamená, že úprava každé maličkosti má dopad na celý systém a ty v daný moment nevíš, jestli tvoje úprava nezpůsobuje nekorektní chování někde jinde.

Kolik lidí je v tvém týmu? A co to pro tebe to slovo tým znamená?

Aktuálně je nás v Android týmu jedenáct. Pod slovíčkem „tým“ ve mně rezonuje touha po společném rozvoji a posunu. Je to mít možnost se na někoho obrátit, společně se zamyslet a dokázat velké věci. Když je člověk sám, leccos dokáže, ale jeho schopnosti jsou limitovány jím samotným. V případě týmu 1 + 1 nerovná se 2, ale 2,5.

Tým u nás vedeš lidsky i technicky. Co je pro tebe těžší?

Technologie jsou jedničky a nuly, které se chovají stále stejně. Lidé, to jsou dojmy, pocity, postoje, potřeby, názory, nálady… Stačí ti to jako odpověď?

Jak motivuješ ostatní v týmu, je něco, co ti funguje?

Spoléhám se na vnitřní motivaci každého člena týmu. Pokud člověk sám chce, práce mu jde lépe od ruky a snáz v ní najde zalíbení. Často stačí zažehnout malý plamen zájmu a dotyčný začne prahnout po řešení problému, kterému čelí. A také jsem zastáncem motivace vzorem — když ostatní vidí, že se nebojíte ušpinit si ruce, tím spíše s tím nebudou mít v budoucnu sami problém. Snažím se proto do všeho pouštět s plným nasazením a co nejrychleji překonat prvotní překážky, které mohou leckoho odradit.

Tvůj Android tým je plný seniorů, jak se ti povedlo ho takhle sestavit?

Možná je to náhoda, že se v týmu potkalo tolik fantastických lidí. Ne všichni k nám přišli jako seniorní vývojáři, ale všichni měli ohromný potenciál. Viděl jsem u nich zájem pochopit věc do hloubky a díky kolegům dostali příležitost rychle růst. Věřím, že zkušení lidé přitahují další zkušené lidi.

Efekt sněhové koule?

Přesně tak.

Pracuješ v týmu s t-shaped skills?

Spousta lidí si u nás nové věci zkouší nejen na projektech, ale i ve volné čase v rámci tzv. side projects. Když se zaměříš na víc oblastí, tvoje programátorská zkušenost roste, takže kolegy podporuju, aby si nové přístupy osahali. Je totiž celkem přirozené, že se v čase mění věci, které tě baví. V týmu tak máme třeba Lukáše, který je nadšený pro Android i Back-end, a tak se věnuje obojímu.

„Open source zároveň vnímám jako skvělý prostředek získání zpětné vazby od ostatních vývojářů.“

Na VUT jsi byl aktivní na fóru, nyní na Stack Overflow a s týmem pravidelně přispíváte do open source komunity. Kde bereš motivaci? A na co jsi nejvíce pyšný?

Že u nás kultura přispívání do open source vůbec existuje. Klidně bychom mohli věnovat svoji veškerou energii jen projektům a nějakým open source se nezdržovat. Vnímám, že máme chuť se našimi řešeními pochlubit a něco i vrátit komunitě, která nám sama dává hodně.

A open source zároveň vnímám jako skvělý prostředek získání zpětné vazby od ostatních vývojářů. Mohou totiž nad věcmi přemýšlet úplně jinak a rozšiřovat naše obzory. On i samotný návrh aplikačního rozhraní a dosažení příjemného DX (developer experience) je celkem věda, a i tato zkušenost se nám v konečném důsledku vyplatí při práci na projektech.

Aktuálně hledáš do týmu kolegy, na co bys je nalákal?

V prvé řadě na skvělý kolektiv opravdu zkušených lidí. Chápu, že slovní spojení „skvělý kolektiv“ se nachází asi v každé nabídce práce, kterou na internetu můžeš najít, ale tady má své opodstatnění. Kolik z pisatelů takových nabídek by mohlo říci, že jeli se svými kolegy na dovolenou, a to vícekrát? A tím nemám rozhodně na mysli žádný teambuilding, ale opravdu dovolenou. Pokud chcete důkaz místo slibů, na svém blogu jsem se rozepsal o našich zážitcích z Tenerife a Irska.

Kromě lidí, což považuju za jednu z nejdůležitějších charakteristik každé práce, si opravdu cením ochoty každého člena týmu navzájem se posouvat a vzdělávat. Každou středu míváme například Android Talky, kde probíráme novinky, analyzujeme problémy a plánujeme do budoucna.

Na co dáš během výběrka ty, co je pro tebe důležité?

Hlavně to, jaký má člověk pro věc zápal, jestli o svých úspěších a zkušenostech mluví s nadšením. Zajímá mě, jestli je spíše z těch, kteří se raději nechají vést ostatními, nebo sám převezme iniciativu a velí. Není to z důvodu, abych jednu či druhou skupinu rovnou diskvalifikoval, ale abychom měli v týmu vhodný poměr zástupců obou.

Jako velmi důležitou vnímám i schopnost umět vysvětlovat věci. Mohlo by se zdát, že tohle přece není podstatné a každý to nějak zvládá, ale osobně to vnímám jako jeden z nejlepších ukazatelů, jak je člověk zkušený. Pokud vysvětlování drhne, člověk si buďto není jistý, není sebevědomý, vaří z vody nebo v tom nemá dostatečnou praxi. Na všech ze zmíněných bodů se ale dá pracovat, a je to pro mě jen jeden ze střípků finální mozaiky.

Z jakého projektu máš největší radost?

Téměř každý má něco do sebe, těžko vybrat jeden. Prvním projektem, který se mi vybaví, je aplikace DreamAlarm. Vznikla už v roce 2015 a kombinovala, na tu dobu, pokročilé UI a složitější business logiku. Z technologického hlediska se ale dnes nemůže rovnat s našimi aktuálními aplikacemi. Tuhle apku jsem sám vyvíjel, takže na ni vzpomínám i z nostalgie.

Co se týče novějších projektů, ačkoli se konkrétně na těchto aktivně nepodílím, mám opravdu radost z aplikací pro Jablotron, které jsou technologicky vyšperkované. Dál bych asi vyzdvihl Gastromapu Lukáše Hejlíka a její oku lahodící UI.

Co pro tebe byla zatím ve Futured největší výzva?

Největší výzvou byla oprava aplikace sloužící pro přehrávání on-line televize, ve které přestalo většině uživatelů fungovat přehrávání, to byl fakt prů*er. Tuto chybu navíc nebylo z několika důvodů jednoduché odstranit. S kolegou Pavlem jsme tehdy strávili několik dnů a nocí pečlivou a strastiplnou nápravou. Jakkoli se může zdát, že se taková aplikace přece nikdy nemůže dostat uživatelům, opak byl bohužel pravdou, a to vlivem několika faktorů. I taková zkušenost nám nicméně pomohla nastavit naše procesy tak, aby k podobným chybám v budoucnu nikdy nemohlo dojít znovu.

Už jsi zmínil, jak se v týmu připravujete na budoucnost. Co podle tebe Android svět čeká letos?

Z technologického hlediska jsou to určitě Jetpack Compose a Kotlin Multiplatform. To budou hlavní témata tohoto roku. V obou se aktivně angažujeme, radikálně totiž mění to, jak se aplikace v dnešní době vytváří a bude zajímavé sledovat, kam obecně se vývoj posune.

Lukáše Sztefka vyzpovídala Lada Brůnová.

Chcete se k nám přidat? Aktuálně hledáme hned několik kolegů.
Ozvěte se Simoně a pobavte se o možnostech spolupráce:
[email protected] & +420 735 040 126

Nepřehlédněte
Tomáš Babulák
Michal Martinů
28. 6. 2022
Jak zvýšit dosah mobilní aplikace k zákazníkům o 26 %?
Zaměřte se na přístupnost. Přibližně jeden ze sedmi lidí totiž žije s nějakou formou postižení, které mění způsob jeho interakce s okolím.
Lada Brůnová
31. 3. 2022
Mobilní aplikace pro Národní muzeum
Nová mobilní aplikace, kterou jsme pro významnou muzejní instituci vyvinuli, přináší díky interaktivním a audiovizuálním prvkům zážitek na míru malým i velkým návštěvníkům.
Lada Brůnová
18. 10. 2021
Nativní, hybridní, nebo webová aplikace? Která je nejlepší?
Sepsali jsme text, který vám pomůže se zorientovat v rozdílech mezi nativní, hybridní a webovou aplikací, a najít způsob vývoje, který je nejvhodnější právě pro vaši firmu. TL;DR: Všechny mají svůj smysl.