Jak najít dobrého programátora?

MyEgo.cz

home foto blogy mywindows.cz kontakt

Jak najít dobrého programátora?

Počítače 05.12.10

Úvod

Před mnoha lety za mnou přišel jeden podnikatel s tím, že si chce koupit redakční systém přibližně za 300.000,- Kč, který má různé moduly a možnosti. Tak mu povídám, že do měsíce je možné redakční systém naprogramovat, moc tomu sice nevěřil, ale přesvědčil jsem ho tím, že jsem mu slíbil rozpočet 50.000,- Kč.

Ze všeho nejdříve jsem vymyslel způsob, jakým bude redakční systém fungovat a navrhl jeho architekturu. Ta počítala s tím, že do systému budou mít přístup externí redaktoři a jejich články budou procházet schvalováním. Dokonce to bylo vymyšleno tak, že každý redaktor se mohl přihlásit a sledovat své honoráře za články, status schválení apod. Jenalo se o funcionalitu, kterou nemá žádný z dnešních redakčních systémů, ale pro provoz serveru byla nezbytná.

Najímání programátorů

Projekt jsem rozložil do několika částí a rozhodl se přijmout programátory. Měl jsem původní analýzu, a tak bylo relativně jasné co je potřeba naprogramovat. Protože rozpočet byl relativně malý, rozhodli jsme se inzerovat na jobs.cz - sekce brigády a najmout brigádníky na dohodu o provedení práce.

Na pohovor jsem pozval v rozmezí 30 minut všechny co se přihlásili - přihlásilo se asi 10 lidí. S čtením jejich životopisů jsem se vůbec neobtěžoval, a když přišli, ukázal jsem jim analýzu a povídám "do kdy to zvládnete, a kolik za to chcete?". Každý z nich řekl nějakou částku, obvykle v řádu tisícikorun (jednalo se o jednoduché a malé části projektu).

Na pohovor dorazil jeden velmi profesionální programátor, který nám ukazoval své ukázky prací, a pro nás byl doslova favoritem - jenže požadoval zálohu na práci, jež jsme mu nakonec i dali. A také na pohovor dorazil jeden ignorant, jež se dostavil o 30 minut později s tím, že to nemůže najít. Tento ignorant už při pohledu na životopis, který vypadal jak kdyby ho psalo pětileté zfetované dítě od nás chtěl zakázku. Vzhledem k pozdnímu večeru nám ovšem zbývala poslední část projektu, absolutní drobnost tak na den práce za asi 2.000,- Kč. Tak jsem mu jí dal a jel domů.

Vyhazování programátorů

Po týdnu jsem čekal výsledky nějaké práce, tak jsem zavolal nejlepšímu programátorovi, který nám ukazoval bájné ukázky svých vynikajících zdrojových kódů a svého bájného frameworku co má. Po vymáhání práce se ukázalo, že pracoval za naše peníze především na svém bájném frameworku, který sice byl vynikající, ale pro nás absolutně bezcenný.

Po dvou týdnech bájný programátor nic nedodával, a tak mu povídám, zda-li to myslí vážně. Ne, on měl ještě tu drzost požadovat další zálohu na dílo, přičemž bylo jasné, že spolupráce s ním vůbec nikam nevede. Docela mě to mrzelo, neboť jsme do něj zpočátku vkládali velké naděje.

Další programátoři, když viděli nutnost něco naprogramovat buďto zdrhli dokuď to šlo, nebo se také neustále vymlouvali, že nestíhají. V duchu jsem si říkal, že ten projekt snad nakonec budu muset naprogramovat sám.

Den ignoranta

To co mě ovšem překvapilo, byl nejvíc ignorant, jehož CV vypadalo jak kdyby ho psalo pětileté dítě, a který se dostavil o půl hodiny později. Nejenomže svojí práci na den - na kterou jsem mu dal týden, za dva dny odevzdal, ale kvalita práce byla taktéž velmi vysoká. Tak jsme mu přidávali další práci, a další práci až najednou za dva týdny po večerech vše naprogramoval do čista sám. Jeho výsledky odpovídaly tak práci 10 průměrných programátorů, můžu vám říci, že jsem opravdu koukal a dlouho tomu nechtěl věřit. Dokonce jsme mu spočítali hodinovou mzdu na 1.000 Kč / hod, ano tolik si vydělal. Jenomže ostatní programátoři měli při stejném zadání a stejné odměně za práci, výdělek sotva 50 Kč / hod. On prostě věc, kterou by normální člověk dělal týden, programoval dvě tři hodinky.

