sobota, ledna 12, 2008

Wow!

Vida. Myslel jsem si, jak si pěkně budu hovět v laskavé náruči .NET, a místo toho jsem spadl přímo do Win32. Však víte: to je ten svět, kde ty důležité věci jsou psány velkými písmeny, každá funkce má alespoň jednu Ex (a možná i ExEx) verzi a základem je pamatovat si, že když něco chcete, musíte pěkně poprosit funkcí SendMessage.

Popravdě musím říct, že až teď jsem si uvědomil, jak jsou Windows obrovské, co všechno v nich je a jak je zatraceně těžké v nich programovat.

Win32 API je vlastně úžasný artefakt závratné historické hodnoty, který umožňuje sledovat jak se osobní počítače vyvíjely posledních dvacet let. V dobách, kdy výkonné počítače měly 2MB paměti a jejich procesor běžel s taktem 20MHz, jistě bylo rozumné snažit se nacpat co nejvíce informací do co nejméně bytů paměti, a co nejvíce věcí řešit co nejmenším množstvím kódu. V té samé době, když ještě neexistovalo C++ (současná podoba byla standardizována až v roce 1998), bylo zcela určitě novátorským přístupem implementovat ten jediný prvek uživatelského rozhraní kterým Windows disponují (ano, správně, je to okno, hned ten název -- Windows -- dává takový pěkný dvojsmysl, že?) tak, že umožňuje tzv. subclassing, tedy možnost podstrčit systému ke správě takového okna správně napsanou funkci, ve které můžete z pitomého obdélníku udělat cokoliv, od tlačítka, přes textové pole až po... no, třeba ribbon, kdybyste o to stáli. A ačkoliv si to nebudete myslet, i ty registry, nad kterými každý ohrnuje nos, jsou poměrně slušně navržené (horší je to samozřejmě s implementací -- skoro bych se vsadil, že registry vymyslel ten tým, co dělal Windows NT, a pro Windows 95, blahé paměti, vyšla jejich nedomrlá verze, která brala ohled na to, že uživatelé nechtějí věnovat 70% výkonu svého počítače robustnímu úložišti konfigurace).

Bizarní na tom je, že tenhle místy prazvláštní slepenec funkcí (z nichž některé spojují podobné vstupní parametry a podobné výstupní hodnoty) pohání všechny Windows (tedy od verze 3.1, nebo kolik), včetně těch úplně posledních.

Znamená to dvě věci. Za prvé: skoro všechno co napíšete ve Win32 pro jedny Windows, poběží i na všech ostatních. A za druhé: Microsoft ve Windows nemůže nic změnit.

Myslím to takhle: Když píšete program, a rozhodnete se, že mezi dvěma verzemi něco změníte nebo opravíte, čímž se chování vašeho programu v 1% případů mírně změní, je to pro vaše uživatele jistě nepříjemné, ale, zatraceně, je to jedno mizerné procento a opravili jste chybu, kdo by si s tím lámal hlavu? Ovšem pokud jste Microsoft, a jedno procento uživatelů je, řekněme, 10 miliónů lidí, pak už takhle uvažovat nemůžete. Říkáte si: K čertu, náklady na opravu všeho softwaru, který je na téhle chybě závislý se zhruba vyrovnají nákladům na stavbu jedné či dvou letadlových lodí, nebo na stavbu základny na Měsíci, nebo tak něco. A nikdo nezaručí, že software, na kterém je třeba to jedno procento lidí existenčně závislých, někdo opraví. Co pak budete dělat s těmi 10 miliony telefonátů na servisní linku?

Podívejte se na Visty: Microsoft se v nich pokusil opravit hodně chyb, které mu byly dlouho vyčítány. Od přístupu co není zakázáno, je povoleno (tedy: uživatelé přeci nejsou banda tupých hovad), přešel k co není povoleno je zakázáno (tedy: dobře, když se chováte jako banda tupých hovad, ztížíme vám provádění těch největších pitomostí), protože léta uživatelé fňukali nad mizernou bezpečností Windows a tak dále. Odměnou mu za to je nepřetržitý proud neinformovaného plácání o tom, jak Visty jsou jen nové UI (jistě, navíc zkopírované z počítačů Apple), jak najednou nefunguje spousta software a hardware, kolik Visty čeho žerou a čím vším pořád točí a že Windows XP jsou stejně lepší, a kdo ví co ještě.

