Jak na lepší výběrové řízení? Nenechte se opít hodinovou sazbou!

Čas čtení: 22 min.

V tomto článku vám ukážu, jak špatně přistupují zejména veřejné instituci k výběrovým řízením. Jak zastydly na začátku 2. tisíciletí a proč není vhodné se sveřepě držet kritérií založených na hodinové sazbě.

Deset let se potkávám se státními institucemi. V různých rolích. Nejen jako dodavatel, ale i jako konzultant, poradce a dokonce i jako zaměstnanec. A postupně docházím k přesvědčení, že hodinová sazba je ve státní správně přežitkem. Komerční sféra se s tím už nějak popasovala a umí s naceňováním IT služeb pracovat. Následující text je proto určen spíše pro ty, kteří mají na starosti výběrová řízení na IT řešení v libovolné státní instituci. Dokážu vám v něm, že se s hodinovými sazbami ve výběrových řízeních nakládá nesmyslně.

Poznámka na úvod. Pokud vám některé myšlenky i závěry učiněné níže, přijdou zjevné a triviální, pravděpodobně jste buď osvícení zástupci státní instituce (napište mi, chci vás poznat!!!), nebo jste dodavatelem.

Naše hřiště

V dalším textu budu předpokládat, že hřištěm, na kterém se budeme dále pohybovat, je vykolíkované následovně: na jedné straně stojí IT firma v roli dodavatele a na druhé straně je státní instituce. Jakákoliv instituce, která se musí řídit zákonem o zadávání veřejných zakázek. Tedy stručně řečeno, musí se řídit zejména tím, že hlavním kritériem pro výběr dodavatele je CENA díla nebo služby. A dílem nebo službou mám na mysli dodávku a následnou údržbu aplikace dodané z větší části na míru, ať už webové, mobilní, interní či externí.

A konečně. Tahle naše instituce si chce vysoutěžit IT dodavatele. Jedním z hlavních kritérií dá (musí dát) cenu.

Definice hodinové sazby

Kdybychom se chtěli opřít o poučky z papírových knih, budeme hodinovou sazbu definovat nejspíš jako cenu času jedné pracovní jednotky (člověka) firmy účtované zákazníkovi. Tato hodinová sazba se násobí počtem hodin strávených na daném projektu, k tomu se přidává třeba marže, nebo i další přísady – provize pro obchodníka, externí náklady nebo vata. Výsledkem je obvykle cena pro zákazníka (v našem případě tedy státní instituci).

V běžném komerčním řetězci dodavatel <-> zákazník je to pak celkem jednoduché. Zákazník si vybírá dodavatele kromě jiného i podle ceny jeho práce. Je to taky měřítko toho, kolik ho budou stát další práce při rozvoji díla, které si zadává. Samozřejme, že zákazník tuto cenu za 1 hodinu práce vždy posuzuje relativně k něčemu. K ceně práce ve své firmě, k ceně práce u jiného dodavatele, nebo si touto cenou vynásobí nějak odhadnutý (!) počet hodin na jeho projekt a dostane se na jakousi cenu, kterou zaplatí dodavateli za dodání díla.

Dělá to tak každý.  Ale .. ano, je to zavádějící a vlastně i zhovadilý přístup.

PS: Ve skutečnosti je (mělo by být) hlavním kritériem pro výběr dodavatele poměr ceny, kterou zákazník dodavateli zaplatí, a hodnoty, kterou mu za to dodavatel přinese. Prostě úžitek. Jenže tenhle užitek se nedá vyjádřit cenou za 1 hodinu práce.

Proč? Protože narazíte minimálně na dvě úskalí.

Úskalí č. 1 – řekněte mi vaší cenu za 1 hodinu práce

Tak tohle je jasné. Zkusme začít jednou nekorektní parafrází jedné slavné repliky z Pelíšků:

A: „Když před vás teď posadím dva úplně stejný programátory, se stejnými schopnostmi, znalostmi i zkušenostmi … A o jednom pak prohlásím, že je z Prahy a druhý že je z Frýdku-Místku. Který bude podle vás lepší?“

B: „No, přece ten z Prahy.“

Tak určitě. Pojďme si trochu započítat.