Pan podnikatel a jeho mzdy

Jenomže mzda 1.000 Kč / hod se nepozdávala podnikateli, který práci zadal, i když jí měl hotovou. Tak si řekl, že si daného programátora bude managovat sám, šel s ním do kanceláře, byl s ním když celou věc programoval a zaplatil mu jen 200 Kč / hod, sice pravda hned a hotově, ale i tak. Jakmile byla odbourána silná složka motivace (pracovat na úkolu a dokončit ho co nejdřív = vydělat co nejvíce), tak to všechno přestalo fungovat a programátor zdrhnul.

Ponaučení

Když dostanete něco dobrého, tak si toho važte. Stejně tak se dá mluvit o tom, že když dostanete dobrého programátora, musíte si ho opravdu hýčkat, možná i nadměrnými financemi, ale tak to prostě je. Pracoval jsem v jedné programátorské společnosti, kdy se výsledek práce 10 lidí rovnal přesně jednomu opravdu schopnému programátorovi, a co si myslíte, že se vám vyplatí více, platit 10 lidí průměrně nebo jednoho královsky?

Také při najímání lidí si uvědomte, že dobří programátoři občas postrádají prezentační dovednosti - prostě se neumí prodat. Je na vás, abyste je nezkoušeli jako ve škole, ale dali jim třeba menší projekt (samozřejmě zaplacený!), a podle toho rozpoznali jejich schopnosti. Věřte tomu nebo ne, ten kdo na to nemá, vám zdrhne rychleji než si myslíte, a peníze za projekt hodí za hlavu.

Poslední rada na závěr - přestaňte se sakra už vozit po nesmyslných CVčkách a klást absolutně stupidní HR otázky typu:"Ve vašem životopise nemáte příliš mnoho praxe, myslíte si, že tento projekt zvládnete?". Otázka totiž je, zda-li je vůbec nějaká praxe potřeba, protože náš vyjímečný programátor také neměl skoro žádnou, ale měl vůli to naprogramovat - protože jednoduše potřeboval fakt peníze (jak prosté, že?).

O autorovi

Autor píše blog markoniuss.blogspot.com, kde se o něm můžete dozvědět veškeré informace