Dobrá, při uvedení Windows XP také všichni blekotali o tom, že v nich není nic nového než kulatá okna a tak dále a tak podobně, a stejně jako při přechodu z Windows 2000 na Windows XP tahle nesnesitelná litanie nejpozději koncem tohoto roku ustane.

Je tu ale přeci rozdíl: změna mezi Vistami a XP je opravdu podstatná, a ovlivní poměrně mnoho uživatelů (třeba celá ta věc s UAC -- v okamžiku, kdy na XP máte hotovou aplikaci, musíte ve Vistách začít řešit všechny tyhle manifesty, a Windows Defendery, a blokovače Bůh ví čeho). Spousta programů, které spoléhaly na to, že to či ono, je tam či onde, najednou nefunguje, protože tady a támhle, byly zalepeny ty či ony bezpečností díry, nebo se věči, o kterých Microsoft nikdy neřekl, že budou tam kde jsou i v budoucnu, přesunuly jinam, a najednou informace, která se ve Windows 2000 nebo XP dala vyčíst jedním dobře mířeným přístupem do registrů musí dohledávat přes API (což se ostatně měla už i ve Win2000, jen to nikdo nedělal, protože to bylo moc práce, a registry jsou přeci naše, že ano!).

Čímž se oklikou dostávám k tomu, co jsem asi tak zhruba chtěl říct: ve Win32 se neprogramuje moc dobře. Ne proto, že by API bylo nějak extrémně špatně navržené. Ve skutečnosti je docela slušné a v rámci jednotlivých domén i poměrně konzistentní, když uvážíme, že se z počítačů s výkonem, který dnes má každá lepší kalkulačka dokázalo úspěšně přesunout na stroje s kdo ví kolika jádry a gigantickým (z pohledu počátku 90. let) množstvím paměti všeho druhu. (Vsuvka: Zrovna tento týden jsem poslouchal nějaký podcast, kde se řešilo, proč Windows nemohou pracovat na více než 64 procesorech. Je to proto, že maska, která určuje, na kterých procesorech -- nebo jádrech procesoru -- může program běžet, má jen 64 bitů. Dovedu si představit, jak někdo v roce 1992 uvažuje, zda takovou masku implementovat obecně, jako nějaký druh seznamu, nebo malinko špinavým trikem, jako jednu dlouho proměnnou. A je mi jasné proč, při tehdejší úrovni počítačů, zvolil malinko špinavý trik.) Problém programování ve Windows je v tom, že ve Windows je toho tolik.

Na tomto místě je obvyklé říct (a ano, i já to s oblibou říkám), že tyhle obří operační systémy jsou nesmysl, a že z nich stejně většina lidí využije jen malou část. Ovšem otázka je, kterou malou část většina lidí využije, když je jich třeba miliarda? Čeho vlastně má mít takový správný malý operační systém vestavěnou podporu? Sítě? Grafická akcelerace? Asi tak sto tisíc různých druhů nejexotičtějších periferií, bez kterých právě těch bezvýznamných 10 miliónů lidí nemůže být? Co byste z Windows vyhodili, aby to nikomu nechybělo? Nebo aby to chybělo méně než milionu lidí? Co když někdo rozhodne, a z další verze vypadne zrovna to, co potřebujete vy?

Na druhou stranu: Windows API má dneska kolem 14000 funkcí. I když dokumentace, kterou Microsoft k API poskytuje je (ve srovnání s jinými API) na dobré úrovni, je to, zatraceně, 14000 funkcí. Kdo se tohle může naučit? Kdo může mít alespoň základní přehled o tom, jak co správně udělat v kterékoliv oblasti, kterou to API pokrývá? Dobrá, dneska zadáte dotaz do Googlu, klik-klik, a o hodinu hledání dál máte zhruba dvě až tři diskusní fóra, ze kterých poskládáte jak udělat to co potřebujete udělat. Ale kdo z programátorů, po kterých šlape jejich šéf, že už to, sakra, mělo být dávno hotové, si vybere hodinu hledat, dvě hodiny studovat, a další hodinu programovat (správně), když může zmáčknout Win+R, napsat regedit, Ctrl+F, klepy-klepy-klep, hmmm, takže HKEY_LOCAL_MACHINE lomeno System lomeno... no vida, a už je to tady!? Samozřejmě kromě vás?

