Přeskočit na obsah

Blog · Srpen 2026

Appka se v sobotu rozbila. Místo slíbeného dílu ukazuju, co se dělo dál.

  • Jakub Liška · Srpen 2026

Slíbil jsem, že druhý díl bude o rozdílu mezi webem, aplikací a softwarem. Ten díl pořád přijde.

Slíbil jsem, že druhý díl bude o rozdílu mezi webem, aplikací a softwarem. Ten díl pořád přijde. Jenže o víkendu 1. a 2. srpna se v appce Ptáček našla chyba, a ten slíbený rozdíl se místo v tabulce odehrál naživo.

Ukázat ho na skutečné chybě je poctivější, než ho vysvětlovat na příkladech z hlavy. Takže se pořadí mění.

Je v tom i druhý důvod. Chci, aby bylo vidět, jak vývoj s AI doopravdy vypadá. Ne jen hotové demo na konci, ale i chvíle, kdy se to rozbije, kdy se hledá příčina a kdy se dvakrát vrátíte o krok zpátky, než to zafunguje. Vibe coding se prodává jako kouzlo. Ve skutečnosti je to řemeslo s chybami, které se řeší.

Co se rozbilo: appka mlčela místo chybové hlášky

Co se rozbilo a proč je ticho horší než pád

Ptáček se každých pět minut ptal systémového kalendáře, jestli se něco nechystá. Problém byl v tom, jak se ptal. Na každý dotaz si otevřel nové spojení a to staré nezavřel. Po zhruba čtyřech hodinách běhu mu macOS další spojení odmítl dát.

Kdo chybu našel: pohled na problém s dotazy na kalendář

Horší byla druhá půlka chyby. Appka místo chybové hlášky dostala prázdnou odpověď a vyhodnotila si ji jako platnou. Žádné kalendáře, žádné schůzky. Smazala i přelety, které už měla naplánované. V nastavení přitom svítilo zeleně, že přístup ke kalendáři funguje.

U appky, která má přeletět obrazovku pár minut před schůzkou, je tohle obzvlášť nepříjemné. Člověk se na ni spolehne a přestane si kalendář hlídat sám. Když pak mlčí, místo aby řekla nevím, je horší, než kdyby vůbec nebyla.

U připomínkovací appky není nejhorší chyba pád. Nejhorší je ticho.

Architektura appky, ve které chyba vznikla

Kdo to našel: dva audity a jedna korekce

Na příčinu jsem nasadil dva nezávislé audity. Dva různé modely, každý se svým zadáním, oba se čtecím přístupem ke kódu i k běžící appce. Navzájem o sobě nevěděly.

První našel příčinu přímo v kódu: tři místa, kde se otevírá nové spojení místo znovupoužití starého. Rovnou zakázal řešení typu „zvedneme limit spojení", protože by stejný problém jenom oddálilo.

Mapa víkendu, ve kterém se chyba hledala a opravovala

Druhý to potvrdil vlastním nálezem z logu a v jednom bodě první opravil.

Pointa, kterou si z toho beru: jeden audit vám dá nepotvrzený závěr. Dva nezávislé audity dají shodu na příčině a k tomu jednu korekci, na kterou by první sám nepřišel.

Chybu při tom nikdy nepotkal žádný uživatel. Zachytil ji náš testovací proces v sobotu večer, ne někdo cizí v pondělí ráno.

Čísla z víkendu: kolik chyb se našlo a opravilo

Co se opravilo: architektura, ne záplata

Oprava neznamenala „zvedneme limit" ani „přidáme opakování dotazu". Změnilo se, jak appka s kalendářem mluví.

Jedno spojení na celý běh appky místo nového při každém dotazu. Chyba už nikdy nevypadá jako prázdno. Když appka neví, řekne nevím a nechá platit poslední potvrzený plán, místo aby si prázdno přeložila jako „žádné schůzky". Reakce na změnu schůzky do vteřiny místo až pěti minut.

Je v tom rozdíl mezi „už to nesvítí červeně" a „už se to neděje". To druhé znamená pochopit, proč se to dělo, a přepsat tu část, ne ji zakrýt.

Verdikt nezávislé kontroly

Mapa víkendu: vývoj není přímka

Zpětně to vypadá jako čistá historka. Chyba, dva audity, oprava, hotovo. Ve skutečnosti to takhle rovně neběželo. Za víkend je to devatenáct milníků, tři chyby cestou a tři návraty o krok zpátky, kdy se rozjetý pokus zahodil a začínalo se z posledního funkčního stavu.

Tohle demo videa nikdy neukážou.

Bezpečnost appky, kterou demo videa nikdy neukážou

Nezávislá kontrola a čísla: ze 7,5 na 9,2

Po opravě přišla druhá vlna kontroly, nezávislá i na obou předchozích auditech.

Deset milionů simulovaných kalendářových kroků bez porušení jediného pravidla. Milion operací s jediným živým spojením. Přesně to, co v pátek chybělo. Padesát devět testů přímo v kódu a k tomu šedesát sedm testů vlastní QA laboratoře. Čtyřicet ručně navržených scénářů v osmi kategoriích.

Ověřeno člověkem: simulované kroky bez porušení jediného pravidla

Ta laboratoř umí poznat i podstrčenou vadnou verzi. Dostane schválně rozbitý model a musí sama zařvat NO GO. Kdyby nezařvala, je k ničemu. Testy, které nikdy nic nenajdou, jsou dekorace, ne kontrola.

Osmdesát na dvacet a tři dny

Appku z osmdesáti procent stavěla AI, ze zbylých dvaceti ji řídil a kontroloval člověk. Zadání, rozhodnutí o riziku a poslední slovo měl vždycky člověk. Bez té kontroly by víkend dopadl jinak, protože audit, který sám nikdy neřekne NO GO, je k ničemu.

Pointa není, že chyby zmizí. Zkracuje se doba mezi tím, kdy chyba vznikne, a tím, kdy je opravená a doložená.

Závěr: zkracuje se doba mezi vznikem chyby a jejím odhalením

Proč se tohle stane i Applu

Knihovna od Applu, kterou Ptáček používá pro čtení kalendáře, se použila jinak, než jak ji Apple zamýšlel. Dokumentace to říká jednou větou schovanou v tisíci stránkách.

Stává se to i Applu a Googlu, firmám s dekádami procesů za sebou. Rozdíl není v tom, jestli k chybě dojde, ale jak rychle ji najdete a opravíte.

Dodavatel: tři otázky, které mu stojí za to položit

Tři otázky na každého dodavatele

Kolik testů běželo a co v nich selhalo? Když vám někdo řekne, že nikdy nic neselhalo, netestovalo se.

Co běží dál? Kdo nemá mapu dalšího testování, ten ji nedělal.

Jakou to má škálu? Web, aplikace a napojení na dvacet let starý firemní systém jsou tři různé ligy. Riziko roste stejně jako cena.

Forma promptu je dokonalá vždycky. Substance ne.

Technologie nestačí: AI je turbo, ne autopilot

AI je turbo, ne autopilot. A turbo bez řidiče skončí v příkopu stejně rychle, jako do něj vjede.

Článek původně vyšel na LinkedInu. Původní článek na LinkedInu

Začněte tady

Úvodních 15 minut stačí, abyste věděli, jestli to má smysl.

Řeknete, co vás pálí. My řekneme, jestli na to máme, kolik to zhruba stojí a kde bych na vašem místě začal. Bez prezentace.

Adresa
Legerova 1820/39, Praha 2

Kalendář provozuje Cal.com (třetí strana), načte se až po kliknutí.