Unul era o funcție care lipsea din produs. Celălalt era o defecțiune care bloca livrările de o zi — și care nu apăruse dintr-o schimbare de cod, ci dintr-o dată din calendar.
ClickPhone îți ia 25 € pe 1 ale lunii din creditul contului. Aveai 2,50 €, așa că linia s-a suspendat la 00:06. Reconectarea se face manual la ei, în până la 24 de ore — pe care le-am aflat din chiar notificarea lor, nu din presupuneri.
Ca să nu se repete, am pus un memento lunar. Dar l-am pus în afara produsului: o sarcină programată pe Mac mini, care crea taskul în Voost Control pe 25 ale lunii.
Apasă pe fiecare, ca să vezi diferența.
Asta a fost concluzia ta, și era corectă: dacă produsul are nevoie de o funcție, funcția stă în produs, nu lângă el.
Voost Control avea deja tipul de task „recurent" în interfață. Nu făcea nimic. Zero taskuri de tipul ăsta în producție, iar singurul lui comportament era ascuns pe o cale pe care doar agenții o folosesc.
Acum îl declari o dată, iar când bifezi o ocurență, taskul revine singur la următoarea dată.
Alege ritmul, apoi bifează taskul. Uită-te ce scrie în istoric.
Fiecare felie a trecut prin agenți de verificare independenți. Au găsit 11 defecte blocante. Cel mai serios: existau căi prin care un task recurent era marcat „gata" fără să se reprogrameze — deci seria murea în tăcere.
Selectezi două taskuri și le marchezi „Done". Comută între înainte și după reparație.
Aceeași gaură exista și pe calea prin care se aplică propunerile din apeluri — exact forma pe care o are un task de mentenanță lunară la un client.
Voost Control refuză să livreze dacă suita de teste pică pe ramura principală. Pica de sâmbăta trecută. Nimeni nu stricase nimic.
Testele construiau un lead cu data fixă 1 iulie. Fereastra în care se poate retrimite o sesizare la furnizor e de 30 de zile. Pe 31 iulie la 08:00 fereastra a expirat — și de atunci 24 de teste au început să pice singure.
Bara verde e fereastra de 30 de zile. Linia neagră e ziua curentă.
Reparația nu mută bomba mai încolo, ceea ce era capcana evidentă. Tot fișierul atârnă acum de un singur ceas care merge odată cu ceasul real, iar fiecare dată e un decalaj față de el — relațiile dintre momente rămân exact aceleași.
Un alt fișier de test are exact aceeași problemă, cu fitilul pe 31 august. Am deschis un issue separat, cu rețeta de reparație. Dacă nu se atinge nimeni de el, ramura principală redevine roșie peste 30 de zile și deploy-urile se blochează din nou.
Mutarea lui pe rail-ul nativ are nevoie de un deploy. Până atunci sarcina programată de pe Mac mini rămâne activă — funcționează, dar e în afara produsului și nu o vede niciun test.
Nu am făcut niciun merge și niciun deploy. Amândouă rămân decizia ta. Producția a fost verificată înainte și după testarea pe date reale: identică