Proto není divu, že pro Windows vznikají -- ehm, jak to říct -- zprasené aplikace. I já sám jsem jistě spoustu věcí udělal nesprávně. A to ne proto, že bych je nechtěl udělat správně. Prostě nevím, jak to správně vypadá. Původně jsem si myslel, že by mi třeba pomohlo nějaké školení nebo knížka. Ale jak chcete udělat školení nebo knížku na 14000 funkcí? Mám Petzolda, který je jistě dobrý jako úplný základ, ale problém s aplikacemi je v tom, že mají řešit nějaký problém, a řešení takového problému se většinou skládá ze spousty ne zcela souvisejících pod-problémů. Jak se na tohle připravit? Jak máte vědět, co budete dělat příště (pokud tedy pracujete na více malých a krátkých projektech a ne na jednom velkém a dlouhém)? Myslím si, že jediné opravdu smysluplné řešení je průzkum bojem, kdy vám někdo zkušenější ukáže, co a jak. Ovšem kde pořád brát ty zkušenější lidi, to netuším.

Tenhle problém, myslím tu objemnost a horizontální rozplizlost, měl asi vyřešit .NET, a částečně se mu to i podařilo. Ovšem s každou další verzí .NET, přibývá jmenných prostorů a tříd a metod a jazykových konstrukcí .NET jazyků takovým tempem, že po pěti letech jsme se dostali skoro do stejné situace, v jaké jsme byli předtím: Vím jistě, že na tohle bude v .NET nějaká třída. Ale kde, proboha? A tak si programátoři znovu a znovu píší jednoduchá řešení složitých problémů, které už dávno někdo robustně vyřešil, jen o tom nikdo neví.

V každém případě: Windows je jeden z nejúžasnějších inženýrských projektů na světě. Ať už je to s jejich použitelností v jednotlivých verzích jak chce, tohle se jim upřít nedá. Při rozsahu, který mají, je vůbec div, že je ještě Microsoft dokáže udržovat, a občas dokonce i dál vyvíjet.

Představuji si, jak za milión let archeologové vyhrabou někde v místech, kde je dneska Seattle, server se zdrojovými kódy Windows, a vystaví je v muzeu, a děti se na to budou muset chodit dívat, a paní učitelky budou říkat Tady děti vidíte, kolik úsilí lidé dokázali vyvinout, když šlo o předměty sloužící nějakým tajemným divošským rituálům, a děti budou znuděně lepit na vitrínu žvýkačky a těšit se, až se na ty lidi půjdou podívat do zoo, a budou po nich házet kamínky a dělat na ně obličeje.

Děti už jsou prostě takové.

pátek, ledna 11, 2008

Už to začíná...

"Tati, a proč nevěříš v Boha?"

neděle, prosince 23, 2007

Ubohost

Dobrá, na stupnici ubohosti od 1 do 10 je linkování videa na YouTube někde kolem devítky, ale tohle je tak smrtelně vtipné, že to nemůžu nezalinkovat: Here Comes Another Bubble, Version 1.1. (více viz zde).

A když už jsem u toho: pokud jste na The Escapist přehlédli Zero Punctuation, a máte dost času, tak rozhodně doporučuji.

sobota, prosince 08, 2007

Tristní!

Vysvětle mně tohle: proč, když jsem si někdy včera (nebo kdy, mám teď mírně narušené vnímání času) postěžoval, jak jsou první nahrávky nejlepší a ty další nestojí za nic, už tři dny za sebou nespolouchám nic jiného než Faint a Nobody's Listening? (Tedy: ještě do toho občas proložím Extreme ways, edice pro Bourne's Ultimatum.)

