Rozhovor: Nezkrocení vývojáři a kovbojové

Kovbojové – programátoři, podivný živočišný druh, který se při práci neřídí vůbec ničím. Poslouchali jsme, jak si dva z nich povídají a kovbojsky vznikl i tento (ne)rozhovor.

Diskuze kovbojských programátorů vyšla v příloze Connect časopisu Computer 2/12.

Vedle dokonale organizovaného vývoje ve velkých firmách existuje i zóna polodivokých vývojářů, kteří se při práci neřídí vůbec ničím. Jejich přístup má i název – kovbojské programování. A kovbojsky vznikl také tenhle rozhovor. Položil jsem diktafon na stůl v kavárně a nechal dva špičkové nekonvenční programátory diskutovat o své práci.

 

Kdo je OD a JA?

Ondřej Dúbravčík – Tvorbou webu se zabývá od roku 1999. Má rád Apple a steaky. Pátým rokem tvoří weby a vymýšlí nové směry ve firmě X Production.

JA – Sedm let webový vývojář (PHP + JavaScript) na volné noze. Má jeden certifikát, žádnou vizitku a ani jeden buzzword.

 

Rozhovor byl tak otevřený, že jeden z nich raději zůstal v anonymitě, aby ještě někdy dostal práci.

Kovboj netestuje

C (Connect): Co je vlastně kovbojské programování?

JA: Kovbojský styl programování podle mě znamená, že si volíš všechny technologie sám, netestuješ, střílíš to na první dobrou tak, aby všechno fungovalo. Neřešíš, jestlis naprogramoval nejlepší web, chceš to rychle poslat dál. Testování neřeším – u malých projektů je to v pohodě. Jasně, u těch velkých se to vymstí. Samozřejmě je mi jasný, že testování není jenom nějaká onanie. Když ho děláš dobře, tak pomáhá – třeba když se k projektu za půl roku vrátíš.

OD: A má podle tebe smysl testování u malých frem nebo freelancerů?

JA: Záleží na tom, jaký máš projekty. Samozřejmě pokud stavíš malej nebo střední web na Drupalu, tak to v životě neotestuješ. A kdyby jo, strávíš psaním testů stokrát víc času než samotnými úpravami. Ale když děláš systém, co chceš rozvíjet do budoucna, a vykašleš se na testy, tak to pak odneseš ty. Můžeš se tomu chvíli smát – polámalo se to, no nevadí – ale brzo si začneš nadávat.

OD: Takže netestuješ.

JA: Netestuju, na to nemám čas. Ono je ještě docela v pohodě, když jseš kovbojskej programátor. Horší je, když jsi kovbojskej programátor, a navrch línej. Pořád chodíš po
kavárnách, kde předstíráš práci, tak to pak doháníš po nocích. Pak jsou tři ráno, chceš
jít spát a přitom víš, že tě ještě čeká dlouhá diskuze se spolubydlícím a panákování.
Potřebuješ to rychle dodělat. Tak to nějak zpytlíkuješ a doufáš, že to bude fungovat. Testování je to poslední, co bys chtěl dělat.

OD: Tahle debata je trochu jako ten okamžik, když odděláš velkej kámen a všichni ti červíčci a broučci se rozprchnou. Pod tímhle jsou programátoři.

Kovboj nemá problémy

JA: Možná spíš než kovboj jsem hobbybastler – lepič kódu. Izolepa to vždycky nějak vyřeší… Jako ten rozhodovací graf: hýbe se to? Ano, nebo ne? Má se to hýbat? Ne: použij ducktape. Tak nějak to u mě funguje, většinu úkolů nakonec dodělávám těsně před termínem, když už vyčerpám všechny výmluvy – nepřišel mi váš mail, zapomněl jsem na to. Standardní postup: ve čtvrtek je termín, takže ve čtvrtek ještě nic nenapíšu, v pátek klientovi vysvětlím, že jsem na to zapomněl, o víkendu nikdo nečeká odpověď, takže to pošlu v pondělí. Získal jsem krásný čtyři dny.

C: Máš nějaký další výmluvy? Originální?

JA: Těch je… Na tohle originální být nepotřebuješ, to je plýtvání kreativitou.

OD: Jdeme vlastně v té nejlepší tradici Přemka Podlahy – domácí kutil, ze kterého se na starý kolena stane profesionál. Nebo to nevyjde a nadosmrti děláš plašiče špačků z PET lahví.

JA: Jo, přesně. Výhybkáře na horské dráze.

C: Jsou z takového hobbybastlení průšvihy?

