Przejdź do treści

Blog · Sierpień 2026

Apka w sobotę się zepsuła. Zamiast obiecanej części pokazuję, co działo się dalej.

  • Jakub Liška · Sierpień 2026

Obiecałem, że druga część będzie o różnicy między stroną, aplikacją i oprogramowaniem. Ta część nadal nadejdzie.

Obiecałem, że druga część będzie o różnicy między stroną, aplikacją i oprogramowaniem. Ta część nadal nadejdzie. Ale w weekend 1 i 2 sierpnia w apce Ptáček znalazł się błąd i ta obiecana różnica zamiast w tabeli rozegrała się na żywo.

Pokazanie jej na prawdziwym błędzie jest uczciwsze niż tłumaczenie na przykładach z głowy. Więc kolejność się zmienia.

Jest w tym też drugi powód. Chcę, żeby było widać, jak naprawdę wygląda rozwój z AI. Nie tylko gotowe demo na końcu, ale i chwile, gdy się to psuje, gdy szuka się przyczyny i gdy dwa razy wraca się o krok wstecz, zanim zadziała. Vibe Coding sprzedaje się jako magię. W rzeczywistości to rzemiosło z błędami, które się rozwiązuje.

Co się zepsuło: apka milczała zamiast pokazać komunikat o błędzie

Co się zepsuło i dlaczego cisza jest gorsza niż awaria

Ptáček co pięć minut pytał systemowy kalendarz, czy coś się szykuje. Problem tkwił w tym, jak pytał. Na każde zapytanie otwierał nowe połączenie, a stare zostawiał otwarte. Po mniej więcej czterech godzinach pracy macOS odmówił mu kolejnego połączenia.

Kto znalazł błąd: widok na problem z zapytaniami do kalendarza

Gorsza była druga połowa błędu. Apka zamiast komunikatu o błędzie dostała pustą odpowiedź i uznała ją za prawidłową. Żadnych kalendarzy, żadnych spotkań. Skasowała nawet przeloty, które miała już zaplanowane. W ustawieniach przy tym świeciło na zielono, że dostęp do kalendarza działa.

W apce, która ma przelecieć przez ekran kilka minut przed spotkaniem, jest to szczególnie przykre. Człowiek na niej polega i przestaje sam pilnować kalendarza. Gdy potem milczy, zamiast powiedzieć nie wiem, jest gorsza, niż gdyby jej w ogóle nie było.

W apce z przypomnieniami najgorszy błąd to nie awaria. Najgorsza jest cisza.

Architektura apki, w której powstał błąd

Kto to znalazł: dwa audyty i jedna korekta

Na przyczynę wysłałem dwa niezależne audyty. Dwa różne modele, każdy z własnym zadaniem, oba z dostępem do odczytu kodu i działającej apki. O sobie nawzajem nie wiedziały.

Pierwszy znalazł przyczynę bezpośrednio w kodzie: trzy miejsca, w których otwiera się nowe połączenie zamiast ponownie użyć starego. Od razu zabronił rozwiązań typu „podnieśmy limit połączeń”, bo ten sam problem by tylko odsunęły.

Mapa weekendu, w którym błąd był szukany i naprawiany

Drugi potwierdził to własnym ustaleniem z logu i w jednym punkcie poprawił pierwszego.

Wniosek, który z tego wynoszę: jeden audyt daje niepotwierdzony wniosek. Dwa niezależne audyty dają zgodność co do przyczyny i do tego jedną korektę, na którą pierwszy sam by nie wpadł.

Błędu przy tym nigdy nie spotkał żaden użytkownik. Wychwycił go nasz proces testowy w sobotę wieczorem, a nie ktoś obcy w poniedziałek rano.

Liczby z weekendu: ile błędów znaleziono i naprawiono

Co naprawiono: architektura, nie łatka

Naprawa nie polegała na „podnieśmy limit” ani „dodajmy ponawianie zapytania”. Zmieniło się to, jak apka rozmawia z kalendarzem.

Jedno połączenie na cały czas działania apki zamiast nowego przy każdym zapytaniu. Błąd już nigdy nie wygląda jak pustka. Gdy apka nie wie, mówi nie wiem i zostawia w mocy ostatni potwierdzony plan, zamiast przełożyć sobie pustkę na „żadnych spotkań”. Reakcja na zmianę spotkania w ciągu sekundy zamiast do pięciu minut.