Komentáře

  1. 1 Štěpán Pazderka 05.12.10, 08:12:35
    FB

    Můžu vědět v čem to bylo psané?

  2. 2 Petr Novotný 06.12.10, 11:12:17
    FB

    Bylo to psané v PHP a Smarty

  3. 3 Tomáš Herceg 07.12.10, 11:12:27
    FB

    Takhle to teda rozhodně nefunguje, to je spíš náhoda, i když přes jobs.cz jsem lidi nikdy nehledal.

    9 z 10 lidí v průběhu uteče a zůstane člověk, který neumí udělat ani CV? To je dost smutné. Nezavání to ale špatným managementem toho projektu? Neselhala komunikace? Ono dát lidem, které vidíte prvně, úkol se slovy "za 14 dní to odevzdáte", nestačí - musíte s nimi průběžně komunikovat (co 2 dny je otravovat, ptát se, jak na tom jsou, atd.). Necháte-li je víc než týden, většina na to kašle.
    A přeplatit programátory (1000 Kč na hodinu za bastlení v PHP) mi taky nepřijde úplně ideální, chvíli to třeba funguje, ale typicky těm lidem velmi rychle dojde, že vás můžou pěkně ždímat a hranice, co je tolerovatelné a co už ne, se hledá velmi těžko. Takže dva měsíce vás de facto okrádají, protože dělají 10 minut a napíšou si 2 hodiny, pak trochu přestřelí a vy je vyrazíte. Fakticky udělali 10 hodin, zaplatil jste jim 50 a můžete hledat nové.
    Nevím, jaké projekty děláte a jakou kvalitu požadujete (podle ceny bych tipoval spíš žádnou, ale neznám přesný rozsah projektu), jenže praxe u přijímání nových lidí je potřeba. Pokud děláte na koleně nějaké malé projektíky, tak se to nějak dá nabastlit i studentíky bez praxe, ale u čehokoliv rozumného takovíhle bastliči spíš přidělávají práci ostatním.

    Ze zkušenosti bývá při pohovorech nejlepší mít něco takového:
    - CV (musí být na úrovni, nejde ani tak o obsah, ten se většinou stejně nedá ověřit, ale spíš o formu - pokud to vypadá jak od 5letého děcka, neberu, ten člověk nebude umět pořádně psát komentáře ani dokumentaci)
    - trocha teorie (na papíře je napsáno asi 30 pojmů a oťukávám, jestli ví, o co jde)
    - praxe (nějaká aplikace, kterou bych napsal za 20 minut, oni na to mají 4 hodiny; hodnotit komplexně všechno - objektový návrh, testovatelnost, funkčnost, komentáře, přehlednost kódu, čistotu a eleganci řešení, kolik toho stihli; sledovat i způsob jejich práce, může leccos napovědět)
    - prezentace a komunikace (při práci v týmu velmi důležitá, nechám je odprezentovat nějaký jejich projekt)
    - googlení (položit pár otázek a ať to vygooglí, rychle najít správné informace je klíčové)
    - pokes (5 minut si s každým poklábosit - zájmy, škola, politika, názory, obecný přehled atd.; po 3 větách poznáte temperament toho člověka, zjistíte, jestli bude ochotný, initiativní, spolehlivý atd.; musí se to trochu umět)
    Pak až se diskutuje o hodinové sazbě, není problém dát někomu víc peněz, když na to má znalosti. Dá to samozřejmě hodně práce a zabere to hodně času, na druhou s tím, kdo projde, typicky spolupracujete několik měsíců až let.

    Ale stejně protože málokdy najdu člověka, který umí tolik, kolik bych potřeboval, prvních pár týdnů a měsíců je třeba stejně pro nováčky dělat školení a doučit je to, co je potřeba.

  4. 4 Petr Novotný 09.12.10, 09:12:44
    FB

    [3] Nejde o žádné bastlení v PHP, ale o psaní kódu v PHP. Ano, to co hodně lidí v PHP předvádí je bastlení, ale málokdo, opravdu málokdo umí v PHP i solidně programovat - náš programátor zrovna žádný bastlíř nebyl, naopak jeho kód byl silně objektový a oddělený šablonovacím systémem a silně modulární. To byly požadavky projektu, kterým prostě většina "rádoby" programátorů neuměla vyhovět.

    Krom toho nás žádný programátor neokrádal, časy jsem odhadoval já a sazba byla 200 Kč / hod, nicméně programátor to prostě napsal rychleji. Kolik hodin na tom pracoval mi bylo jedno, dostal zaplaceno za úkol, nikoliv za hodinu.

    Co se týká kvality projektu, ano lze to udělat i za 300.000 Kč, lze to naprogramovat i za 2.000.000 Kč. Ale ruku na srdce, kdo by nevzal něco funkčního za 50.000 Kč s tím, že to třeba jednou bude muset celé přepsat. To je prostá ekonomika, kterou si hodně lidí z IT neuvědomuje.

    Paradoxně mi vytýkáte, že přeplácím programátory a hned o několik řádků níže píšete "podle ceny nepožadujete žádnou kvalitu".

    Krom toho, kdybychom se rozhodovali podle těch vašich CV, prvních dojmů atd... tak jsme vybrali toho nejmíň schopného programátora - o tom je celý ten článek.

  5. 5 Michal Koreš 26.01.14, 10:01:26
    FB

    Zajímavý článek. Myslím že tady v ČR to ještě není tak pochopené, ale já jsem se dostal k práci v Německu (skrz http://itprace-nemecko.cz/ - ale to je vedlejší) a tam to přesně dělají takhle, jak píšeš. Tzn. platí královsky, ale mnohem menší počet lidí a určitě je to ve finále pro obě strany lepší

Nový komentář