Mějme dva jednovaječné programátory, oba jsou schopní úplně stejně, mají stejné znalosti i stejnou kadenci úhozů do klávesnice. Programují prostě tak, že jednoho od druhého nerozeznáte. Jeden sedí v Praze, druhý ve Frýdku-Místku.

  1. Prago-programátor: Máme tu zkušeného programátora z Prahy, který bere třeba 60 000 Kč hrubého a je zaměstnancem. Přímé náklady firmy na takového člověka (tj. jen plat s odvody) je zhruba 80 000 Kč. Je-li schopen měsíčně odpracovat efektivně 130 hodin (proč ne 160 hodin je teď vedlejší). Prostým vydělením 80 000 / 130 se dostaneme 615 Kč za hodinuTo jsou přímé náklady na jednu hodinu jednoho člověka. Další náklady firmy (rozpočítané fixní) na tohoto člověka pro zjednodušení nezapočítávám.
  2. Frýdko-programátor: Ostravsko je kraj razovity, takže se tam na zaměstnanecké poměry nehraje. Programátor tedy svému chlebodárci svou práci fakturuje. Náklady na jednu člověko-hodinu programátora ve Frýdku jsou třeba 250 Kč / hod. Dobře, tak ať nežeru, v Místku to bude možná i 300 Kč / hod. To je cena, se kterou se potkáte i v Praze, tak snad mě nikdo nezakousne.

Teď kvízová otázka.

Jak firma docílí 50% úspory na ceně jedné hodiny práce? Ano! Přestěhuje sebe nebo toho programátora z Prahy do Frýdku, nebo Místku, nebo do té pomlčky mezi.

(Pozn.: Ve skutečnosti by si pražák hned po přestěhování do Frýdku řekl o stejný plat i když by se mu jistě snížily životní náklady a ten programátor s ostravska by si též v Praze řekl o stejnou odměnu za hodinu práce, kterou měl ve F-M. Proč tomu tak je, není teď podstatné, ale ve stručnosti za to může vlastnost našeho mozku zvaná cenová paměť.)

A teď vážně. Dobře, máme tu rozdíl v hodinových sazbách. Ale to není ten hlavní problém. Bavíme se jen o nákladu na jednu hodinu pracovníka ve firmě, nejedná se o cenu účtovanou klientovi. Zároveň je to úplné minimum toho, co může účtovat dodavatel zákazníkovi.

A ač příručky ekonomie radí, že je vhodné cenu pro zákazníka odvodit od nákladů, v reálném světě už tohle platit nemusí. Tím spíš, pokud se firma uchází o zakázku u státní instituce.

S hodinovou sazbou se dá totiž hezky kouzlit, ať firma sídlí úplně kdekoliv.

Úskalí č. 2 – hodina práce je gumová jednotka

Zde nadhodím jen pár tezí, které staví hodinovou sazbu do úplně jiného světla. Kdo s nimi nesouhlasí, ať hodí kamenem:

  • Když dva dělají totéž, není to totéž.
  • Jakmile zákazníka dodavatel naučí, že něco dělá 1 hodinu, těžko mu to později prodá jako činnost na 3, 5 či 10 hodin (a to i v případě, že v tom prvním případě opravdu jen podcenil odhad).
  • Rozdíl mezi junior-programátorem a senior-programátorem nemusí být jen dvojnásobný, může být i desetinásobný, či jakkoliv-násobný, jak uzná dodavatel za vhodné.
  • Zákazník většinou „dokáže“ odhadnout náročnost zadaného úkolu – „tohle přece nemůžete dělat 5 hodin, když já to naklikám v jiném systému za 15 minut, wtf„.
  • Zákazník ve skutečnosti nedokáže odhadnout náročnost zadaného úkolu, pokud nezná do detailu systém, kterého se daná činnost týká (v drtivé většině případů ho opravdu nezná).
  • Cena za 1 hodinu práce je závislá na složitosti systému či řešení, struktuře, architektuře, na kterém je tato hodina vynaložena.
  • Cena za 1 hodinu práce je závislá na tom, na kolik je zákazník schopen „přistoupit“ (podvědomě či vědomě maximalizuje užitek či hodotu).
  • Cena za 1 hodinu práce je zejména pro státní správu zcela zavádějící jednotkou. Přesto s tím mnoho (většina) státních institucí počítá.

