Ką rinkčiausi duomenų ūkyje

Kuo didesnis klientas, tuo mažiau laisvės technologijų pasirinkimui – dažniausiai dirbi tais įrankiais, kurie jau naudojami organizacijos viduje. Naujų programavimo kalbų, operacinių sistemų ar duomenų bazių klientams nesinori, nes kažkam organizacijos viduje tas naujas technologijas reikės prižiūrėti. Jei visas tavo lėktuvų parkas sudarytas iš Airbusų, įsigyti vieną Boeingą „pažaidimui“ nelabai protinga. Tačiau kartais sveika pagalvoti, kokias technologijas rinktumeisi, jeigu viską darytum nuo nulio.

Duomenų bazė

Anksčiau buvau pratęs dirbti su MySQL – greita, paprasta, lengva administruoti. Šiuo metu rinkčiausi Postgres, nes nebegaliu gyventi be Common Table Expressions, o MySQL jų palaikymas dar tik labai šviežias. SQL kodas, rašomas su WITH ... AS ( ... ) yra žymiai lengviau skaitomas, o tai labai svarbu, jeigu tenka rašyti sudėtingas ne vieno šimto eilučių SQL užklausas. Be to, Postgres turi begales papildomų funkcijų ir galimybių – kuo reikia sudėtingesnės verslo logikos, tuo mažiau pradeda tikti MySQL.

Savaime suprantama, galima naudotis ir MS SQL Server ar Oracle, tačiau lemiamas argumentas visgi yra kaina.

Programavimo kalba

Pradėjęs nuo Perl, jaunystėje daug ko daręs su PHP, po to perėjęs prie Ruby, kažkiek krapštęs R, nesusigyvenęs su Scala, šiuo metu viskam rinkčiausi Python. Daug reikiamų bibliotekų duomenims maigyti, nuo paprasto ETL iki dirbtinio intelekto ir beveik bet kokio machine learning (na, galbūt dar vis kokiais specifiniais statistiniais algoritmais čia jį lenkia R, bet universalumu R tikrai nusileidžia). Be to, python kuo toliau, tuo labiau populiarėja – tai ne eksperimentinė nišinė kalba, kurią gerai supranta tik sauja žmonių: tai svarbu, norint užtikrinti, jog kažkada kas nors iš tavęs galės sklandžiai perimti projektą.

Operacinė sistema

Labai dažnai dirbant Microsoft ekosistemoje tenka dirbti su Windows serveriais – nieko labai blogo, bet žymiai labiau esu pratęs prie Linux (ir daugiausiai Debian / Ubuntu). Konsolėje jaučiuosi kaip namie, juodas ekranas man jaukus ir savas, todėl rinkčiausi būtent jį. Bet kartu labai suprantu, kad administruoti naują operacinę sistemą to niekad nedariusiam yra labai sudėtinga, tad jei visi kompanijoje naudoja Windows, naujų žvėrių zoosode matyt nereikėtų.

Darbų dirigentas

Manau, kad įvairiems ETL darbams planuoti ir diriguoti naudočiau Apache Airflow. Rašyta python, turinti daug galimybių, aprėpianti beveik visus įmanomus poreikius, po truputį tampanti industrijos standartu (bent jau atviro ir nemokamo kodo ekosistemoje). Taip, reikia rašyti kodą, bet tai, mano nuomone, privalumas. Daug programuotojų gal ir nustebs, bet labai dažnai drag&drop įrankiai didelėse organizacijose labai vertinami, nes jie suteikia (dažniausiai nepasiteisinančią) viltį, jog duomenų ūkį lengvai galės administruoti koks nors net SQL nemokantis stažuotojas iš finansų analizės poskyrio. Paprastiems dalykams gražūs pele stumdomi daiktai gal ir veikia, bet kai viskas susivelia į vieną didelį neišnarpliojamą kamuolį… (taip, piktai žiūriu į tave, Alteryx).

Kiti būtini dalykai

