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

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.

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.

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.

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.

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.

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.

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

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.

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.

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