Cena jedné hodiny práce je natahovací. Dodavatel si ji může přizpůsobit úplně jak chce, jak se momentálně hodí a kolik toho snese či kolik toho snese zákazník *). Jak ukážu na dvou příkladech dále. A jelikož je to guma, tak když ji dodavatel natáhne nebo smrkne ve své nabídce dle potřeby, později se mu to jistě vrátí. To už guma prostě dělá. Jenom pozor! Když se to s takovou gumou přežene, může někomu hodně ublížit.

*) Na samostatné téma někdy příště.

Výběrové řízení č. 1, aneb pojďme hacknout vzoreček

Jedna hypotetická státní instituce vypsala výběrové řízení.

Hodnotící kritéria výběrového řízení:

  1. Cena za 1 hodinu programování (váha 25 %) – hodnota A
  2. Cena za 1 hodinu údržby (25 %) – hodnota B
  3. Měsíční cena za servis a držení reakční doby (20 %) – hodnota C
  4. Reakční doba na kritické problémy (15 %) – hodnota D
  5. Reakční doba na nekritické požadavky (15 %) – hodnota E

Mezi těchto 5 kritérií byly nějak smysluplně rozloženy váhy podle důležitosti pro zadavatele (naznačeno v závorkách) se součtem 100 %.

Úvaha dodavatele, resp. uchazeče podávající nabídku ve výběrovém řízení, je následující: Máme základní hodinovou sazbu 1200,- Kč. Pro větší a/nebo dlouhodobější projekty 1000,- Kč / hod a ještě rozumné z hlediska finanční únosnosti je 900,- Kč / hod. Jít s cenou níž, už přestává mít ekonomický smysl.

Nejprve to pojďme hacknout a následně si řekneme, proč se dají tato hodnotící kritéria celkem jednoduše obelstít.

Hodnoty uvedené v nabídce uchazeče jsou:

  1. A = 899,- Kč / hod
  2. B = 1,- Kč / hod
  3. C = 19 000,- Kč / měsíc
  4. D = 15 minut
  5. E = 15 minut

Co se to tam stalo? Proč je tam ta 1 Kč? A co ty reakční doby? No to bude drahý! Není to překlep? Není. Tady je v bodech úvaha tohoto uchazeče:

  1. A – to je hodinová sazba, kterou budeme účtovat všechny naše práce, jsme s tímto číslem v pohodě (a ještě odečteme kačku, co kdyby někdo dal taky 900 a náhoda je blbec)
  2. B – hodinová sazba na práce, které prakticky neproběhnou nikdy, vše jsou přece programátorské zásahy
  3. C – to je paušál, který chceme účtovat (proč zrovna taková částka, není podstatné, ale též vychází z nějaké úvahy)
  4. D – běžně jsou tyto reakční doby v jednotkách hodin (1 až 4 hod, vyjímečně 8 hod) – my víme, že to zvládneme do čtvrthodiny (jak ukážu dále)
  5. E – běžně se dávají 1 až 3 pracovní dny, do kdy je vhodné na běžné poždavky reagovat – leč my to zvládneme opět do 15 minut (ukážu dále)

Odbočka k té reakční době:

To je další hack. Reakční doba je v tomto konkrétním příkladě v zadávačce definovaná takto:

Reakční doba je čas mezi zadáním požadavku do helpdesk systému a reakcí na tento požadavek s potvrzením o zahájení řešení požadavku.

Na tohle pozor. Často se pojem „reakční doba“ popisuje odlišně a každý si může tento pojem vykládat jinak! Navíc může být místem, do kterého lze pak jednoduše „hodit vidle“. Čtete dále…

A jelikož je dodavatel šikovný, naprogramuje si skript (spouštěný každých 5 minut), který sleduje helpdesk systém (dodavatelův, či zákazníkův) a pokud tento robot identifikuje nový požadavek, vytvoří automatickou odpověď typu: „Děkujeme za zadání požadavku, zahájili jsme k řešení…„, přepne stav úkolu do požadovaného stavu atd. Ti kreativnější si vytvoří 100 různých hlášek, aby to vypadalo, že odpovídá člověk a vyřízeno. Reakce provedena, reakční doba formálně splněna!