JA: Nejsou. Všichni si sice myslí, že to je průšvih, ale nic z toho ve skutečnosti průšvih není. Když v tom chodíš dýl, máš výhodu: poznáš, co si jenom myslí, že musí být, a co opravdu musí být. Na to, o čem si jenom myslí, že musí být, se můžeš klidně vykašlat a posunout termín třeba o týden. Vztekají se, ale nic se nestane. Navíc jako kovboj nemáš s nikým smlouvu, takže za nic nedostaneš penále. Ani pevný termíny nejsou.

OD: Jak kde. Ve firmě – i když malé – to samozřejmě nesmí být úplně punk. Určitě je u nás menší anarchie v tom, že musíš chodit na schůzky, že musíš dodržovat nějaký termíny, a co se řekne, to platí.

JA: Já mám taky termíny! Ale je to jako se slibem – termínem nezarmoutíš. A taky chodím na schůzky. To je na tom nejzábavnější: slibujou se termíny, staví se plány. U kafe jim naslibuješ zámek a ve tři ráno stlučeš kůlničku. Nikdy to nepoznají. Úplně nejlepší je, když děláš věci zadarmo, tam na tebe není žádná páka. Tam se dá vymlouvat nejlíp. Nemusíš vlastně dělat vůbec nic, jenom čerpáš dobrou karmu.

Kovboj vám můžete přejet děti

OD: Fakt netestuješ? Vůbec nic?

JA: Jenom když dělám úpravu, ze které bych se pominul. Tam si napíšu test na současný stav. Dělal jsem to jednou v životě.

OD: U nás by komplexní testování nikdo nezaplatil.

JA: Ale vždyť si ho můžeš započíst do vývojářskýho času. Nenapíšeš, že vývoj bude trvat 15 hodin, ale rovnou 20 hodin. Neříkáš klientovi, že platí 5 hodin testu, kterej by mu přišel jako zbytečná práce. Nesmíš se o tom s nimi bavit, řekni „bude to stát 20 hodin práce“ a zdarec.

OD: Naceňování je vůbec pěkný téma. Třeba zákaznický servis. Nedokážou pochopit, že když je to servis, tak za něj musí platit.

JA: Stejně tak se tváří dost divně, když jim naúčtuješ cestu na schůzku. Naúčtoval jsem teď třeba klientovi hodinu práce za pracovní oběd. Kdyby mě aspoň pozvali, tak ji tam možná nedám, ale protože jsem si ho musel platit sám, naúčtoval jsem si to. Občas je lepší být transparentní, raději jim napíšu hodinovou schůzku, než abych to schovával do programování. Je to fér, hlavně ale klient ví, že když se bude vykecávat dvě hodiny, bude to dražší.

OD: Mně taky přijde fér to rozepsat. Tady byla schůzka, tady nějaká kreativa, vymysleli jsme vám celý koncept, zaplatili jsme za to tolik a tolik, každá část je to pod jinou sazbou. Třeba accounting je levnější než vývoj. Jenže když to takhle pěkně rozepíšeš, mají s tím pak větší problém…

JA: …zatímco když jim dáš nějaký magický číslo, dost velkou sumu – třeba 40 hodin vývoje – tak prostě neví, neověří to.

OD: Ale budou se s tebou hádat o dvou hodinách na obědě.

JA: S tímhle problém nemám, protože kdyby se někdo tvářil, že má problém, vykašlu se na něj.

OD: Máš prostě lepší vyjednávací možnosti, protože jedeš na sebe a nejseš na něm závislej. My musíme naplnit nějakej měsíční budget, takže máme složitější vyjednávací pozici.

JA: Díky tomu můžu mít i transparentnější ceny. Řeknu jim pevnou částku, domluvíme se na hodinové sazbě a oni vědí, že v tom neplatí nájem kanceláře a další tři lidi, že jsem v tom jenom já. Nemám pak s klienty problém, nikdy se mi třeba nestalo, aby mi nezaplatili fakturu. Ale možná je to tím, že ví – nebo rychle zjistí – že bych jim to celý smazal.

OD: To je problém. Když ti třeba půlku zaplatí, nemůžeš to přece celý smazat.

JA: Můžu.

OD: Nemůžeš. Pokud ti část zaplatili, tak nemůžeš.

JA: Já vím, že bych neměl, ale když chci, tak můžu.

OD: A když jejich děti vylezou před školu, můžeš je přejet autem.

Kovboj je na tom líp než copywriter