A co je horší: pořád u toho tak nějak křečovitě potřásám hlavou a pitomě se usmívám!

pátek, prosince 07, 2007

Not so Test Driven...

Tuhle jsem tu psal o tom, jak mě BVer uvrtal do unit testování, a věcí okolo. Dokonce jsem na sobě zkoušel praktikovat i Test Driven Development, a nějak bych rád shrnul, co jsem zjistil.

Především chci říct, že když jsem báječný svět unit-testů objevil, říkal jsem si, jak jsem asi tak tisíc let za opicemi, a že tohle přeci musí používat každý člověk s trochou sebeúcty. Myšlenka testovat kód po malých částech ještě před tím, než zapomenete co má přesně dělat, nebo dokonce zjistit co a jak má dělat tím, že napíšete testy je tak skvělá a samozřejmá, že jsem byl zklamán, že mě nenapadla samotného.

Jaké bylo moje rozčarování, když jsem zjistil, že testování na úrovní nějakých malých komponent není vůbec samozřejmé, a že dokonce velká část lidí, kteří se živí programováním se k němu staví negativně, nebo dokonce odmítavě, a celkově v něm nevidí žádný užitek. Zkoušel jsem několika lidem několikrát opatrně vysvětlit, že čím dřív na chybu přijdou, tím dřív a rychleji ji odstraní, a i když unit testování není samospasitelné, že je to skvělá věc, a že by se jí měli věnovat.

Dokonce jsem i byl skoro úspěšný, když jsem jednoho (teď už bývalého kolegu) přesvědčil, aby si pár testů napsal. Čekal jsem, jak za mnou přiběhne s velkou krabicí belgických bonbónů, bude mi děkovně třást rukama a radostně poskakovat a povykovat, o kolik rychleji teď programuje a jak se kvalita jeho práce zvýšila a tak dále a tak podobně. Místo toho asi po třiceti minutách přišel s velmi správnou otázkou: "No a co mám jako dělat s tou databází?" I neváhal jsem, a začal ho zasvěcovat do tajů mock objektů, které okopírují rozhraní takové databáze, ale nebudou ve skutečnosti dělat nic jiného, než že na předem připravené otázky dají předem připravené odpovědi, načež zkontrolují, zda se jeho kód chová správně, a jeho kód zjistí jestli umí správně reagovat na divné stavy, do kterých se taková databáze může dostat. Čím déle jsem hovořil, tím víc zíval, až nakonec odešel, a o testování jsem od té doby spolu nemluvili.

Nerozuměl jsem tomu, protože napsat si mock-objekt na sériový port (ten z .NET) pro mě bylo opravdu zábavné, i když mi to, pravda, nějakou tu hodinku trvalo, a fakt, že jsem pak mohl pěkně ozkoušet co udělá celé komunikační rozhraní, které jsem tehdy psal, když místo očekávané zprávy přijde nějaká úplně jiná, mi pomohlo zkrátit ladění na pár desítek minut. Ještě méně jsem rozuměl odporu některých lidí, kteří se zabývají vývojem embedded aplikací, zvlášť když neměli k dispozici pořádný debugger.

Samozřejmě, že testování není zadarmo. Psát testy je někdy vážně nuda (třeba set/get metody s trochou logiky), někdy je to vyloženě masochismus (jednou jsem zkoušel, kolik úsilí by mě stálo dosáhnout 100% pokrytí kódu testy a vážně to nestálo za to, protože některé obzvláště vypečené chybové stavy je těžké vyvolat bez toho, abyste neomockovali půl operačního systému), nicméně celkově se rozumná míra testování vyplatí.

Projekt na kterém teď pracuji je poměrně agresivně naplánován, a popravdě, když jsem padesát minut psal mock na třídu zapisující do registrů, říkal jsem si, jestli to stojí za to. Nakonec se ukázalo že ano, protože jsem pak asi za deset minut odladil kód, který ten zapisovač používal, přičemž jsem odhalil asi pět velmi vypečených chyb, které by mě jinak stály spoustu ladění (určitě nejméně padesát minut, protože než bych na ně přišel, dávno bych zapomněl co jsem vlastně původně chtěl, aby kód dělal).