git. Būtina naudoti git. Bet kokia forma (github, gitlab, bitbucket, savo pačių daryta, bet kokia…), bet būtina naudoti kodo versijavimą. Niekaip nesuprantu, kodėl didelėse organizacijose kodo versijavimas toks retas. Vis dar kodas taisomas tiesiai serveryje, vis dar dažnai kokioje nors direktorijoje kaupiasi programos pavadinimu load_foo_v12.192_final_do_not_use.sql. Tikriausiai kultūriškai tai ateina iš Excelio ir įvairiausių „vartotojui draugiškų“ drag&drop įrankių – lengvai jų į versijavimo sistemą nesudėsi.

Testai. Jeigu versijavimo sistemas tai dar pas klientus galima kur nors rasti, testus duomenų bazėms bei ETL programoms labai mažai kas rašo. Kuo mažiau kompanijoje inžinierių, tuo mažesnė tikimybė, jog kodas bus tikrinamas testų pagalba.

Adam Kay – „Dabar tau skaudės“

Gydytojų darbas sunkus. Nežmoniškai sunkus. Budėjimai, viršvalandžiai, stresas, graužatis, kad ne viską iki galo padarei tam, kad išgelbėtum gyvybę, maži pinigai (nors su tuo gal ir galima ginčytis – tiesiog pinigai maži, jei dirbama vien tik valstybiniame sektoriuje), nuovargis, ilgi studijų metai. Kraujas, mirtys, skausmas. Tam reikia pasišventimo.

Adam Kay knyga yra juokingų (ir šokiruojančių) pasakojimų apie gydytojo rezidento darbą rinkinys, ir jis tikrai puikiai valdo klaviatūrą. Deja, to negalėčiau pasakyti apie lietuvišką vertimą, nes jis tikrai daugelyje vietų trukdė skaityti. Douchebag nėra „dušas“, o bernvakario nereiktų vadinti „viengungių vakarėliu“. Jei ne vertimas, knygai būtų galima skirti aukščiausius balus. Net jei kai kuriose vietose skaityti šlykštoka, bet juk tokia nepasaldinta gydytojų darbo kasdienybė.

Ši knyga privers susimąstyti, kas iš tiesų motyvuoja žmones: pasitenkinimas išgelbėjus gyvybę žymiai svarbesnis nei pinigai ar ramesnis darbo tempas. Turbūt padeda ir tai, kad šiame darbe visada matai prasmę – tai ne maigyti klaviatūrą ir stumdyti Excelio celes kuriant naują finansinę ataskaitą ar duomenų bazės dokumentaciją, kurios galbūt niekas neskaitys. Tiesiog nepalyginama.

Kristina Sabaliauskaitė – „Petro imperatorė“

Antrosios Rusijos imperatoriaus Petro I-ojo žmonos Martos Skowronskos istorija tikrai įdomi: tėvai lyg nuo Minsko (nors iki galo to niekas negali įrodyti), augusi Latvijoje Baltijos vokiečių šeimoje, karo su švedais metu paimta į nelaisvę, sekso vergė, tampa caro meiluže ir galų gale – imperatoriene (tiesa, valdo tik porą metų). Neraštinga pelenė „iš Vakarų“, pakilusi iki carienės.

Išraitytų ilgųjų Sabaliauskaitės sakinių šioje knygoje nėra – visgi tai pačios Martos pasakojimas, o ji kalba neįmantriai, reikalui esant ir nusikeikdama. Gaila tik, kad pati istorija pasirodė gana nykoka – o potencialo ryškiai papasakoti visas Rusijos dvaro intrigas ir įtaigiai atskleisti Rusijos mentalitetą juk buvo. Na taip, ne kartą minima, kad jie prasigėrę barbarai, mušantys žmonas ir valdantys žiaurumu bei absoliučiu galios demonstravimu, bet veikėjai kažkokie simplistiniai, karikatūriški. Gal jie taip ir turėjo atrodyti iš neraštingos imperatorienės požiūrio kampo, bet atrodo, kad visgi tai gali būti ir rašytojos kaltė.

Kažkiek skaitant nervino ir nuolatinis imperatorienės aikčiojimas apie idealų Vilnių – lyg tai būtų Vakarų civilizacijos bamba. Lietuvių skaitytojui gal ir malonu, bet kai Petras I-asis kviečiasi italų architektus ir perka ispaniškus koklius Sankt Peterburgo statybai, nes nori, kad rūmai būtų panašūs į tokius, „kokie būna Vilniuje“ – emm… kažkas čia perspausta ir nebetikra.