Jest różnica między „już nie świeci na czerwono” a „już się to nie dzieje”. To drugie oznacza zrozumieć, dlaczego to się działo, i przepisać tę część, a nie ją zakryć.

Werdykt niezależnej kontroli

Mapa weekendu: rozwój to nie linia prosta

Z perspektywy czasu wygląda to na czystą historyjkę. Błąd, dwa audyty, naprawa, koniec. W rzeczywistości nie szło to tak prosto. W weekend to dziewiętnaście kamieni milowych, trzy błędy po drodze i trzy powroty o krok wstecz, gdy rozpędzona próba została odrzucona i zaczynało się od ostatniego działającego stanu.

Tego dema wideo nigdy nie pokazują.

Bezpieczeństwo apki, którego dema wideo nigdy nie pokazują

Niezależna kontrola i liczby: z 7,5 na 9,2

Po naprawie przyszła druga fala kontroli, niezależna także od obu poprzednich audytów.

Dziesięć milionów symulowanych kroków kalendarza bez naruszenia ani jednej reguły. Milion operacji z jednym żywym połączeniem. Dokładnie to, czego w piątek brakowało. Pięćdziesiąt dziewięć testów bezpośrednio w kodzie i do tego sześćdziesiąt siedem testów własnego laboratorium QA. Czterdzieści ręcznie zaprojektowanych scenariuszy w ośmiu kategoriach.

Zweryfikowano przez człowieka: symulowane kroki bez naruszenia ani jednej reguły

To laboratorium potrafi rozpoznać także podsuniętą wadliwą wersję. Dostaje celowo zepsuty model i samo musi krzyknąć NO GO. Gdyby nie krzyknęło, jest do niczego. Testy, które nigdy niczego nie znajdują, są dekoracją, nie kontrolą.

Osiemdziesiąt do dwudziestu i trzy dni

Apkę w osiemdziesięciu procentach budowała AI, a pozostałymi dwudziestoma kierował i kontrolował człowiek. Zadanie, decyzję o ryzyku i ostatnie słowo miał zawsze człowiek. Bez tej kontroli weekend skończyłby się inaczej, bo audyt, który sam nigdy nie powie NO GO, jest do niczego.

Sedno nie w tym, że błędy znikną. Skraca się czas między powstaniem błędu a tym, gdy jest naprawiony i udokumentowany.

Podsumowanie: skraca się czas między powstaniem błędu a jego wykryciem

Dlaczego to zdarza się nawet Apple

Biblioteka od Apple, której Ptáček używa do czytania kalendarza, została użyta inaczej, niż Apple zamierzał. Dokumentacja mówi to jednym zdaniem ukrytym w tysiącu stron.

Zdarza się to także Apple i Google, firmom z dekadami procesów za sobą. Różnica nie polega na tym, czy dojdzie do błędu, ale jak szybko się go znajdzie i naprawi.

Dostawca: trzy pytania, które warto mu zadać

Trzy pytania do każdego dostawcy

Ile testów działało i co w nich zawiodło? Gdy ktoś mówi, że nigdy nic nie zawiodło, nie testowano.

Co działa dalej? Kto nie ma mapy dalszego testowania, ten jej nie robił.

Jaką to ma skalę? Strona, aplikacja i podłączenie do dwudziestoletniego systemu firmowego to trzy różne ligi. Ryzyko rośnie tak samo jak cena.

Forma promptu jest zawsze doskonała. Treść nie.

Sama technologia nie wystarcza: AI to turbo, nie autopilot

AI to turbo, nie autopilot. A turbo bez kierowcy kończy w rowie równie szybko, jak do niego wjeżdża.

Artykuł pierwotnie ukazał się na LinkedInie. Oryginalny artykuł na LinkedInie

Proszę zacząć tutaj

Wstępne 15 minut wystarczy, żeby wiedzieć, czy to ma sens.

Państwo mówią, co Państwa boli. My mówimy, czy damy radę, ile to mniej więcej kosztuje i od czego ja bym zaczął na Państwa miejscu. Bez prezentacji.

Adres
Legerova 1820/39, Praga 2

Kalendarz udostępnia Cal.com (strona trzecia), ładuje się dopiero po kliknięciu.