Takže když se podíváme na ta čísla ještě jednou a srovnáme s běžnou praxí, tak to bude vypadat takto:

  1. A – 899 Kč (konkurence má rozptyl obvykle mezi 600,- až 1200,- Kč)
  2. B – 1 Kč (konkurence opět 600,- až 1200,- Kč)
  3. C – 19 000 Kč (rozptyl u konkurence může být větší, dejme tomu 9 000,- až 35 000,- Kč)
  4. D – 15 minut (rozptyl u konkurence 1 až 8 hodin)
  5. E – 15 minut (rozptyl u konkurence 24 až 72 hodin)

Co udělají s výsledkem výpočtu hodnotících kritérií, kde se násobí váhy s hodnotami, dvě či tři extrémně nízké hodnoty? Pošlou výsledek razantně jedním směrem.

A proto jsou hodnoty B, D a E v nabídce extrémně nízké. Těmito hodnotami se podařilo poslat ten vzoreček do kolen =>  ergo výběrko má dodavatel v kapse.

Na rovinu. Tímto hackem se nám podařilo vyzrát vyhrát  na několik výběrových řízení. Nepošitelné je, že ne všechny za to ale nakonec stály. (!) Tím se nechci vytahovat, jen poukázat na nesmyslnost stavby výběrových řízení pouze na ceně. Je to jen hra s čísly a se vzorečky v excelu.

Disclaimer: Úskalí tohoto úskalí spočívá v tom, že když podobnou věc udělá víc dodavatelů, je celé výběrko většinou v … pořádku, kritéria jsou splněna a i při napadení na neobvykle nízkou cenu se to dá odpružit (jak uvedu dále). Ale vy jakožto zadavatel jste v … Prostě přeji hodně štěstí. 🙂

Výběrové řízení č. 2: Jedna hodina jsou dvě

Pojďme se posunout od předchozího nepatrně extrémního příkladu (sic ze života) ještě k jednomu výběrku. Též z reálného života.

V tomto výběrovém řízení už jsou kromě čistě ekonomických kritérií, použita i kritéria subjektivní, mířící k posouzení kvality nabízeného řešení.

Výběrové řízení bylo postaveno s následujícími hodnotícími kritérii:

  1. Cena za 1 hodinu programování
  2. Měsíční cena (paušál) za servis, podporu a reakční dobu
  3. Kvalita návrhu řešení jednoho modulu systému
  4. Kvalita dodaného systému – podmínkou bylo, že uchazeč musí umožnit přístup k demu jeho systému

Vidíte? Zde už se počítá i s kvalitou. Celkem na cenu (1. + 2. bod) padlo 60 % váhy a na kvalitu zbylých 40 %. Což je fajn, protože do hry už nevstupuje jen (hacknutelný) vzoreček, ale taky kvalita (o tom, že je to zase jen „kvalita“ v uvozovkách někdy příště).

Všechno je tedy v pořádku. Objetivně – zadavatel to ani moc jinak postavit nemůže. Vlastně může, ale nebudeme to teď komplikovat.

Jenže i zde se objeví někdo z dodavatelů, kdo si přečte tento článek na Workhacker.cz, ztotožní se s bonmoty výše a řekne si:

Nikdo nám nedokáže, jak dlouho jsme na tom či onom dělali, dáme poloviční hodinovou sazbu než máme obvykle a bude vymalováno.

Je to sice variace na „1 Kč / hod“ jako v prvním výběrovém řízení, ale s podobným důsledkem. Pravděpodobně nikdo další z konkurence nebude mít koule (nebo důvtip) to takto udělat taky.

Zde upozorňuju, že tento případ nemusí být pokus o hacknutí, protože postačí, když se přihlásí firma zmíněná na začátku z Frýdku, nebo Místku a prostě dá svou sazbu. I když … no, pojďme raději dál.

Dá-li dodavatel podezřele nízkou cenu za 1 hodinu své práce se záměrem následně nafukovat počet hodin strávených s realizací jednotlivých požadavků, bude pravděpodobně zadavatel namítat, že odhad na realizaci požadavku je na víc hodin, než si představuje. Jenže …