Aišku, didžioji Sabaliauskaitės knygų vertė yra daugybė istorinių detalių (tiesa, nevisada lengva atrinkti, kurios yra tikros, o kurios pagražintos – visgi tai ne istorinis traktatas): visada malonu skaityti apie žinomas vietas ir įsivaizduoti, kaip ir kuo ten gyveno žmonės. Kiek sunkiau su veikėjų asmenybių gyliu ir laikmečio dvasios pajutimu: romantizuotos praeities detalės turi polinkį tapti tikru daiktų mišku, silva rerum, per kurio tankmę nebesimato gamtos grožio.

Česlovas Milošas – „Isos slėnis“

Šiek tiek gėda, kai Nobelio literatūros premijos laureatas užaugęs Lietuvoje, o aš nesu skaitęs jokios jo kūrybos. Spragą užtaisiau, bet gana sunkokai.

„Isos slėnis“ – tai tarpukario Lietuvos kaimas Milošo vaikystės akimis. Su ryškiais personažais, suskilusia visuomene, dar ne iki galo išvarytais velniais. Dvare augantis ir labiau lenkas nei lietuvis berniukas sunkiai ieško savo vietos: nei jis gali didžiuotis savo šeima, kuri net savo šlėktišką išdidumą baigia prarasti, nei savo pasiekimais medžioklėje. Tikriausiai dalį to galima nurašyti paauglystės savasties paieškoms, bet vis nepaleidžia jausmas, kad jis taip ir liks čia nepritapėliu, kad ir koks gražus ir romantiškas tas Isos slėnis.

Iš tiesų, labai gerai suprantu, kodėl Česlovo Milošo kūryba verta Nobelio: kai poetas rašo prozą, ji gaunasi raiški ir vaizdinga. O kur dar sugebėjimas į kelis šimtus puslapių sudėti tokią galybę tarpukario Lietuvos temų: lenkai ir lietuviai, turtas ir skurdas, vaikai ir suaugę, mergos ir klebonai, senieji pagonių velniai ir krikščionybė, šlėktiška aukštuomenė ir valstietija, dvarų nuosmukis ir žemių „parceliavimas“. Spalvinga, jautru, perlieta gaivališka tautos sąmone, su daug vaikiško romantizavimo, kuris pamažu blėsta su gyvenimo patirtimi. Bet skaičiau sunkiai. Neprilipo. Likau nepritapęs, kaip ir pagrindinis knygos veikėjas Tomas.

Machine learning’o projektuose sunkiausia ne techninė dalis

Buvęs LinkedIn duomenų analitikas Peter Skomoroch konferencijoje Strata skaitė neblogą pranešimą apie tai, kas sunkiausia įgyvendinant machine learning ar dirbtinio intelekto projektus. Ne, ne techninės kliūtys. Sunkiausia tai, kad labai sunku tokius projektus tiksliai suplanuoti ir subiudžetuoti – o ir jų nauda dažnai sunkiai įvelkama į skaičius (kvantifikuojama). Didelei korporacijai, kurioje visi įpratę IT projektus vykdyti griežtai subiudžetuotais projektais (nesvarbu, kad dauguma jų tuos biudžetus vis tiek ryškiai perlipa), sunku suprasti, jog beveik neįmanoma suprognozuoti, ar veiks algoritmas ar ne, bei kiek laiko užtruks jį ištreniruoti. Niekas negali pasakyti, kada jau bus galima į gyvenimą paleisti save vairuojančias mašinas: visos prognozės buvo labai netikslios (berods Uber kažkada seniai sakė, jog 2020-aisiais jie vairuotojų nebeturės ir važinėsime autonominėmis mašinomis. Vis dar mane namo veža žmonių valdomi Toyota Prius).

The transition to machine learning will be about 100x harder than the transition to mobile.
Some of the biggest challenges are organizational, not technical.
Machine Learning shifts engineering from a deterministic process to a probabilistic one.

Peter Skomoroch

