O projektu / Jak vznikal
Jak projekt vznikal
Co by se stalo, kdyby tenhle web zadalo ministerstvo? Zadání, soutěž, specifikace, realizace, přejímka. Standardní postup veřejné správy, kterým u nás vzniká skoro každý státní web. Já šel jinudy: o tom, co web bude umět, jsem rozhodoval průběžně a podle toho, co se zrovna našlo ve zdrojových datech.
Tahle stránka nestaví jeden postup proti druhému jako dobrý proti špatnému. Staví je vedle sebe, protože každý chrání před jiným rizikem a za tu ochranu platí jinou cenu. Kdo si má vybrat, potřebuje vědět kterou.
1.Proti čemu se který postup chrání
Ministerstvo utrácí veřejné peníze a musí doložit, že dostalo, co objednalo. Proto se zadání zafixuje na začátku a přejímka hlídá shodu s ním. Bez toho by nešlo poznat dodavatele, který dodal, od toho, který nedodal. Dává to smysl.
Cena té ochrany: zadání vzniká dřív, než kdokoli otevřel zdrojová data. Co se zjistí později, je změna zadání.
Když oprava chybného rozhodnutí stojí hodiny, vyplatí se opravit i to, co by se jinak obhajovalo do konce projektu. Zadání se smí měnit, protože změna nikoho nestojí smluvní spor.
Cena té ochrany: nikdo nezávislý nekontroluje, že autor rozhodl správně. Schvaluje si sám.
2.Cesta první: zakázka pro ministerstvo
Sedm fází, kterými v té či oné podobě projde každá veřejná zakázka na informační systém. Pořadí je závazné a fáze nejdou přeskočit: každá se opírá o schválený výstup té předchozí.
Ministerstvo popíše, co má web umět, komu slouží a z jakých peněz se zaplatí. Součástí bývá průzkum trhu, tedy dotaz dodavatelům, kolik by to asi stálo.
- Rozhoduje:
- zadavatel
- Výstup:
- schválený záměr a odhad ceny
- Trvá:
- 2 až 4 měsíce
Zakázka se vypíše, dodavatelé podávají nabídky, komise je hodnotí. Námitka neúspěšného uchazeče může řízení zdržet o měsíce, v krajním případě zrušit.
- Rozhoduje:
- hodnoticí komise podle předem daných kritérií
- Výstup:
- podepsaná smlouva o dílo
- Trvá:
- 3 až 6 měsíců
Dodavatel rozepíše, co přesně postaví: obrazovky, datové vazby, ukazatele. Zadavatel to schválí. Od té chvíle je specifikace měřítkem, podle kterého se dílo přebírá.
- Rozhoduje:
- zadavatel schválením dokumentu
- Výstup:
- detailní specifikace díla
- Trvá:
- 2 až 3 měsíce
Vlastní stavba webu podle schválené specifikace, obvykle rozdělená na dílčí plnění s vlastními termíny a fakturami.
- Rozhoduje:
- dodavatel v mezích specifikace
- Výstup:
- dílčí plnění k převzetí
- Trvá:
- 8 až 12 měsíců
Zadavatel ověří, že dílo odpovídá specifikaci. Zkouší se shoda se zadáním. Jestli je web pro rodiče k něčemu dobrý, se v téhle fázi neřeší. Vady se sepíšou a dodavatel je odstraní.
- Rozhoduje:
- zadavatel podpisem akceptačního protokolu
- Výstup:
- protokol o převzetí
- Trvá:
- 1 až 2 měsíce
Nasazení, předání zdrojového kódu a provozní dokumentace, zaškolení správců. Teprve tady web poprvé uvidí veřejnost.
- Rozhoduje:
- zadavatel
- Výstup:
- web v provozu
- Trvá:
- 1 měsíc
Opravy vad ze záruky jsou zdarma. Všechno ostatní, včetně věcí, které se ukázaly až provozem, je změna zadání: nová objednávka, nová cena, nové schvalování.
- Rozhoduje:
- zadavatel objednávkou, dodavatel cenou
- Výstup:
- dodatky ke smlouvě
- Trvá:
- průběžně
3.Cesta druhá: rozhodování za pochodu
Tady jde o smyčku. Každá funkce projde těmito pěti kroky zvlášť a projde jimi znovu, když se ukáže, že napoprvé stála na špatném předpokladu. Právě to opakování je na celém postupu podstatné.
Nejdřív se projdou zdrojové soubory sloupec po sloupci a sepíše se, na jakou otázku rodiče by každý z nich šel použít. Teprve pak se rozhoduje, co web ukáže.
- Rozhoduje:
- zdrojová data
- Výstup:
- soupis toho, co je k dispozici
- Trvá:
- hodiny
Místo specifikace vznikne rovnou stránka, na kterou se dá kliknout. Zahodit ji vyjde levněji než ji popsat.
- Rozhoduje:
- autor
- Výstup:
- funkční stránka
- Trvá:
- hodiny až dny
Web jde na veřejnou adresu hned, žádná přejímka se nekoná. Zpětná vazba chodí neformálně a průběžně od pedagogů, rodičů a lidí kolem projektu. Stálá skupina to není a zápisy z jednání nikdo nevede.
- Rozhoduje:
- autor po konzultaci
- Výstup:
- nasazená změna a reakce na ni
- Trvá:
- tentýž den
U každého ukazatele se sepíše, co tvrdí a čím se to dokládá. Co se nedá doložit, na web nesmí. Tohle je krok, kde se nejčastěji zjistí, že předchozí rozhodnutí bylo špatné.
- Rozhoduje:
- doklad
- Výstup:
- rozbor se zamítnutými variantami
- Trvá:
- hodiny
Chybný ukazatel se smaže a spočítá znovu. Žádné změnové řízení. Oprava stojí hodiny, takže se opraví i to, co by se jinak obhajovalo do konce projektu.
- Rozhoduje:
- autor
- Výstup:
- oprava a záznam, proč k ní došlo
- Trvá:
- hodiny
4.Osm otázek, ve kterých se to liší
| Otázka | Zakázka | Za pochodu |
|---|---|---|
| Kdy se rozhodne, co web bude umět | na začátku, v zadání a specifikaci | průběžně, podle toho, co se najde ve zdrojových datech |
| Co se stane, když se zadání ukáže jako špatné | změnové řízení: nová cena, nové schvalování, spor o to, kdo to zavinil | přepíše se, protože přepis stojí hodiny |
| Podle čeho se pozná, že je hotovo | shoda se schválenou specifikací | web je nasazený a lidé ho používají |
| Kdy výsledek poprvé uvidí veřejnost | po přejímce, tedy zhruba po roce a půl | první den |
| Kdo nese riziko, že výsledek nikdo nepoužije | zadavatel, tedy veřejné peníze | autor |
| Kdo kontroluje kvalitu | akceptační komise nezávislá na dodavateli | autor sám, což je největší slabina tohoto postupu |
| Co po projektu zůstane doložitelného | smlouva, specifikace, akceptační protokoly | veřejný kód, rozbory se zamítnutými variantami, changelog |
| Co se stane, když člověk odejde | dodavatel nahradí člověka, smlouva platí dál | projekt se zastaví |
Poslední dva řádky se v podobných srovnáních obvykle vynechávají. Nezávislá kontrola a odolnost proti odchodu člověka jsou skutečné přednosti zakázkového modelu. Formality navíc to nejsou.
5.Pět případů, kdy se rozhodnutí ukázalo jako špatné
Tohle je jádro celého rozdílu. Ve všech pěti případech jsem až po rozhodnutí zjistil, že stálo na špatném předpokladu. Všechny jsou doložené v repozitáři, včetně toho, co jsem zamítl a proč.
Návrh stránky školy vznikl z toho, co web už zobrazoval, místo ze zdrojových souborů. Tři užitečné údaje proto ležely nepoužité v souborech, které byly celou dobu otevřené; jeden z nich byl dokonce už spočítaný.
V zakázce: Specifikace by je nezmínila, protože by vznikla stejným způsobem. Doplnit je později znamená změnové řízení.
docs/zdroje-dat.md
Sedmistupňová škála obtížnosti přijetí se zamítla měřením: shodně zařadila jen 36,3 % oborů proti 52,8 % u pětistupňové.
V zakázce: Počet stupňů by stál ve specifikaci. Měření, které ho vyvrátí, nikdo neobjedná.
changelog 2.12.0
Rozlišení dobíhajících oborů přes hrubý klíč mělo doloženou 100% chybovost, všech 29 zásahů bylo falešných. Funkce se postavila jinak.
V zakázce: Funkce by prošla přejímkou, protože specifikaci by odpovídala. Že ukazuje nesmysl, by se zjistilo až od rodičů.
changelog 2.12.0
Čtrnáct nabídek sdílelo jednu adresu a jedna z nich ukazovala čísla té druhé. Vyšlo to najevo z kontroly nad celým katalogem, ne z hlášení uživatele.
V zakázce: Vada v záruce, pokud se prokáže. Spor o to, zda šlo o vadu díla, nebo o chybu v datech dodaných zadavatelem.
changelog 2.13.0
Mapa mezi kódem oboru a skupinou maturitních oborů byla vedená jako chybějící zdroj, který je potřeba dohledat. Přitom ji zdrojový soubor nesl u každé nabídky.
V zakázce: Dohledání chybějícího zdroje by bylo položkou rozpočtu. Zjištění, že chybějící nebyl, by cenu nesnížilo.
changelog 2.14.0
Zakázkový model by tenhle web nepostavil špatně. Postavil by ho podle zadání, které vzniklo dřív, než kdokoli otevřel zdrojová data. A právě v těch datech se našla podstatná část toho, co web dnes umí.
6.Co to stojí
Odhad práce na webu je v manažerském shrnutí rozepsaný na bloky: 426 člověkodnů, tedy 3 408 hodin. To je ale jen fáze realizace. Zakázkový model k ní přidává přípravu zadání, soutěž, specifikaci, přejímku a předávací dokumentaci, což u díla této velikosti bývá zhruba čtvrtina až třetina rozpočtu navíc.
Pro řádovou představu, v jakém pásmu se takové smlouvy pohybují: registr smluv obsahuje 244 smluv veřejných institucí zařazených do informačních technologií se vztahem k portálům, informačním systémům a vzdělávání, v pásmu 3 mil. Kč až 40 mil. Kč, v celkové hodnotě 2 862,1 mil. Kč. Průměr vychází na 11,7 mil. Kč.
Je to hrubý filtr. Množina obsahuje vývoj, provoz i licence dohromady a klíčová slova nerozliší web od účetního systému. Co stojí postavit tenhle web, z ní nevyčtete. Říká jen, v jakém řádu se pohybují smlouvy, pod které by takové dílo spadlo. Data k 21. 9. 2026 z registru smluv přes Hlídač státu.
Proti tomu stojí zhruba 200 hodin mého času, ve kterých navíc vznikal i druhý projekt. Dělit jedno druhým a vydávat výsledek za míru úspory by bylo přehnané, protože porovnávám odhad s odhadem. Řádový rozdíl je ale příliš velký na to, aby ho vysvětlila nepřesnost obou čísel.
7.Pro co se který postup hodí
Znamená to snad, že má veřejná správa přestat soutěžit zakázky? Nic takového. Plyne z toho jen, kdy je který postup na místě.
- je předem jasné, co má systém dělat, protože to určuje zákon nebo vyhláška,
- dílo musí běžet i po odchodu kohokoli, kdo ho stavěl,
- je potřeba nezávislá kontrola, protože jde o veřejné peníze a odpovědnost,
- výsledek se bude provozovat léta a někdo za něj musí ručit.
- se teprve zjišťuje, co v datech je a co z nich jde říct,
- se dá nasazovat po částech a mýlka se opraví bez škody,
- má kdo rozhodovat rychle a nést za to odpovědnost,
- je přijatelné, že projekt stojí a padá s jedním člověkem.
Tenhle web je druhý případ. Kdyby ho měl převzít stát a provozovat jako veřejnou službu, potřeboval by ten první: někoho, kdo za něj ručí, a kontrolu nezávislou na jednom člověku. Odpověď na tuhle otázku tady nenajdete.
Co web umí, odkud bere data a co by stál jeho vývoj, je v manažerském shrnutí. Zdrojový kód a všechny rozbory jsou na GitHubu.