Rovněž jsem nabyl nezvratného přesvědčení, že i když TDD není pro mě (prostě nedokážu psát testy nasucho dopředu -- potřebuji alespoň nějaký kód, který pak třeba celý přepíšu, ale který mi dá vizuální představu jak bude celá věc fungovat a interagovat s okolím), jeho alespoň podvědomé používání vede k psaní lepších programů, které jsou lépe rozparcelovány, méně navzájem provázány, snáze udržovatelné, jednodušeji rozšiřitelné a tak dále. Myslím tím takové ty věci jako předávání objektů konstruktory, vyhazovaní výjimek, rozumné použití dědičnosti, využívání interfaců (interface nebo čistě abstraktní třída je grunt -- bez interfaců nikdy nemůžete vyměnit jeden objekt za druhý, resp. skutečný za mock) a podobné věci.

Chtěl jsem říct asi toto: jsem daleko od nejlepšího žáka Martina Fowlera, ale i když mám někdy pocit, že bych se měl na testování vykašlat, a raději smolit produkční kód, za který si zákazníci platí, vždycky se nakonec ukáže, že kdo testuje, ten vyhraje. A proto (spolu s klasikem) volám: Lidé, testujte!

úterý, listopadu 27, 2007

Na plný koule

Začněme něčím jednoduchým. Třeba rockem. Víte, popravdě kytarovky nemám rád. Přijdou mi nudné a tak nějak si myslím, že ty za roky, co je elektrická kytara s námi, už byly všechny kombinace akordů vyzkoušeny, a přijít s něčím novým je vlastně nemožné, a upřímně: jen lidé slabí duchem by mohli chtít poslouchat pořád dokola to samé (ach, když tohle naprosto vážně říkám ve společnosti, kde se seriózně diskutuje o rockové hudbě, některým lidem povážlivě roste tlak...). Navíc je pravda, že většina těchhle rockerů nemá žádné hudební vzdělání, kromě toho, že nedokáží hrát na žádný hudební nástroj, neumí často ani zpívat a tak dále a tak podobně.

Přesto, přiznávám, i já mám některé rockové desky rád. Třeba Angel Dust, nebo Proud Like a God nebo Hybrid Theory (ano, jistě, nu-metal, ale proto používám raději výrazu kytarovky, než rock) a tak dále a tak podobně. Prostě: drtivá většina toho, co z rocku snesu jsou první, nebo skoro-první desky (takové ty první, kde členové skupiny umí už alespoň trochu mačkat akordy).

Druhá skupina rockových nahrávek které docela dobře snáším, patří do kategorie art rock (nebo progressive rock, nebo jak se to jmenuje). Sem tam něco do Pink Floyd, skoro celý Marillion, jistě, Queen, dokonce i Enchant (i když od těch znám jen první dvě alba, tak snad hrají pořád to samé). Čili: takový ten rock, který hrají lidé, kteří už umí trochu hrát, místy je ta hudba až k hranici absurdity překombinovaná a přeplněná vším možným, nicméně pořád je dost zajímavá na to, aby se dal poslouchat.

Jistě jste si všimli toho vzoru: buď našlapané první desky, kde pár (nejlépe mladých lidí) ze sebe vychrlí něco úžasně nabitého energií (ano, někdy jsou klišé opravdu nejlepším popisem reality), nebo mimořádně rafinovaně promyšlené útvary, které obsahují tolik materiálu, že i po několikerém poslechu pořád slyšíte něco nového, zábavného, zajímavého.

Problém je v tom, že většina těch mladých a nabitých se rychle změní na mladé a vybité, a pokud nemají dost soudnosti tak i na, nemůžu odolat, mladé a vyblité. Takových muzikantů, co dokáží udržet dlouhodobě vysokou úroveň produkce je málo, a čím déle si to odmítají přiznat, tím jsou trapnější (protože Olympic je kachna na vejcích, zmíním třeba U2).