Labai svarbu, kad machine learning projektams vadovautų žmonės, kurie gerai supranta kompanijos duomenis, o ne vien yra matematikos profesoriai. Geras projektų vadovas supranta, kas machine learning‘e yra lengva, o kas sunku, ir, net jei tai ne itin sudėtinga problema techniniu požiūriu, supranta ar ji turi verslo vertę. Gal būt visai neverta šiai problemai skirti dėmesio? Taip pat svarbu suprasti turimų duomenų niuansus ir kokybę – dažnai teoretiniai matematikai tai pražiūri, nes matematiniuose modeliuose visi duomenys vienodai geri ir kokybiški. Realybėje – ne itin.

Duomenys nebūtinai sukuria daug verslo vertės

Šiandien užtikau gerą straipsnį apie tokį požiūrį, su kuriuo, deja, gana dažnai susiduriu kompanijose: reikia surinkti kuo daugiau duomenų, viską bet kaip sudėti į duomenų bazę ir iš to vis tiek gausis kas nors gero. Na, žinai, gi ten machine learning, dirbtinis intelektas, visa kita gi šiais laikais. Svarbu duomenų būtų.

Didesnėse kompanijose tai dažnai galima suprasti: pinigų projektams kaip ir yra, norisi užsidėti varnelę, kad „kažką darai su dirbtiniu intelektu“, net jei ir nieko nesigaus, tai bent jau bandysi. Nesvarbu, kad nelabai aišku, kokia reali to nauda verslui, ir kas bandoma pasiekti. Bet tai, pasirodo, dažnai pasitaiko ir tarp startuolių: vietoje to, kad pastangas skirti klientų paieškai ar geresniems procesams, per daug koncentruojamasi į duomenis, lyg jie būtų ta magiška burtų lazdelė, kuri visus staiga padarys milijonieriais.

Straipsnyje galima rasti gerų patarimų ir įžvalgų, kurių niekada reiktų nepamiršti, dirbant su duomenų projektais:

  • Kokie yra duomenų gavimo kaštai? Būtina bent jau apytiksliai paskaičiuoti, kiek kainuoja visi duomenų inžinieriai, visi vadovai, kuriems reikia ataskaitų ir planų, visi serveriai, infrastruktūra, visų vadovų laikas, kurį jie praleidžia kasdieną stebėdami analitines ataskaitas vietoje to, kad galbūt galvotų, kaip užkariauti naujas rinkas ir geriau padėti klientams.
  • Kokią naudą mes gauname iš duomenų? Kas atsitiktų, jei vienos ar kitos ataskaitos ar algoritmo nebūtų? Kiek verslo vertės susideda iš to, kad turime tikslesnę informaciją ir ją galime greičiau pasiekti? Taip neretai galima suprasti, kad visgi lengviau paskambinti klientui ir jo paklausti, kas jį mūsų svetainėje trikdo nei valandų valandas praleisti Google Analytics bandant išskaityti gudrias įžvalgas.
  • Per kiek duomenys pasensta? Dažnai net nepastebima, kad kelių metų duomenys jau niekam neįdomūs ir netgi nelabai naudingi: klientų poreikiai pasikeitė, elgsena kitokia, žiūrėk jau ir Facebook ne toks visiems įdomus, aplinka nujudėjo visai kitur. Kai supranti, kad tavo duomenys labai greitai sensta ir vien jų kiekis nesukuria tvaraus konkurencinio pranašumo (nes bet kas, investavęs metus ar kitus darbo gali irgi įgyti ne ką mažiau panašių duomenų), jų nuolatinis atnaujinimas ir kiekybės siekimas vien dėl kiekybės nušvinta kitomis spalvomis. Gal verčiau mažiau duomenų, bet labai gerai atrinktų? Ir gal užtenka logistinės regresijos ir visai nereikia neuroninio tinklo su dešimt tūkstančių faktorių?

Kaip galvoja prancūzai

Galvojau, kad ši knyga bus lengvesnė, nes tikėjausi kažko panašaus į Kate Fox knygą „Watching the English“. Sudhir HaareesinghHow the French Think: An Affectionate Portrait of an Intellectual People“ pasirodo gana sunkiai kramtomas tomas apie prancūzų filosofinę mintį bei jų mąstymo šablonus.

