Úprava: Přidávám video ze své krátké prezentace na WebExpu 2013, kde mluvím o obsahu tohoto článku (v angličtině). Můžete si tak vybrat, jestli chcete video, text, nebo oboje.
Filip Hráček - Openning Keynote at WebExpoPrague 2013 Conference from webexpo on Vimeo.
Několikrát ročně sedím v místnosti se svými kolegy z různých zemí, a mám tak možnost si trochu udělat obrázek o vývojářských komunitách a o technologickém bzukotu po celém světě. Součástí popisu práce každého z nás je (snažit se) rozumět lokálnímu technologickému trhu a jeho vztahu s trhem globálním. Hned vedle mě sedávají lidé z USA, Německa a Izraele, ale i Indie, Číny nebo Brazílie.
Tahle sezení vždycky byla extrémně zajímavá a inspirativní, ale poslední dobou si z nich odnáším ještě něco navíc – úzkost.
Než to slovo odsoudíte jako příliš dramatické a/nebo bulvární, dočtěte prosím do konce. Tohle možná bude trochu delší článek (přes veškerá zjednoduššení, kterých se dopustím), ale budu se snažit, aby stál za to.
Foto: OndraSoukup (CC licence)
Izrael a Indie
Podívejme se na dva státy zastupující z určitého pohledu dva protipóly – Izrael jako zástupce vyspělého, hi-tech “Západu”, a Indie jako zástupce rychle se rozvíjejícího, relativně low-tech “Východu”. V Izraeli žije 7 miliónů lidí, v Indii 1,2 miliardy lidí. Průměr HDP na hlavu (PPP) je v Izraeli zhruba 10x vyšší než v Indii. V technologickém světě, kde se pohybuji, je Izrael rozhodně větší hráč než Indie – i přes 170x menší populaci.[1]
Kdybyste měli umístit Českou republiku (potažmo Slovensko) na pomyslnou úsečku mezi Izrealem a Indií, ke které z těchto zemí byste ji dali blíž?
V naprosté většině os, které si můžeme pro takové cvičení vymyslet, je ČR/SR samozřejmě blíže Izraeli. Velikostí, počtem obyvatel, HDP na hlavu, úrovní vzdělávání, životním stylem, kulturou. Ne, že bychom o ČR/SR mohli jen tak od boku říct, že jsou to státy “podobné Izraeli”, ale rozhodně jsou více podobné Izraeli než Indii.
Ale přesto jsme v alespoň v jedné věci dost tragicky podobnější Indii než Izraeli – a to technologickou úrovní. Nemyslím technologickou úrovní produktů a služeb, které si kupujeme (většinou ze zahraničí) a konzumujeme, ale technologickou úrovní většiny naší vlastní produkce. (Co přesně tím myslím ještě rozeberu níže.)
V době, kdy se velká část veškerého ekonomického dění (produkce, transakce, spotřeba, ...) přesouvá do sféry softwaru[2], a tedy technologická úroveň je v podstatě nejsilnější měřítko ekonomického zdraví státu[3], je tohle docela závažná diagnóza. V podstatě to znamená, že ať děláme cokoliv v ostatních sférách a s ostatními problémy, které tu máme, nehneme se z místa. Sami se stavíme do funkce technologických lopat, a nejsme si toho vědomi, protože jsme před důsledky našeho vlastního počínání zatím stíněni.
Vlastní píseček
Následující platilo před pěti lety a platí z velké části i dnes, ale ne nutně bude platit za dalších pět let: český a slovenský trh je malý a relativně chráněný. Softwarová firma (ale například i samostatný webdesigner) prodávající řešení českému klientovi se příliš nemusí bát konkurence ze zbytku Evropské unie, natož třeba z Indie. Důvodů je několik: jazyková bariéra, “specifika” trhu, konzervativnost současné generace vedení v podnicích, cena (český vývojář je pořád ještě levnější než anglický), relativní kvalita.
Všechny tyhle důvody se pomalu rozpadají nebo přestávají existovat.
Pokud ty bariéry padnou pod určitou úroveň, začne najednou český/slovenský softwarový projekt soupeřit s indickým. Ne, nebude soupeřit s Izraelem, protože tamní technologická úroveň je někde úplně jinde než tady nebo v Indii – a stejně tam má málokdo zájem programovat PHP weby. Zato indická vývojářská firma je přesně na té správné technologické úrovni – a český trh je pro ni bohatý.
Ale nejde jen o Indii a levnější pracovní sílu. Jde taky o automatizaci. Když se budeme držet těch webů – pokud někdo dělá projekty na stejné úrovni, jako 99% českých studií, musí počítat s tím, že ho zanedlouho nahradí automat. Nezapomeňme, že tomu není tak dávno, co si lidé relativně draze platili statické webovky u profesionálů. Tenhle segment už je v podstatě zcela nahrazen “automaty” (Webnode, Google Sites, Facebook Pages, …). Pokud myslíte, že eshop nebo informační systém nebo webovou “databázi věcí” nelze dodat bez zásahu programátora, asi jste ještě neviděli například toto video[4], nebo nemáte dostatečnou fantazii.
Srovnání podle technologií
Vraťme se tedy k tomu, co myslím “technologickou úrovní naší softwarové produkce”. (Na chvíli teď vlétnu naplno do sféry startupů, ale jen proto, že na těch se mi to lépe vysvětluje.)
Do následující tabulky jsem náhodně zpřeházel úspěšné české technologické firmy (5ks) a ty nejúspěšnější zahraniční technologické firmy (také 5ks, vzniklé za posledních 5 let). Ke každé z nich jsem připojil nejobecnější možný popis jejich technologického řešení.[5]
Klik pro větší. Slovem "databáze" nemyslím databázi typu např. SQL, ale databázi jako například katalog. Názvy českých startupů jsem začernil, aby to nikdo nebral zbytečně osobně. Ale opravdu to byl náhodný výběr, a opravdu jsem se nemusel nijak snažit, aby to vyšlo takto jednostranně.
Kdybychom k tomu přidali programovací jazyky, na kterých běží jejich servery, bude pak tabulka vypadat takto.
Hmm....
“Ale na technologii přece nezáleží! Hlavní je řešit existující problém!” — kecy. Ano, je potřeba řešit existující problém, ale pokud k tomu zvolíte architekturu, která napadne průměrného “foundera” jako první (á la: “pojďme udělat webový katalog!”), můžete si být jistí, že v dané vertikále nejste (nebo dlouho nebudete) sami. Opravdu zajímavé technologické projekty vznikají ve chvíli, kdy máte a) vhled do problému, a zároveň b) vhled do technologie, kterou ten problém budete řešit.
Google by bez technologického vhledu neexistoval.[6] Uber by byl jen další taxi aplikací v řadě. SoundCloud by byl jen další sociální sítí pro muzikanty.
Stejně tak by bez technologického vhledu neexistovalo AVG nebo Avast nebo ESET. Respektive by ty firmy možná existovaly, ale na lokální úrovni, jako výrobci podřadných antivirů. Místo toho jsou v globálním TOP 10 jak z hlediska kvality, tak z hlediska počtu uživatelů.
“Don’t work harder, work smarter”
Tohle není další článek o tom, že ve střední Evropě máme malé ambice a málo pracujeme. Pokud začnete něco řešit dostatečně pokročilými technologiemi, obvykle pak nemusíte vkládat tolik energie do toho ostatního.
Příklady jsou výše, ale jeden z nich zkusím vysvětlit podrobněji. Hodně amerických společností a startupů se snaží “vyřešit taxislužbu”, některé do toho investují obrovské prostředky a přicházejí do hry s důležitými kontakty, a všichni makají na 100% – ale nikdo se v současnosti nevyrovná Uberu. Ten nejenže začal brzy, už v roce 2010 (což je samo o sobě technologický vhled), ale možná ještě důležitější je, že používá pokročilé prediktivní algoritmy, které mu umožňují poslat auto do vaší blízkosti ještě dřív, než vůbec víte, že chcete taxi. Tím pádem je Uber o řád užitečnější než jeho konkurenti. Tím pádem se nemusí tolik snažit. Lidé si o něm poví sami.
Kdyby vznikl Uber v ČR, určitě by to měl těžší s expanzí, než to teď má v Americe – ale pevně věřím tomu, že by si jej i tak v zahraničí všimli. Rozhodně by to měl jednodušší než 99% dnešních technologických projektů v ČR a SR.
Na co to svedeme?
Jenže Uber v ČR nevznikl. Stejně tak v ČR nevznikl například žádný z nejposlednějších izraelských startupů. Ani nic podobného. Místo toho tady vznikají projekty, které jsou už jenom o krůček napřed před Indií. Proč?
- Chybí nám ambice?
- Možná, ale nemyslím si, že je to tak horké. (Už jenom vzhledem k tomu, že o tom tak často sami mluvíme.) Vezměte si příklad českých a slovenských antivirových společností: jejich počátky také nebyly zrovna ukázkami obchodní dravosti. A koukněte, kde jsou teď.
- Podráží nám nohy úřednický šiml?
- Ano, ale zeptejte se kohokoliv, kdo v Česku nebo na Slovensku nějakou dobu úspěšně podniká — zatím jsem vždy slyšel, že je to sice opruz, ale rozhodně to samo o sobě není bariéra. Stačí mít, jak to popsal jeden úspěšný podnikatel, “železnou prdel”.
- Chybí nám vzdělání?
- Rozhodně ne. V porovnání například s Indií máme naprosto úžasný vzdělávací systém, navíc zdarma.[8] Čeští vývojáři se učí (nebo mají možnost se učit) pokročilé technologie (programovací jazyky, systémy, algoritmy) — a pak jdou programovat PHP weby.
Jeden velký problém tkví podle mě v tom, že se čeští a slovenští podnikatelé ještě nenaučili respektovat inteligenci lidí “pod nimi”. Vymyslí si projekt (včetně technologického řešení), a pak najmou co nejlevnější vývojáře, aby jim to “nakódovali”.
Z toho vychází mrtě dalších problémů. Český a slovenský pracovní trh si žádá hlavně levné vývojáře, kteří umí prototypovací jazyky typu PHP nebo JavaScript. Jazyky jako Java, C, Python nebo Ruby, ve kterých se dělá na lepších školách, a na kterých – jak jsme viděli výše – stojí naprostá většina současných technologických společností ve světě (včetně Googlu, Amazonu, nebo Applu, mimochodem), jsou považovány za příliš těžké a “drahé na deployment”.[7] Tím pádem se většina vývojářů učí PHP a má pocit, že jiné programovací jazyky a pokročilé vědomosti (např. umělá inteligence, HCI, systémové inženýrství), které se učí (nebo mohou učit) ve škole, jim k ničemu nebudou. Tím pádem jsou lidi s pokročilými vědomostmi neproporčně vzácní a drazí. Tím pádem si je firmy nemohou dovolit. Tím pádem volí za svůj tech stack raději to PHP. A tak dokola.
Ještě jsme v klidu
Jak jsem psal výše, zatím jsme před důsledky téhle spirály průměrnosti ochráněni tím, že hrajeme na vlastním písečku. Jenže naše pískoviště se stává stále otevřenější, a naše průměrné projekty a produkty začínají soupeřit s podobnými z rozvojových zemích.
Jen tak pro ilustraci: možná znáte úspěšný akcelerátor 500startups. To jméno – 500 startupů – má vyvolat údiv, nebo alespoň nějaké to nadzvednuté obočí. 500 startupů je hodně, ne?
Jo. A zatímco Američanům se zdá 500 startupů hodně, a nám se zdá hodně pár desítek, tohle se děje v Indii:
10.000 startups. Občas slyším, jak se někdo posmívá úrovni průměrného indického vývojáře. Ha ha. Smutné je, že zatímco jejich úroveň se rapidně zlepšuje, u nás spíš stagnuje, takže nebude trvat dlouho, a českým vývojářům zmrzne úsměv na rtech. Kvalitativně budeme na stejné nebo horší úrovni, a kvantitativně s Indií (a se zbytkem světa samozřejmě – Indie je jen příklad) soupeřit nemůžeme.
Co s tím?
Ono stačí docela málo: využít inteligence a vzdělání, které tady v ČR a SR (stále ještě) je. Nebát se těžkých technologických problémů (když kouknete trochu pod pokličku toho Uber algoritmu – zas taková magie to není).
A učit se nové věci. Nespoléhat se jen na české vysoké školství (které je ale pořád ještě o dost lepší než to indické, mimochodem). Jsem toho názoru, že každý vývojář by měl dobře znát alespoň dva (dostatečně rozdílné!) programovací jazyky. Stejně tak by měl každý programátor získat (a obnovovat) expertní znalost o svém oboru. To znamená: vědět o pokročilých algoritmech, o nejnovějších systémových technologiích, vědět, co je to MapReduce, jak se implementuje CMA-ES, atd. Ne nutně všechno zároveň, ale aspoň něco.
Každý designer by měl vědět nejen úplně vše o designu a User Experience, ale měl by mít velmi slušné povědomí i o věcech jako je HCI, analytika a byznys. Bez toho nemůže klientovi/šéfovi/vývojáři vysvětlit, čeho chce dosáhnout, a jak.
Každý člověk z byznysu (šéf, “Founder”, atd.) by měl vědět alespoň základy o věcech jako je vývoj, UX, ale také základy prediktivní analýzy nebo HCI. Ale hlavně by měl vědět, že základy nestačí, a že potřebuje spolupracovat s experty z oboru, a nechat jim prostor pro to, aby na technické/designové řešení přišli sami. Nerozumím například tomu, proč lidé z technologického byznysu nechodí častěji na univerzity a nesnaží se zuby nehty spolupracovat s výzkumnými centry (typu Data Science Lab na ČVUT).
Moje úzkost vyplývá z toho, že se ČR a SR pomalu ale jistě stávají irelevantní. Pokud se nebudeme zabývat těmi nejpokročilejšími technologiemi, a budeme řešit stejný typ technologických problémů jako průměrný indický startup, stává se z nás jenom předměstí Dílí. Navíc předměstí, ve kterém se ty samé věci dělají mnohem dráž a s menší vervou…
Jediná cesta ven je vytvářet produkty (webové stránky, aplikace, hardware) na světové úrovni. Brát si větší příklad z Izraele než z Indie.
[1] Bavím se o státech. Indie je samozřejmě díky svým talentům pracujícím v zahraničí už delší dobu obrovský pojem. Ale v samotné Indii se toho zatím z komerčně-technologického hlediska moc neděje.
[2] Viz například: The Software Economy: Why Software Jobs Are Taking Over nebo The Rise of Developeronomics.
[3] K tomu přispívá i to, že zatímco například slabý design můžete přebít technologií relativně snadno, naopak se to dělá hůř. “This week, Tesla made news when its Model S sedan outsold Porsche, Jaguar, Volvo, Land Rover, Lincoln, Fiat, and Mitsubishi in California. It managed that feat without any advertising or marketing. Tesla doesn’t even have a Chief Marketing Officer.” https://plus.google.com/112747417479881824801/posts/DjxY2B2gfEc
[4] Jedno z mnoha. První eshopy tohoto typu lze lehce dohledat do roku 2010, i dříve.
[5] Srovnání je to samozřejmě dost neúplné a rozhodně nevědecké, ale myslím, že rozdíl je natolik patrný, že čtenář pochopí, o co mi jde. Samozřejmě uvítám, pokud někdo bude chtít udělat na toto téma regulérní studii.
[6] Problém vyhledávání na internetu už dávno před příchodem Googlu řešili jiní. Ale byl to právě technologický vhled do problematiky, který dal (přinejmenším v počátcích) Googlu navrch.
[7] Což mě fascinuje. PHP je jednodušší a levnější “na deployment” jenom v prototypovací fázi. Copak když někdo dělá firmu, která by měla (doufejme) existovat mnoho let, opravdu je pro něj tak důležité, že udělá “deployment” přes “eftýpko” za pět minut a že to může běžet na webhostingu za stovku měsíčně? Nemělo by jej spíš zajímat, co bude dělat za šest měsíců nebo za rok, až bude na projektu pracovat deset lidí a bude potřeba refaktorovat na denním pořádku?
[8] V Indii se určitě najde spousta škol špičkové úrovně, ale ty jsou pouze pro zanedbatelnou část populace – na rozdíl od našich škol. Ať si o našem školství myslíte cokoliv, vedle Indie je to Ivy League.