Sľúbil som, že druhý diel bude o rozdiele medzi webom, aplikáciou a softvérom. Ten diel stále príde.
Sľúbil som, že druhý diel bude o rozdiele medzi webom, aplikáciou a softvérom. Ten diel stále príde. Lenže cez víkend 1. a 2. augusta sa v appke Ptáček našla chyba, a ten sľúbený rozdiel sa namiesto v tabuľke odohral naživo.
Ukázať ho na skutočnej chybe je úprimnejšie, než ho vysvetľovať na príkladoch z hlavy. Takže sa poradie mení.
Je v tom aj druhý dôvod. Chcem, aby bolo vidieť, ako vývoj s AI naozaj vyzerá. Nie len hotové demo na konci, ale aj chvíle, keď sa to rozbije, keď sa hľadá príčina a keď sa dvakrát vrátite o krok späť, kým to zafunguje. Vibe coding sa predáva ako kúzlo. V skutočnosti je to remeslo s chybami, ktoré sa riešia.

Čo sa rozbilo a prečo je ticho horšie než pád
Ptáček sa každých päť minút pýtal systémového kalendára, či sa niečo nechystá. Problém bol v tom, ako sa pýtal. Na každý dotaz si otvoril nové spojenie a to staré nezavrel. Po zhruba štyroch hodinách behu mu macOS ďalšie spojenie odmietol dať.

Horšia bola druhá polovica chyby. Appka namiesto chybovej hlášky dostala prázdnu odpoveď a vyhodnotila si ju ako platnú. Žiadne kalendáre, žiadne stretnutia. Zmazala aj prelety, ktoré už mala naplánované. V nastavení pritom svietilo zeleno, že prístup ku kalendáru funguje.
Pri appke, ktorá má preletieť obrazovku pár minút pred stretnutím, je toto obzvlášť nepríjemné. Človek sa na ňu spolieha a prestane si kalendár strážiť sám. Keď potom mlčí, namiesto aby povedala neviem, je horšia, než keby vôbec nebola.
Pri pripomienkovej appke nie je najhoršia chyba pád. Najhoršie je ticho.

Kto to našiel: dva audity a jedna korekcia
Na príčinu som nasadil dva nezávislé audity. Dva rôzne modely, každý so svojím zadaním, oba s čítacím prístupom ku kódu aj k bežiacej appke. Navzájom o sebe nevedeli.
Prvý našiel príčinu priamo v kóde: tri miesta, kde sa otvára nové spojenie namiesto opätovného použitia starého. Rovno zakázal riešenie typu „zdvihneme limit spojení“, pretože by rovnaký problém len oddialilo.

Druhý to potvrdil vlastným nálezom z logu a v jednom bode prvého opravil.
Pointa, ktorú si z toho beriem: jeden audit vám dá nepotvrdený záver. Dva nezávislé audity dajú zhodu na príčine a k tomu jednu korekciu, na ktorú by prvý sám neprišiel.
Chybu pritom nikdy nestretol žiadny používateľ. Zachytil ju náš testovací proces v sobotu večer, nie niekto cudzí v pondelok ráno.

Čo sa opravilo: architektúra, nie záplata
Oprava neznamenala „zdvihneme limit“ ani „pridáme opakovanie dotazu“. Zmenilo sa, ako appka s kalendárom hovorí.
Jedno spojenie na celý beh appky namiesto nového pri každom dotaze. Chyba už nikdy nevyzerá ako prázdno. Keď appka nevie, povie neviem a nechá platiť posledný potvrdený plán, namiesto aby si prázdno preložila ako „žiadne stretnutia“. Reakcia na zmenu stretnutia do sekundy namiesto až piatich minút.
Je v tom rozdiel medzi „už to nesvieti červeno“ a „už sa to nedeje“. To druhé znamená pochopiť, prečo sa to dialo, a prepísať tú časť, nie ju zakryť.

Mapa víkendu: vývoj nie je priamka
Spätne to vyzerá ako čistá historka. Chyba, dva audity, oprava, hotovo. V skutočnosti to takto rovno nebeželo. Za víkend je to devätnásť míľnikov, tri chyby cestou a tri návraty o krok späť, keď sa rozbehnutý pokus zahodil a začínalo sa z posledného funkčného stavu.
Toto demo videá nikdy neukážu.

Nezávislá kontrola a čísla: zo 7,5 na 9,2
Po oprave prišla druhá vlna kontroly, nezávislá aj od oboch predchádzajúcich auditov.
Desať miliónov simulovaných kalendárových krokov bez porušenia jediného pravidla. Milión operácií s jediným živým spojením. Presne to, čo v piatok chýbalo. Päťdesiatdeväť testov priamo v kóde a k tomu šesťdesiatsedem testov vlastného QA laboratória. Štyridsať ručne navrhnutých scenárov v ôsmich kategóriách.

To laboratórium vie poznať aj podstrčenú chybnú verziu. Dostane schválne rozbitý model a musí samo zareveť NO GO. Keby nezarevalo, je na nič. Testy, ktoré nikdy nič nenájdu, sú dekorácia, nie kontrola.
Osemdesiat na dvadsať a tri dni
Appku z osemdesiatich percent stavala AI, zo zvyšných dvadsiatich ju riadil a kontroloval človek. Zadanie, rozhodnutie o riziku a posledné slovo mal vždy človek. Bez tej kontroly by víkend dopadol inak, pretože audit, ktorý sám nikdy nepovie NO GO, je na nič.
Pointa nie je, že chyby zmiznú. Skracuje sa čas medzi tým, keď chyba vznikne, a tým, keď je opravená a doložená.

Prečo sa toto stane aj Applu
Knižnica od Applu, ktorú Ptáček používa na čítanie kalendára, sa použila inak, než ju Apple zamýšľal. Dokumentácia to hovorí jednou vetou schovanou medzi tisíckou strán.
Stáva sa to aj Applu a Googlu, firmám s desaťročiami procesov za sebou. Rozdiel nie je v tom, či k chybe dôjde, ale ako rýchlo ju nájdete a opravíte.

Tri otázky na každého dodávateľa
Koľko testov bežalo a čo v nich zlyhalo? Keď vám niekto povie, že nikdy nič nezlyhalo, netestovalo sa.
Čo beží ďalej? Kto nemá mapu ďalšieho testovania, ten ju nerobil.
Aké to má rozpätie? Web, aplikácia a napojenie na dvadsať rokov starý firemný systém sú tri rôzne ligy. Riziko rastie rovnako ako cena.
Forma promptu je dokonalá vždy. Podstata nie.

AI je turbo, nie autopilot. A turbo bez vodiča skončí v priekope rovnako rýchlo, ako do nej vojde.
Článok pôvodne vyšiel na LinkedIne. Pôvodný článok na LinkedIne