JA: Autem je nepřejedu, ale můžu jim na web třeba vrazit nějaký vyskakovací okno, že jsou neplatiči. Nikdy se mi to naštěstí nestalo, nikdy jsem to nemusel řešit. Pracuju s lidma, kterým důvěřuju. A kromě nějakýho týdenního zpoždění jsem tenhle typ problémů neměl, nezkoušeli na mě ani výmluvy, jako „poslali jsme to včera“. Protože vidí práci. Je to jiný, než když třeba někomu píšeš blog. Když potom chceš zaplatit, půlka klientů řekne, že by si to napsali sami, a nic nepošle.

OD: Podle mě je i tahle práce hrozně virtuální.

JA: To si nemyslím. Vidí web a neumí si představit, jak by to sami udělali.

OD: To je pravda, ale stejně vždycky raději zaplatí stoly do kanceláře než web.

JA: Pořád má web mnohem lepší pozici než třeba text. Rozumí, za co platí mně, ale mnohem hůř chápou, co je copywriter. Prostě proč by měli za stránku textu zaplatit tolik peněz. Navíc to ani není hustě popsaná dvoustrana textu. Naopak – odrážky, vytučnění, krátký věty… A najednou, když vidí, jak je to jednoduchý, si říkají „ježišmarja, to bychom si napsali sami“. Potom se vykašlou na copywritera a začnou si to psát sami.  Výsledek je většinou příšernej.

C: Řeší se to s nimi snadněji z pozice firmy, než když jseš na volné noze?

OD: Ne.

JA: Když jsem sám, tak si můžu vybírat lidi, se kterýma spolupracuju. Nemusím naplňovat budget, abych pokryl nájem kanceláře nebo obchodníky, takže nemusím brát všecko. Mám mnohem menší náklady, takže pokud mám pravidelný přísun nějaké rozumné práce, můžu si to ostatní líp vybírat. Můžeme se rozejít hned na začátku. Dáme si jednu schůzku, kam přinesu nacenění. Když se jim to nelíbí, ještě jednou jim to vysvětlím; pokud se jim to znovu nelíbí, řeknu jim nazdar. Zatím jsem to nikdy neudělal, trošku mě to mrzí, byl bych víc cool a měl pocit, že jsem drsňák. Stejně jako chci někdy nakopnout malýho psa.

Kovboj na jednání vzbuzuje strach

OD: Další problém. Vytvoříš aplikaci pro iPhone nebo Android a Apple nebo Google se rozhodne, že ji neschválí, jen tak. Jak to řešit?

JA: Pláčem.

C: Co teď: vysvětluje se to klientovi snadněji, když jsi firma?

OD: Vůbec.

JA: Výhodu jako vývojář máš ale v tom, že aspoň dostaneš zaplaceno, firma to vezme na sebe a rozpustí to jako ztrátu. Kdežto kdyby se to stalo mně, jsem v háji.

OD: Ano, když přijde čtyřicetiletej nebo padesátiletej kravaťák na jednání, je to něco jinýho, než když přijde tady medvídek.

JA: Ale já jsem na jednání důstojnej. Ze mě jde strach.

OD: Blesky z očí.

Kovboj není gay

C: Dá se srovnat kovbojský styl a vývoj třeba v Seznamu?

JA: Jak se vyvíjí v Seznamu? To je gay. Ekvivalenty pro kovbojský programování jsou „zastarale“ a „amatérsky“. Ale nadšeně a srdíčkem.

OD: Punkově a líně je to určitě lepší než všechny agilní metody, scrum a tak. Byls někdy v nějaké firmě, kde bylo standardní vývojaření?

JA: Co to znamená?

OD: Třeba ten Seznam. Agilní metody. Přes agilní metody vlastně směřujou k tomu, aby se vývojáři chovali jako freelanceři.

JA: Když máš agilní metodiku, znamená to jenom, že jseš samostatnej, nepotřebuješ vodit na záchod. Začnou tím, že z tebe udělají coding monkey – opičku, která tam něco klepe – a postupně přidávají buzzwordy. Těma říkají, že jsi samostatnej jako jednotka, že nad tím víc přemýšlíš. Když toho pak dosáhneš, tak velkolepě vynesou sadu asi patnácti buzzwordů. Agilní metodika se spíš týká plánování – neřídíš se vodopádem, vývoj je rozdělenej na malý kousky a podobně.

OD: Agilní metody ale stejně směřujou k tomu, aby ses jako jednotlivec byl schopnej domluvit s klientem, abys byl samostatná výkonná jednotka.

JA: To je jenom část. Hlavní je, aby byl projekt rozdělenej na malý jednotky, který můžou dělat jednotlivý lidi. To je to podstatný, protože pak to můžeš hodit na nějakýho Inda.

Diskuze (17) Další článek: Megaupload přežije další dva týdny

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,