Znáte to určitě z různých IT vtipů. V programu je potvrzovací dialog na smazání třeba objednávky. V něm jsou ale chybou systému místo tlačítek OK/Storno, dvě tlačítka „Storno“ a vy nevíte, které je potvrzení a které znamená zrušení volby. Podobné vtipy mají často někde v textu klíčové slovo Microsoft a je to vždycky k popukání. Až … až do chvíle, než se to stane ve vaší vlastní aplikaci.
Tenhle příběh je pravda a sním klobouk, jestli jsem vám lhal. Ano a takhle to bylo…
Už je to pár let, spustili jsme nový systém pro registraci Splouvání Vltavy. Testovalo se kde co a hodně dlouho. Přesto se i v lepších rodinách přihodí, že po startu nové aplikace se až v ostrém provozu projeví něco, co vás prostě překvapí. Tento rezervační systém byl (mimo jiné) tvořen proto, aby odlehčil agendě na straně Národního Parku Šumava, která byla v minulosti spojena s rezervacemi splouvání horního toku Vltavy. Zejména vracení peněz, různé vyjímky a podobně vytěžovaly personál víc než dost.
Vlastností nového řešení bylo i to, že do systému plateb a registrací prakticky nelze zasáhnout (říkal jsem tomu antikorupční opatření) a vše je úplně automatické. Tedy rezervace, platby (kartou) i refundace (vratky) v případě, že někdo svou rezervací splouvání stornuje, změny atd.
Den D – spuštění a první Murphyho vtípek
Malá odbočka. Nemám jim to, klukům z GoPay, za zlé. První den, kdy jsme systém spouštěli na ostro, necelou hodinu nefungoval systém GoPay. Ačkoliv normálně běží několik měsíců zcela bez výpadků. Mno jo, stávají se horší věci. Nářky a blesky snesly se sice na nás, ale budiž. Způsobilo to problémy, přišli jsme díky tomu na jednu chybu v aplikaci, ale vyřešilo se to docela rychle.
To zábavnější ale přišlo až o týden později…
Kauza „Hlavně na to neklikejte“
Volal klient:
„Prosím vysvětlete nám ještě jednou některé věci v administračním rozhaní.“
Tak proč ne. Dokumentace nebyla požadována a protože si rád povídám, tak jsem se toho ujal. Jdeme položku po položce, funkci po funkci. Až dojdeme k funkci „Storno termínu„.
Co udělá funkce Storno termínu?
- automaticky zruší všechny rezervace pro daný den (v jednom dni jich je max. 56 rezervací, tedy až 56 uživatelů, pokud si každý registruje jeden termín a jednu loď), poté
- pošle uživatelům Storno email a (!)
- odešle platební bráně příkaz „Vrať jim peníze„. Platební brána pak sama pošle peníze zpátky na původní bankovní účet. (pozn.: to je moc prima funkce GoPay).
Potud všechno dobrý, otestováno, funkční, klapka, jedeme. Až dnes se odehrál tento dílčí rozhovor:
Klient: A k čemu je to tlačitko s tím křížkem v přehledu Termínů?
Já: To je pro Storno termínu. Když na to najedete, zobrazí se nápověda. Touto funkcí se ruší termín, což způsobí … atd. (vizte výše)
Klient: Aha…
Já: Ale prosím neklikejte na to, sice se to testovalo, ale jsou tam už živá data a my jsme domluveni, že až to budete potřebovat provést poprvé naostro, tak že u toho raději budeme v pohotovosti, nebo první storno provedeme my. Kdyby něco …
Klient: Jo, tak, já jsem na to klikla a napsalo to „Tento termín byl úspešně zrušen“.
(polilo mě horko)
Já (rozrušeně): Já jsem Vám říkal, ať na to neklikáte!
Klient: Ale já jsem na to tlačítko klikla a pak na ten zavírací křížek, že to jako nechci potvrdit.
(a teď pro změnu studená sprcha … říkal jsem si, jako vole, cože??? zavírací křížek to potvrdí?)
Já: To není možný, křížek nic nedělá, jen zavře to okno. A navíc tady všechny ty termíny ještě vidím rezervované, tak snad OK.
(uplynulo 15 vteřin)
Já: Aha, tak už všechny rezervace pro tento den byly vystornovány …. funkce pro stornování rezervací funguje rychle 🙁
Klient: Ale já jsem opravdu klikla jen na ten křížek.
(hlava mi to nebere, křížek? ne, to není možný, to budou erupce na slunci, přeslechl jsem se, ujela jí ruka, myš jí přeskakuje, vylila se Vltava a zatekla jí do notebooku, určitě to má logické vysvětlení …)
Já: Hmm, tak já to zjistím a dám vám vědět.
… provádím telefon s kolegou, vysvětluju mu situaci a za pár minut mám od něj odpověď:
Kolega: Hmm, systém na refundace nám funguje podle všeho skvěle! 🙁 A už to poslalo emaily uživatelům o stornu a poslalo na platební bránu pokyn k vrácení peněz.
(pro úplné vyjasnění: je to nevratný proces)
Následuje den (úplně zbytečné) práce s napravováním do původního stavu, omlouváním se uživatelům atd…
A jaké z toho plyne ponaučení? Testovat, testovat, testovat, už to běží?, jasně, testovat, testovat, testovat. A to i ty funkce, u kterých vás napadne „tady to předpokládám, že funguje, na to klikat nebudu“. I výroba chyb a jejich opravování totiž spadá do software developmentu, do rozpočtu i časových odhadů na realizaci.