Na to vám na místě vymyslím spoustu různých vysvětlení, které se budou zadavateli těžko rozporovat. Tak například:

  • Na projektu pracují junioři, kteří jsou sice méně efektivní, ale za to levnější.
  • Víte, nemůžete přece odhadnout pracnost tohoto požadavku, když neznáte náš systém.
  • My do hodinové sazby nezapočítáváme Service Quality Managera (ať už to znamená cokoliv) či Company Happiness Managera (ať už to znamená cokoliv), takže 1 hodina programátora znamená ještě navíc 1/2 hod tohoto SQM či CHM.
  • Používáme paralelní programování, které zvyšuje kvalitu řešení – tj. na jednom požadavku pracují vždy minimálně dva programátoři (junior se seniorem) … zde významně mrkám levým okem.
  • Provozujeme vícekolové testování … zde vyznamně mrkám i pravým okem.

Podstatné je, že zadavatel v drtivé většině případů nemá šanci to porovnat s něčím jiným, protože:

  • Jiný dodavatel? Používá jiný systém => nesrovnatelé.
  • Vlastní úsudek zadavatele? Hmm … nechci se nikoho dotknout …
  • Zkušenosti z podobného projektu stejného dodavatele? Tady už přihořívá, ale taky těžko srovnatelné.
  • Každý požadavek je v podstatě unikátní.

Jediné, co má zadavatel v ruce, je důvěra v dodavatele a vlastní úsudek. Ano, není to málo. Ale s pojmy jako důvěra, úsudek nebo efektivita se ve výběrových řízeních ve státní správně moc pracovat nedá.

Dobře, ale co s tím, když vám do toho výběrka konkurence prostě hodí vidle? Nic. Tedy, něco ano, ale … obvykle to nevede k ničemu jinému, než jen ke ztrátě času.

Aby to bylo opravdu autentické, tak vám sem dám screen odpovědi zadavatele na námitky jednoho z neúspěšných uchazečů o skutečnou zakázku. Námitka se týkala toho, že vítězný uchazeč dal neobvykle nízkou hodinovou sazbu. Doporučuji pro studijní účely přečíst opravdu celý text, nejen vyznačené partie.

Bez jakékoliv ironie – je to hodně dobře napsané! A zcela to vystihuje podstatu toho, o čem tu mluvím.

Pro ty línější:

  • Zadavatel: „Cena 350,- Kč / hod bez DPH za programátorské práce Firmy s.r.o. není mimořádně nízká. Shodla se na tom komise a je to v souladu se zákonem.“ (Pozn.: A zdravý rozum říká co? Hmm?)
  • Zafavatel: „Dodavatel předem nacení požadavky a my jsme schopni jím navrženou časovou náročnost posoudit.“ (Pozn.: V souladu se zákonem vždy! Ale těch opíjecích rohlíků, co na to padne!)

Celý text zde:


Všimněte si poměrně důsledné snahy o přesnou, věcnou a nenapadnutelnou argumentaci. Je to neprůstřelné. Hodinová sazba je daná a zadavatel, i kdyby mu to přišlo podezřelé, neudělá nic. Jak by to asi schytal, kdyby napsal: „Tenhle dodavatel se nám nejvíc líbí, při osobním jednání byl nejdůvěryhodnější, má skvělé reference, předložil jasné záruky o proveditelnosti a jeho systém plně vyhovuje našim potřebám. A jako bonus, jeho cena je nejpříznivější„. My však víme, že takto státní správa nefunguje a fungovat nebude (možná i bohudík).

Ještě jednou opakuji – toto všechno nemusí znamenat apriory průser pro jednu nebo druhou stranu. Ale víte, co říká Murphy?

Když se může něco posrat, tak se to také posere. 😉

A rada zdarma místo závěru

Se zákonem o zadávání veřejných zakázek neuděláte nic. Pro instituci, která se podle tohoto zákona musí chovat, zde mám nevyžádanou sadu dobrých doporučení. Jsem si vědom toho, že ty jednotlivé body není jednoduché splnit a stojí to hodně úsilí. Ale jde to a vyplatí se to.