Tak a teď k tomu na co čekáte: tohle všechno samozřejmě má nějak ilustrovat situaci kolem software. Je to přeci zřejmé: Jsou firmy a projekty, které jsou mladé, dravé a tak dále, pak je pár vyjmečných, kteří dokáží inspirovat celé roky a desetiletí, no a nakonec jsou tu ti nudní, kteří ať se snaží jak se snaží, pořád z nich leze jen průměrný rádiový popík s elektrickou kytarou.

Samozřejmě, že bych teď mohl volně permutovat jména firem a přiřazovat je do libovolných skupin, a tak dále. Ale jistě uznáte, že by to bylo zbytečné. Navíc jsem spíš chtěl říct něco v tom smyslu, že je to vážně zajímavé, že každý z těch úžasných a odvážných start-upů, které se povedou jen proto, že někdo je dost mladý a pitomý na to, aby si neuvědomil, že cíl, který si dal, je prostě nesplnitelný, mají vlastně jen dvě cesty: buď se změní na ty nudné, nebo prokáží, že mají na to být těmi inspirativními.

A uznejte, že vyjmenovat tři firmy, které se pohybují v softwarovém průmyslu, a lze je bez obav prohlásit za dlouhodobé tahouny, je vážný problém. Nakonec se všichni vydají buď cestou Microsoftu, a utopí se ve vlastním úspěchu (třeba Google tohle skvěle dokumentuje, protože teď už víme nač se dívat), nebo skončí jako Nullsoft. (Samozřejmě pokud se neztratí z povědomí ještě dřív, než se do něj vůbec stačí dostat.)

Nicméně: Tuhle jsem četl, že Facebook má hodnotu (pokud to správně počítám) srovnatelnou se státním rozpočtem České Republiky (plus mínus pár stovek miliard v těchhle počtech nic neznamená), ale že ho Mark Zuckerberg stejně nechce prodat, a že cenu šroubuje výš a výš, až se dostává na částky, které nikdo nikdy nezaplatí, a o kterých ví, že jsou praštěné.

Víte, asi rozumím proč to dělá. Podle mě chápe, že je lepší nechat srdce v projektu, po kterém sice možná za pár let ani pes neštěkne, ale bude to všechno jen a jen jeho zásluha, než se stát korporátním droidem a vidět, jak jiní lidé z jeho úžasného projektu dělají projekt, po kterém za pár let ani pes neštěkne. Web 2.0 se, stejně jako rock, hraje koulema, a ty má Zuckerberg jak dva kokosové ořechy.

A proto ho také chce, podle mého, koupit Microsoft. Microsoft (resp. Bill Gates) měl taky koule až ke kolenům -- jak jinak by z podniku o dvou lidech živořících někde v motelu v Albuquerque vybudoval největší softwarovou firmu na světě -- ale jak už to tak bývá, v současné době, byť má nejlepší lidi na vývoj software na světě, patří přesně k tomu druhu nudných popíkářů, které sice celý den posloucháte v rádiu, ale právě proto je upřímně nenávidíte.

Jenže aby si Microsoft koupil Facebook, to je jako by si Rolling Stones chtěli koupit nějakou garážovou kapelu s tááákovýmle drive, a mysleli si, že když je zavřou do kumbálu vedle studia, že něco z jejich šťávy přejde na ně.

Takže. Chtěl jsem říct asi toto: Software sice není rock, ale zatraceně, někdy to tak skoro vypadá.

neděle, listopadu 18, 2007

Závist

Jelikož se mně z Idle Words nějak divně načítá feed do čtečky, ušel mi tenhle naprosto úžasný text: The Alameda-Weehawken Burrito Tunnel.

Hned jsem si vzpomněl, jak jsme na AmberZine provedli operaci ETHER a na Juana Valdeze, který se, podle mého, díky tomu, že jsme tehdy spěchali, abychom stihli 1. duben, stal promarněnou šancí (Solid Oil Support rocks!).

Taky jsem si vzpomněl, jak moc nesnáším dementní Apríly na serverech lokálních i globálních, v tisku i televizi. V drtivé většině případů jim totiž, naprosto chybí styl a především erudice. Jistě, občas se najde výjimka, ale je jich tak málo, že kdyby bylo po mém, každý, kdo se dopustí aprílového žertu, by měl být exemplárně potrestán.