Prasibrovus pro gana sudėtingą, kone akademinę kalbą, įdomių įžvalgų knygoje tikrai galima rasti. Prancūzai piešiami kaip gilūs intelektualai, bet kartu ir kontrastingai priešinami su anglo-saksiškaja minties mokykla: britai ar amerikonai žymiai praktiškesni, jiems labiau svarbios ne patrauklios filosofinės utopinės konstrukcijos, o tai, kas veikia realybėje. Britai, prancūzų akimis, yra per daug pragmatiški, per daug užsiėmę pinigų darymu, kai patys prancūzai save laiko protingesniais, gebančiais galvoti apie tokiu dalykus, kaip tautų draugystė, brolybė, pinigus laiko vulgariais, ir geriau imasi revoliucijos siekiant įgyvendinti utopiją nei nuosekliai dirba link savo tikslų.

Vienas įdomiausių skyrių yra paskutinis, kuriame rašoma apie dabartinę prancūzų filosofinės minties situaciją. Jei dar ano amžiaus viduryje prancūzai buvo visiem įdomūs (daug kas skaitė Camus, Baudrillardą ir pan.), tai paskutinius kelis dešimtmečius jokių ryškių asmenybių prancūzų rašytojų bei filosofų tarpe nebeliko. Taip, knygos vis dar rašomos, leidžiamos prancūzų kalba, bet jos retai pasiekia bestselerių sąrašus už Prancūzijos ribų, jos lieka lokalios. Panašiai ir su prancūzišku mokslu: jei prieš šimtmetį ar kiek seniau prancūzai garsėjo savo mokslininkais (Pasteras, Kiuri, etc), tai dabar net Prancūzijos universitetai vargiai gali konkuruoti su kitų Europos šalių mokslo įstaigomis. Ir kas gali paminėti kokį labai sėkmingą pastarųjų metų prancūzų išradimą? Nebelabai kas.

Visas šis nuosmukis Prancūzijoje kelia tam tikrą tautos depresiją. Jeigu prieš šimtmetį ar kelis prancūzai buvo pati stipriausia intelektuali jėga pasaulyje, formavusi tautų vertybes (tereikia prisiminti, kokia svarbi pasaulio minties raidai buvo Prancūzijos revoliucija), tai dabar jie jaučiasi likę niekam neįdomiame užribyje. Dar prieš šimtą metų carinėje Rusijoje aukštuomenėje buvo gero tono ir išsilavinimo ženklas šnekėti prancūziškai, o dabar tai visiškai pakeitė anglų kalba. Kultūriškai prancūzai pralaimėjo, ir, deja, kol kas nelabai turi ką pasiūlyti naujo.

Goldman Sachs pardavimų principai

Neseniai perskaitytoje Goldman Sachs istorijoje man užkliuvo vieno iš jų vadovų suformuluotos taisyklės pardavėjams. Jomis Goldman Sachs bankas vadovavosi tuo metu, kai stengėsi įeiti į Europos rinką: aštuoniasdešimtaisiais jie Europoje tebuvo mažai kam žinoma amerikiečių kompanija, visiškai be klientų ir be jokios įvykdytų sandorių istorijos.

Taisyklės šios:

  1. Negaišk laiko stengdamasis atvesti klientą, kurio šiaip jau ir nelabai nori turėti.
  2. Dažniausiai sprendžia vadovas, o ne vidurinės grandies vadybininkas. Ar pažįsti tą vadovą?
  3. Gauti gerą klientą užtrunka beveik tiek pat laiko, kiek ir prastą.
  4. Kol kalbi, nieko naujo neišmoksti.
  5. Kliento tikslai yra žymiai svarbesni nei tavo paties.
  6. Vieno žmogaus pagarba yra žymiai vertingesnė nei paviršutinė pažintis su šimtu.
  7. Jei tik matosi galimybė gauti klientą – griebk jį!
  8. Svarbūs žmonės mėgsta bendrauti su svarbiais žmonėmis. Ar pats esi svarbus?
  9. Nieko nėra blogiau kaip nepatenkintas klientas.
  10. Jei atvedi klientą, tai iki pat galo turi rūpintis, kad jis viskuo liks patenkintas.