5 rad k dobrému výběrovému řízení

  1. Vytvořte co nejpřesnější zadání – čím podrobnější bude, tím relevantnější nabídky získáte. Dejte si s tím práci. Požádejte někoho o pomoc. Čas strávený s popisem zadání (případně cena za takovou dodávku) vám ušetří hodně peněz a nervů v budoucnu.
  2. Nečekejte, až vám bude téct do bot. Pokud vám za měsíc končí předchozí kontrakt se stávajícím dodavatelem, už je pozdě. Raději udělejte nějaké přechodné období s předešlým dodavatelem, než abyste ušili nové výběrko horkou jehlou.
    Prosím přečtěte si tento bod ještě jednou.
    Důsledkem toho, že se vyhlašují zcestná výběrová řízení s drahými dodávkami, je časová tíseň zadavatele. Často za zdržení nemůže IT oddělení, ale právníci, nadřízení, auditoři, či bezpečáci. Ale zodpovědnost většinou nese IT oddělení. A víme, že IT oddělení je často tím otloukánkem, který to posr…nestihl.
  3. Omezte očekávané parametry (max. / min. reakční dobu apod.) – tím jednak nastavíte správná očekávání (např. nechcete reakci delší než 24 hodin apod.) a jednak minimalizujete nabídky s vidlemi.
  4. Místo hodinové sazby (resp. jako doplnění s ne nevýznamnou váhou) doplňte kritéria k nacenění konkrétní, PŘESNĚ a do puntíku popsané činnosti, která bude srovnatelná pro všechny. Nesmí se jednat o standardní modul jakéhokoliv systému, ale o něco opravdu na míru, co budou muset vytvořit a nacenit všichni prakticky od nuly. Dostanete tím mj. zajímavý ethalon pro ostatní činnosti.
    Pokud namítnete, že tento bod je přece celé to výběrové řízení, tak na to odpovídám: ukažte mi jedno zadání pro výběr jakéhokoliv systému (aplikace) v hodnotě minimálně stovek tisíc či jednotek milionů Kč, které je popsané naprosto neprůstřelně a s nulovou mírou nejistoty pro budoucího dodatavetele. Nemluvíme tu o dodávkách na krabicové produkty typu antiviry. Rozumíme si?
  5. Pozor na kvalitativní kritéria. Na jedné straně představují kvalitativní kritéria alespoň základní šanci poznat dodavatele a jeho schopnosti, ale zároveň vás mohou zavést na zcestí. Potěmkin by o tom mohl napsat knihu. Kromě toho, jedná se prakticky ve všech případech o subjektivní posouzení něčeho, co je zjevné jen na povrchu (třeba hojně užívané „zpřístupněte nám demo vašeho redakčního systému„) a co je většinou méně důležité, než to, co vidět není.Pokuste si i k subjektivním kritériím stanovit nějaké objektivní měřítko. Hezký barevný systém, který se líbí všem, je fajn. Ale pokud každé kliknutí znamená několika-vteřinové čekání, dost to otráví práci vašich kolegů, pro které ten systém třeba vybíráte. Nebo, zajímá-li vás UI, můžete předložené demo systému nechat posoudit přímo uživatelům, kteří s ním budou následujících 5 let denně pracovat. Udělejte scénáře, otestuje si to, nechte si to obodovat. Možností je hodně. A tohle opět souvisí s kvalitním zadáním (bod 1). Navíc vás pak nikdo nebude popotahovat za to, že jste někomu ty body za subjektivní kritéria namazali.

Samozřejmě, že to není nic nového pod sluncem. Ale i když to je už po stoprvé omletí téhož, každý při tom pokyvuje, přesto se to dodržuje jen zřídka. Teď tedy přestaňte jen pokyvovat a začněte něco dělat.

A to je vše.

Pokud s něčím nesouhlasíte, znáte nějaký „dobrý příklad zadavatele, který to dělá jinak“, nebo dokonce pokud to umíte změnit, napište mi to do komentářů, prosím.

Děkuji za pozornost i vaše názory.

6 komentářů to “Jak na lepší výběrové řízení? Nenechte se opít hodinovou sazbou!”
  1. Johny Insider 28.2.2017
  2. Pupik 13.4.2017
  3. Pupik 13.4.2017
  4. a8n 22.4.2017

Leave a Reply