Nicméně, co jsem chtěl říct: Maciej Ceglowski umí skvěle psát, stačí si přečíst pár textů z jeho stránky a je vám to jasné (třeba ten o malování na střeše a domácím s historkou o stavění Twin Towers). Proto mě neudivuje, že se mu povedlo napsat tak brilantní text, u kterého si zhruba do poloviny říkáte, sakra, že by mě něco uteklo?, a od poloviny: Bože, ten člověk je génius! Spíš mě mrzí, že něčeho podobného nejsem schopen sám.

Kdysi jsem tu psal něco v tom smyslu, že humor toho pána, který si říká Ostravak je mi protivný. Erudovaný humor stylu Ceglowskeho je mi naopak milý. A tak -- proč to nepřiznat -- závidím Ceglowskemu jeho talent na psaní Perlovských knihoven a malování zátiší a schopnost plodit tak zábavné texty.

Acho jo.

úterý, listopadu 13, 2007

Asi se rozpláču...

Někde jsem teď četl, že roční síťové jízdenky v Praze podraží skoro k šesti tisícům. Jak dojemné. Osobně platím za síťovou jízdenku 1177Kč. Měsíčně. Ach, ach.

sobota, listopadu 10, 2007

Další štace

Vymyslel jsem ultimativní odpověď na pitomou otázku "Jaké jsou vaše negativní vlastnosti?", kterou vám dneska dozajista položí každý uvědomělý personalista. Moje dlouho promýšlená odpověď zní: "Někdy jsem netrpělivý, když někomu něco už podesáté vysvětluji, a on to stále nechápe. Zvláště, když potřebuji pracovat na nějakém složitějším problému. Nejspíš je to nějaký můj nedostatek v komunikaci, že věci občas nedokáži vysvětlit dost jasně, ale je to prostě tak." Pokud tuto odpověď použijete, ve třech větách o sobě řeknete že: 1) když můžete, snažíte se pomoct, ale všechno má své meze, 2) zvláště když jednáte s blbci, které (jako ostatně nikdo) nemáte rádi, 3) jste odhodláni usilovně pracovat 4) na složitých projektech (takže se neulejváte, ale makáte), 5) sebekriticky si uvědomujete, že i blbci mají právo na to, aby jim byly věci vysvětleny, 6) rádi byste rozvíjeli své komunikační dovednosti. Čili, zcela podle principů double-thinku, na otázku ohledně svých nedostatků vyjmenujete své přednosti. (Druhá nejpitomější ejč-ár otázka zní "Kde sám sebe vidíte za tři roky?", na kterou jsem u pohovoru popravdě odpověděl: "Do 40 chci být rentiérem a zakládat start-upy." Bylo to trochu na hraně, ale ten zmatený pohled slečny personalistky vážně stál za to...)

Čili ano, pochopili jste to správně, opět jsem změnil zaměstnání. Došel jsem k nezvratném závěru, že můj život je příliš krátký na to, abych ho trávil v zaměstnaní, o jehož smyslu mám pochybnosti. Takže jsem obeslal několik málo firem, nu a od prvního listopadu pracuji v jiném městě, s jinými lidmi, a jiném projektu. Zatím mám z té změny dobrý pocit, i když tedy musím říct, že tohle byl nejdrsnější první týden v práci, který mě zatím postihl.

Však víte, obvyklý scénář je zhruba takovýto: nastoupíte, první týden až dva se školíte, pak se měsíc zaučujete, pak vás pozvolna pustí k nějaké opravdové práci, načež přibližně po třech měsících naběhnete do režimu plné vytíženosti.

Tedy takhle to u mě zatím vždycky probíhalo. Až do pondělku.

