Rychlé experimenty i stavění vlastního robustního produktu. Tak vypadá každodenní práce data týmu v BizMachine
V datovém týmu jsou téměř od začátků BizMachine. Petr Kalát a Matěj Maivald si už při škole vyzkoušeli práci s daty. Matěj jako researcher v McKinsey, Petr v Big Data týmu O2. Oba se ale dostávali spíše ke zpracovávání dat v excelu či powerpointu. Snili přitom o opravdové práci s daty. Tu se podle svých slov oba naučili až v BizMachine, kam shodně přišli v roce 2017. Za tu dobu se BizMachine z punku v datech posunula k větší specializaci, a to i v samotném datovém týmu.
Z řešení ad hoc klientských požadavků začala stavět vlastní robustní řešení, vlastní produkt. To ale neznamená, že by začala být práce v BizMachine nuda. Petr i Matěj vidí pořád hodně prostoru pro experimenty i učení se. Momentálně mají v datovém týmu zálusk na další dockerizaci a automatizaci.
Jak jejich práce vypadá? Nahlédněte s námi pod pokličku fungování datového týmu v BizMachine.
Už pět let pracujete v BizMachine datovém týmu. Kde se vzala vaše chuť pracovat s daty?
Matěj: Studoval jsem ekonomku a vždycky mě bavily předměty a úkoly, kde jsem se dostal k lehkému programování. Moje první práce byla researcher v McKinsey - spousta excelu a powerpointu. Chtěl jsem ale umět pracovat s pokročilejšími nástroji. A to jsem dostal příležitost se naučit, když mě bývalý kolega pozval na pohovor do BizMachine. Tehdy se tu vše dělalo v pure SQL, Python a R skriptech.
Petr: Já jsem sice taky vystudoval ekonomku, ale u nás na škole jsem se moc k předmětům s daty nedostal - maximálně ke statistickému modelování. Moje první zkušenost byla v O2, kde jsem se shodou náhod ocitl i v Big Data týmu. Tehdy jsem začal snít o tom, že bych se práci s daty naučil dělat pořádně. Ale nějak jsem se k tomu sám nemohl dokopat. Do BizMachine jsem přišel v době divokého učení. A to už nešlo nemít motivaci. To jsem naopak přišel domů z práce a dál se dovzdělával. A hned druhý den se mi podařilo použít to, co jsem se předchozí večer naučil.
Co vás na práci s daty baví?
Petr: Baví mě rozlousknout těžký problém. Není to revoluce, jde to postupně. Nejdřív o problému nic nevíš, pak to musíš prozkoumat, zmapovat zevnitř a nakonec pokořit. Mě na datech fascinuje ta efektivita a síla, která se v nich skrývá. Když jeden den umyješ kuchyň, bude večer či druhý den zase špinavá, když ji používáš. Stavět nástroje na datech je jako vymyslet takové řešení, které používáš dokola, ale kuchyň je čistá už navždycky. To je síla automatizace a čistého designu. Když napíšeš program dobře, může běžet pořád dokola a stále vytvářet přidanou hodnotu. A to je fascinující.
Matěj: Mě moje první práce naučila, že dávat přednost formě nad obsahem prostě není můj šálek kávy. Baví mě vidět výsledky mého snažení i práce. Netvořím jednorázový report, který se po jednom použití zahodí. Můžu neustále pracovat na zlepšování šíře dat o firmách. Ta je krásně vidět v našem produktu. Podíváš se na profil firmy v Prospectoru a vidíš za tím všechnu tu práci, co jsi udělala. Tvoje práce prostě snadno nezapadne. Můžeš ji mít na očích kdykoliv chceš. A spolu s tebou minimálně tisíc lidí denně.
Takhle to bylo v BizMachine vždycky?
Matěj: Když se podívám na začátky v BizMachine, byla naše práce hodně živelná. Našim úkolem bylo dostat výsledek co nejdříve. Moc se na data nehledělo jako na investici do budoucna. Prostě šlo o jednorázový, nebo časově omezený projekt. Postupně jsme se ale začali transformovat. Teď už stavíme B2B řešení. Všechno, co děláme pro klienty vlastně stavíme tak, aby nešlo o jednorázový script.
Petr: Náš interní vývoj stavíme jako generalizovaný klientský use case. Protože věříme, že když nějakou otázku potřebuje rozlousknout jedna firma, bude pro řešení využití i jinde. Budujeme interní kompetenci, nástroj, nebo dataset, který pak může prospět více klientům. A můžeme ho dál rozvíjet a postupně zvyšovat přidanou hodnotu, kterou nám i našim klientům přináší.
Rozumím. Jaký to má vliv na vaši práci? Jak vypadá váš pracovní den?
Matěj: Náš data tým je teď vlastně rozdělený na dvě části. Jedna se víc věnuje odbavování klientských požadavků. Na základě našeho datasetu hledají odpovědi na otázky konkrétního klienta. Vytváří poznatky na míru danému klientovi (podle jeho parametrů a atributů). Druhá část našeho data týmu se zase snaží budovat řešení, ze kterých profitujeme dlouhodobě. Staví pevné základy, aby umožnila nad daty dělat všechny možné analýzy. My s Petrem patříme spíše do té druhé části. Zároveň tu jsme oba dlouho a naše práce v sobě má něco z každé z těch dvou větví. Naši noví kolegové si už ale mohou vybírat, zda se chtějí víc věnovat klientským požadavkům, nebo data engineeringu a stavění robustnějších řešení.
Petr: Dřív byly pozice v našem datovém týmu víc univerzální. Teď už je u nás prostor pro specializaci. My s Matějem to máme ještě trochu jinak. Já sám jsem za poslední rok, kdy jsem pracoval na velkém interním projektu, vlastně několikrát musel naskočit na klientský úkol, vyřešit ho a zase se vrátit k našemu internímu nástroji. Mě ta různorodost baví, ale už máme v týmu i vyloženě data inženýry, kteří se mohou věnovat užšímu spectru věcí, proniknout do hloubky a vylepšovat naše data sety i Prospector rychleji. To je výhoda, když jsi úplně odstíněná od klientských požadavků. Super je, že si u nás můžeš vybrat, co ti vyhovuje víc. Osobně mě baví ta kombinace a různorodost.
Jak byste se popsali? Jaká je vaše pracovní pozice a náplň práce?
Petr: Mám na sobě ještě kus klientské práce, takže jsem tak z 5 % svého času konzultant. Někdy to je o rychlejší komunikaci s klientem, s vynecháním middlemana, jindy třeba o účasti na workshopu. Pak je ve mě kus Data Scientisty, nebo možná spíš analytika. Jenže analýzu neuděláš, když nemáš připravená data. A to je zase práce Data Engineera. A to je celý můj pracovní mix. Funguju hodně efektivně - jako velká část mých kolegů. Umím si data připravit sám, bez čekání na ticket v engineering týmu. Dokážu prostě data připravit, zanalyzovat, najít odpověď pro klienta a ještě to celé zobecnit, abychom to mohli použít v rámci vývoje našeho vlastního interního produktu.
Matěj: Já to mám hodně podobně. Vnímám se jako data inženýr, ale zároveň mám historicky jednoho dlouhodobého klienta. Do detailu vím, jak jeho systém funguje. Takže nevytvářím jen robustní řešení, ale občas taky experimentuji a hledám rychlé odpovědi na aktuální otázky. K práci našeho data týmu - aktuálně nás je jedenáct - patří i používání DevOps ticketovacího systému. Jedeme tu v týdenních sprintech. Každé pondělí si dáváme vědět, na čem kdo z nás pracuje i kam se posunul. Potřebujeme o sobě vědět. A ve čtvrtky si sdílíme, co jsme se naučili. Dělíme se tak o nové poznatky, ukazujeme si, jak a kde jsme využili nové technologie a podobně.
Takže máte oba širší záběr. Popisujete svoji práci dost obecně, mohli byste mi dát nějaký příklad z poslední doby?
Petr: Odpověď je trochu komplikovaná záběrem, který oba s Matějem máme. Oba vytváříme něco nového a máme aspirace to udělat fakt dobře a do toho opravujeme i už existující řešení a různé jednorázové skripty. Ale pokud chceš příklad, řešil jsem teď parser finančních výkazů. A to byla kombinace velkého software engineeringu, a do toho řešení dílčích malých problémů. Například jsem musel vymyslet jak v nestrukturovaných datech definovat sloupce a řádky tak, abychom si ta data z různých zdrojů mohli spojit. Nejdřív musíš ten problém prozkoumat. Myšlenky, co tě k tomu napadají, si mnohdy ověřuješ i ve volném čase, třeba při hraní si s dětmi a jejich legem. Sestavuješ si strategie, jak na to, a nakonec musíš najít nějaké ideálně alespoň částečně hotové řešení. Nemůžeme pořád vynalézat kolo. Já se třeba u tohoto konkrétního úkolu dovzdělal v oblasti Data Science - načetl si něco o clusteringových algoritmech a ten, který mému problému seděl nejvíc, použil. To je ona nutná fáze experimentování u klientských zadání. Chceš si rychle vyzkoušet, že tebou zvolená strategie bude fungovat. Když pak najdeš to správné řešení, které začne fungovat, tak to většinou funguje naprosto dokonale. A pak máš konečně pocit, že jsi napsala dobré řešení. Že to není zbastlený, že to není blbost, kterou už nikdy nikdo nepochopí a nerozluští, kdyby to po tobě měl opravovat. Zkrátka máš dobrý pocit, že jsi použila tu správnou metodu na správném místě.
Takže se vlastně s každým projektem učíš něco nového. Co konkrétně jste se v BizMachine vlastně naučili vy dva?
Matěj: Já jsem se tady naučil skoro všechno. Třeba používat nespočet technologií. Na začátku jsme tu skoro žádné neměli a teď už jen přidáváme. Naučil jsem se tu vytvářet rychlá řešení, experimentovat, abych si ověřil, že postup, který chci použít dává smysl. Naučil jsem se balancovat mezi efektivitou toho, jak rychle jde danou odpověď získat, a jak stabilní navržené řešení může být. Jde o důležitý podklad k rozhodnutí, kolik času a energie máš vývoji řešení věnovat. Náš engineering tým se následovně každé řešení, které si to byznysově zaslouží, snaží od začátku stavět robustně. Pořád ale mám možnost něco udělat zrychleně v rámci prototypu a vidět výsledky a až poté se vydat na robustní cestu. Moc si vážím toho, že si můžu vybrat, jakou cestou se vydám.
Petr: Já jsem se taky vše relevantní, co umím, naučil tady. Máme výhodu rychlé reakce od klientů. I když děláme něco interního a robustního, tak na konci je to zevšeobecněný klientský case. A proto se mi moc líbí ta možnost skákat mezi tím udělat něco rychle a možná trochu hůř - experimentovat - versus udělat to pomalu a pořádně. A je to pro nás skill, věc volby. Podle zadání klienta, podle dané situace si vybereme. Není to tak, že bychom uměli jen robustní řešení, nebo jen rychlý experiment. Často děláme úplně nové věci, které před námi nikdo nevyzkoušel. Tam potřebuješ experiment. Ten nemůže být od samotného začátku automatizovaný. To by trvalo dvakrát déle. Vlastně jsme se tu všichni postupně učili změnit náš přístup, způsob práce, i přemýšlení. Ze samých experimentů se posunout k systematickým řešením. Ale přitom vidět výhody obou. Ony totiž někdy na první pohled chaoticky vypadající jednorázovky přicházející od klientů, nám rozšiřují obzory a definují to, co bychom mohli začít dělat. Vlastně se díky nim dozvídáme, že nějaký problém existuje a že na něj jde najít řešení. A tak vzniká zcela nové řešení, ne jen další feature do již zavedené platformy.
Bavíme se o experimentech, učení se. Je ještě něco, co se ještě chcete naučit? Kam se posunout?
Petr: Jasně, že se je pořád co učit. Data a celý náš obor se hrozně mění a vyvíjí. A máme tu zkušenost, že s každým seniorním člověkem, který k nám přijde se rychleji naučíme nové technologie, po kterých jsme už dlouho pokukovali.
Matěj: Díky jednomu data inženýrovi jsme se od hodně rigidního SQL dostali k využívání MongoDB a NoSQL databázím. Jejich výhody jsme znali, ale s někým, kdo s nimi měl už předchozí zkušenosti, jsme je začali používat prostě rychleji.
Petr: Známe technologie, které bychom chtěli začít používat, ale když máš v týmu evangelistu, který je zná a zasvětí tě do jejich tajů, přináší to mnohem rychlejší nástup k jejich používání. A to se u nás naštěstí děje.
A co je teď technologie, kterou chcete používat víc než doposud?
Matěj: Dockerizování. A pak obecně automatizace od začátku do konce. Obě jsou to hodně široká téma, která nezahrnují jen jednu konkrétní technologii, ale spíš jde o způsob přemýšlení.
Petr: Určitě docker. Ale záběr toho, co se chceme naučit je hrozně široký. A ačkoliv ho postupně zpracováváme, tak jednotlivé nové věci a technologie rychle přibývají. Je to dané i naším oborem. Nejde umět všechno.
Ještě mám poslední otázku. Jste v BizMachine už dlouho. Proč? Co vás tady baví?
Petr: Máme tu super kolektiv. Nejen v našem data týmu spolu po práci zajdeme i na pivo a často si povídáme a trávíme spolu čas i po práci. Výhoda BizMachine je i naše start-upovost. Na začátku to tu bylo hodně divoký - překotné učení, rychlost, pořád pohyb vpřed. To zůstalo. A taky přetrvalo to, že máme plochou strukturu. Mezi mnou a zakladateli firmy není pět vrstev manažerů. Jeden ze zakladatelů sedí metr ode mě a když s ním potřebuju něco řešit, tak se na něj otočím, zajdu za ním a prostě se o klientských zadáních i jejich řešeních normálně bavíme. Už ale ani nejsme ten typ startupu, kde by všechna řešení stála na skriptech napsaných po večerech. To zdaleka ne. Stejně tak ale ani nejsme korporace. Například nemáme předem definované, ustálené a neměnné technologie nebo jednoho poskytovatele služeb. Pokud někdo přijde s dobrým návrhem, jak nějaké téma řešit, a naše stávající řešení je horší, nikdo se tu nebrání postupně přejít na něco nového. Svoboda si vybrat, učit se a experimentovat mě tu baví.
Matěj: Za sebe bych ještě k tomu dodal, že spolupráce s Martinama je fajn. Každý z nich má jiný názor a jiný úhel pohledu. Nejsou autoritativní a debata s nimi je konstruktivní a náročná zároveň. Z toho taky vyplývá, že úkoly, které tu řešíme, nejsou snadné. Ale to zase přitahuje lidi, co neusnou na vavřínech a mají chuť sebe i náš produkt neustále posouvat. To mě baví.