Státní správa už by se konečně měla na hodinové sazby vykašlat

Zhruba 7 let se potkávám se státními institucemi. Nejen jako zástupce dodavatele, 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ě víc než přežitkem. Proč si to myslím, se pokusím vysvětlit v tomto článku. Následující text je určen zejména pro lidi, kteří mají na starosti výběrová řízení na IT řešení v libovolné státní instituci. Čtenářům z řad dodavatelů IT řešení bych doporučil … asi raději odejít nebo číst jen na vlastní riziko.

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 instituce si chce vysoutěžit IT dodavatele, přičemž jedním z hlavních kritérií dá cenu odvozenou od hodinové sazby. resp. hodinovou sazbu jako takovou.

Definice hodinové sazby

Kdybychom se chtěli opřít o poučky z papírových knih (ty elektronické už vidí o něco dál), 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 jen 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 (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 mj. 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 pošetilý 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, jakou máte cenu jedné hodiny 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 nekousne.

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 možná 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 dodavatel 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í.

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 natáhne nebo smrkne na začátku spolupráce se zákazníem dle potřeby, později se mu to jistě vrátí. To už guma prostě dělá. Jenom pozor! Když se to s natažením přežene (nebo je dotlačen zákazníkem až moc), může ta guma někomu vystřelit oko.

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

Výběrové řízení č. 1: Pojďme hacknout vzoreček

Jedna hypotetická státní instituce vypsala výběrové řízení s těmito hodnotícími kritériemi:

  1. Cena za 1 hodinu programování (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 stejného 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že? Co se to stalo? Proč je tam ta 1 koruna? A co ty reakční doby? No to bude drahý! Není to překlep? Není. Doplním jednotlivé body o úvahy 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 (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á jako č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!

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, předali 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ěmi hodnotami se podařílo poslat ten vzoreček do kolen. A 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í. 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, ale vy jakožto zadavatel jste v … Prostě přeji hodně štěstí. 🙂

Poznámka k 1 Kč: Pro zvídavé čtenáře doplním ještě jedno bonusové úskalí tohoto úskalí. Určitě namítnete, že kdyby místo 1 Kč byla nabídnuta kulatá 0 Kč, tak to bude ještě lepší. Nebude. Pokud dáte do ceny 0 Kč, pak to bude zadavatel hodnotit jako „prázdnou hodnotu“, ted nevyplněnou částku, za což vás z výběrka vyřadí.

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

Když se oprostíme od předchozího případu, který je extrémní, tak tu mám ještě jeden příklad. Též z reálného světa.

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 hodně těžko se to řeší (vizte dále).

Jenže i zde se objeví někdo z dodavatelů, kdo si přečte tento článek na Workhacking.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 či z Pomlčky 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 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), takže 1 hodina programátora znamená ještě navíc 1/2 hod tohoto SQM.
  • 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.
  • Využíváme 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é! Ale 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?)
  • 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 opilý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 že to zvládne 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, který nařizuje, jak se má státní instituce chovat, neuděláte nic. Pro instituci, která se podle zákona o zadávání veřejných zakázek musí chovat, zde mám nevyžádanou sadu dobrých doporučení. Jsem si vědom, že ty jednotlivé body není jednoduché splnit, stojí to úsilí, ale jde to a vyplatí se to.

Patero dobrého výběrového ří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, 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í.
  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í a přesně popsané činnosti, která bude srovnatelná pro všechny. Nesmí se jednat o standardní modul jakéhokoliv systému, ale 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ě alespoň stovek tisíc či 1 milionu 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í 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 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 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 když to je už po stoprvé omletí téhož, každý při tom pokyvuje, přesto se to dodržuje jen zřídka. Třeba tento text přispěje k tomu, že se přestane jen pokyvovat a začne se 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.

One Response to “Státní správa už by se konečně měla na hodinové sazby vykašlat”
  1. Johny Insider 28.2.2017

Leave a Reply