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í

Zakázka chrání zadavatele

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í.

Průběžné vedení chrání výsledek

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í.

1
Záměr a příprava zadání

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
2
Zadávací řízení

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ů
3
Vstupní analýza a specifikace

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
4
Realizace po etapách

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ů
5
Akceptační řízení

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
6
Předání do provozu

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
7
Záruka a změnová řízení

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ě
Od záměru k webu, který uvidí veřejnost
17 až 28 měsíců
Součet dolních a horních mezí fází. Práce na webu z toho tvoří zhruba polovinu, zbytek je příprava, soutěž, schvalování a přejímka. Je to odhad běžného průběhu, ne měření konkrétní zakázky.

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é.

1
Otevřít data a zjistit, co v nich je

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
2
Postavit nejmenší použitelnou verzi

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
3
Nasadit a ukázat lidem

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
4
Oponovat vlastní návrh

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
5
Přepsat, co neobstálo

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
Od začátku k webu, který uvidí veřejnost
první den
První verze šla ven v den, kdy projekt začal, a od té doby se mění dál. Za to nemůže rychlost psaní. Nasazení prostě nečeká na přejímku.

4.Osm otázek, ve kterých se to liší

OtázkaZakázkaZa pochodu
Kdy se rozhodne, co web bude umětna začátku, v zadání a specifikaciprů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 zavinilpřepíše se, protože přepis stojí hodiny
Podle čeho se pozná, že je hotovoshoda se schválenou specifikacíweb je nasazený a lidé ho používají
Kdy výsledek poprvé uvidí veřejnostpo přejímce, tedy zhruba po roce a půlprvní den
Kdo nese riziko, že výsledek nikdo nepoužijezadavatel, tedy veřejné penízeautor
Kdo kontroluje kvalituakceptační komise nezávislá na dodavateliautor sám, což je největší slabina tohoto postupu
Co po projektu zůstane doložitelnéhosmlouva, specifikace, akceptační protokolyveřejný kód, rozbory se zamítnutými variantami, changelog
Co se stane, když člověk odejdedodavatel nahradí člověka, smlouva platí dálprojekt 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ě.

Zakázka se hodí, když
  • 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.
Průběžné vedení se hodí, když
  • 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.