To jsem po dvou dnech obecných HR školení přišel na pracoviště. Zatímco další nováčci odkráčeli v dál, já jsem hned nafasoval počítač, stůl a funkci "project leadera". Než jsem rozchodil Outlook, a vyjasnil si s IT oddělením počty shodných souhlásek na různých místech mého příjmení (což se neobešlo bez dvoufázové změny přihlašovacího jména a e-mailu), už jsem dostal k ruce jednoho programátora a jednoho tesťáka, že se o ně mám jako postarat. Uh. Následovalo šílené úterý, kdy jsem naprosto zmateně proklikával QA instrukce na intranetu, rozesílal zoufalé e-maily a obtěžoval svého manažera. Nakonec se ukázalo, že na projektu, ke kterému jsem byl přidělen pracuji podle Microsoft Projectu už týden, a že bych už měl mít hotové tři nebo čtyři design dokumenty, ke kterým jsem zatím nesehnal ani šablony. Uh, uh. Ve středu jsem obdržel jednu PowerPointovou prezentaci a funkci scrum mastera, a ve volných chvílích mezi odesíláním e-mailů naskicoval nějaké use cases. Uh, uh, uh. Ve čtvrtek se situace docela uklidnila: stačilo vyhandlovat vložení projektu do billingového systému a zjistit jak se objednávají zasedačky (to jsem v některých předchozích zaměstnáních nikdy nepotřeboval), aby bylo kde pořádat daily scrum meetings. Uh, uh, uh, uh. Pátek proběhl v přátelském duchu, a podařilo se mi vyhotovit nějaké dokumenty k architektuře a pár interfaců tříd. Uh, uh, uh, uh, uh.

Víte, já si nestěžuji. Sice jsem myslel, že situaci, kdy se Outlook stane mým hlavním pracovním nástrojem se ještě pár let vyhnu, ale v zásadě dělám co jsem chtěl. Jen mě zaskočila rychlost, s jakou na mě tyhle věci napadaly. Myslel jsem si, že budu podroben prověrce jako prostý progiš na nějakém méně významném projektu a pak, postupně, se propracuji až k pozici, na které bych mohl něco opravdu posrat.

Že se tak nestalo, mě přivedlo k myšlence, že v dnešní zoufalé situaci, kdy je vážný problém sehnat někoho kvalifikovaného, se v personální politice spíše než na skutečné zásluhy a zkušenosti, dá na jakýsi efemérní příslib věcí budoucích. Lidé se dnes nenajímají na základě technologií které ovládají, ale podle toho, zda vypadají, že to, co by měli dělat, zvládnou ovládnout v rozumném čase, protože lidé, kteří to opravdu dovedou, jsou už dávno rozebráni.

Ze tří zaměstnání kterými jsem zatím prošel (z toho byl jeden interní přestup), jsem v tomto poprvé dostal u pohovoru nějaké znalostní otázky (v podobě jednoduchého testu na C++, kde nejsložitější úlohou bylo vyřešit jednu protivnou rekurzi a určit jak se zpracovávají virtuální metody), a ani u těch nevadilo, když jsem řekl: "Nevím, s touhle technologií jsem nikdy nedělal." Prostě: zatím vždy stačilo, abych zapůsobil neodolatelnou silou svého nadměrně vyvinutého charisma, a už to bylo...

Což ovšem vede k otázce, proč jsou inzeráty hledající programátory, naplněny všemi těmi pitomými zkratkami a názvy technologií, když nakonec firma najme někoho, kdo sice neví co ty zkratky znamenají, ale kdo vypadá, že se to rychle naučí? Proč popravdě neříkají: "Jsme zoufalí, hledáme kohokoliv, kdo není úplný idiot, a bude s to naučit se to, co potřebujeme do dvou měsíců. Zaplatíme vám kolik chcete."?

Myslím, že takové opatření by prudce zvýšilo procento úspěšných aplikantů. I když: možná se pletu -- nakonec, co já vím o HR?

pondělí, října 22, 2007

Zprávy z (RSS) fronty

Dobrá, dobrá, Fake Steve Jobs přestal být zábavný a začal být prudivý. Potkala ho stejná pohroma jako Roberta Scobla: Už ho nečtu.

Ale chtěl jsem tu zalinkovat moji novou dlouhodobou lásku: xkcd.

Původně jsem chtěl sestavit z těch stripů nějaký mimořádně legrační post, ale když ono je tak těžké vybrat ty nejlepší, když nejlepší je skoro každý. Dopřejte si čas, a pročtěte si je všechny. Nebudete litovat.