01 · Vyhledávání umělo tiše oněmět
Co se stalo. Parťák hledá odpovědi ve vašich podkladech tak, že je porovnává podle významu, ne podle slov. To hledání má v databázi zkratku, díky které je rychlé. Ukázalo se, že ta zkratka umí skončit dřív, než projde dost vašich podkladů — a vrátit prázdno tam, kde odpověď existuje.
Jak se to našlo. Měřením, ne stížností. Nikdo si nestěžoval, protože se to navenek neprojevilo: databáze si v té velikosti sama vybírala pomalejší, ale úplnou cestu. To je ovšem její preference, ne záruka — a s tím, jak vašich podkladů přibývá, by se obrátila.
Co z toho plyne pro vás. Tohle je přesně ten druh vady, který se neohlásí. Asistent by dál odpovídal, jen by přestal nacházet — a vypadalo by to, že vaše podklady prostě odpověď neobsahují. Nejnebezpečnější chyby v AI nejsou pády; jsou to tiché prázdné výsledky. (Dotaz se ptá vždy jen do podkladů vaší firmy — to platilo i s touhle vadou.)
Čím je to hlídané. Vyhledávací dotaz běží v režimu, který databázi zakazuje si zkratku zjednodušit, a v pravidlech projektu stojí, že se ten dotaz nesmí nikam zkopírovat bez něj.
02 · Do leadu se dostane jen kontakt, který vyslovil návštěvník
Jak to funguje dnes. Kontakt se do leadu uloží jen tehdy, když se skutečně vyskytuje ve slovech návštěvníka — u hlasu včetně části hovoru, kterou systém ještě nestihl zapsat. Co doloženo není, se zahodí. Když nezbude e-mail ani telefon, lead nevznikne vůbec.
Proč to tak je. Při zkušebním hlasovém hovoru na našem vlastním webu řekl volající jedinou, v půlce uříznutou větu. Přesto se založil kontakt — jazykový model doplnil e-mail, který v hovoru nezazněl. Model neměl zlý úmysl; doplňování chybějícího je přesně to, co jazykové modely dělají. Nešlo o data zákazníka: byla to naše vlastní sonda na našem vlastním webu.
Jak se to našlo. Vlastní sondou, která pravidelně volá a píše skutečnému produkčnímu asistentovi a pak za sebou svoje data označí jako testovací.
Co z toho plyne pro vás. Tohle je ta nejdražší možná chyba u sběru poptávek: nepoznáte ji. Lead vypadá jako každý jiný, jen na té adrese nikdo není.
Čím je to hlídané. Brána je v kódu, ne v pokynech pro model — model ji neumí přemluvit. A nikdy se nedozví, že se má na kontakt doptat: ptát se na kontakt má firma, ne stroj, kterému se nepovedlo ho zachytit.
Pravidlo 01 a 02, ze kterých to plyne
03 · Funkce, která byla hotová a nikdy neběžela
Co se stalo. Přidat Parťákovi novou schopnost — třeba vybrat položku z nabídky na stránce — znamená zapsat její jméno na pět různých míst v systému. Zapsat ho jen tam, kde se schopnost definuje, stačí k tomu, aby vypadala hotová: je v kódu, je v dokumentaci, je na seznamu. A nikdy se nespustí.
Jak se to našlo. Auditem, který se ptal opačně, než se obvykle ptá: ne „funguje to?“, ale „kudy všudy musí ta věc projít, aby to vůbec mohlo fungovat?“.
Co z toho plyne pro vás. Nepřítomnost funkce se nedá dokázat jedním pohledem. Proto u každé schopnosti na tomhle webu vede odkaz na stránku, kde je rozepsané, co přesně dělá — a proto si ji můžete vyzkoušet dřív, než za cokoli zaplatíte.
Čím je to hlídané. Třemi testy, které porovnávají seznamy mezi sebou. Jméno, které chybí byť na jednom z nich, dnes neprojde.
04 · Tři týdny běžely testy, které nikdo nepouštěl
Co se stalo. Nejdůkladnější sada testů — ta, která spouští skutečnou databázi a skutečné spojení — se přestala pouštět automaticky a tři týdny si toho nikdo nevšiml. Existovala dál a vypadala zeleně. Schovala se v ní přitom skutečná vada: jedna hodnota byla o sedm znaků delší, než kolik se do databázového sloupce vejde.
Jak se to našlo. Otázkou „kdy naposledy tohle doopravdy běželo?“ místo „prochází to?“.
Co z toho plyne pro vás. Sada testů bez brány, která ji vynutí, je tvrzení, ne důkaz. Platí to i o nás: proto o žádném čísle na tomhle webu neříkáme, že je změřené, pokud nemáme čím to doložit.
Čím je to hlídané. Kontrola se přesunula tam, kde nemůže tiše vypadnout: před každé odeslání změny. A bez databáze sadu nepřeskočí potichu — nahlas oznámí, že neproběhla.
Pravidlo 05: publikujeme jen změřená čísla
A jedno rozhodnutí, které jako chyba bolí
Co se stalo. Tohle mezi chyby výš nepatří — je to rozhodnutí. Platíme za něj ale podobně, tak ať je tu taky. Widget na vašem webu má pevný rozpočet velikosti. Každá nová funkce ho posune a kontrola zastaví vydání ve chvíli, kdy se do něj nevejde.
Proč to tak je. Protože rychlost vašeho webu je vaše, ne naše. Cizí skript, který stránku zpomalí, poškodí vaše výsledky ve vyhledávání a vaši návštěvníci odejdou dřív, než se Parťáka stihnou na cokoli zeptat. Asistent, který uškodí webu, na kterém stojí, je horší než žádný.
Co z toho plyne pro vás. Rozpočet je brzda, ne strop: zvedá se vědomě a s doloženým důvodem, ne pokaždé, když se něco nevejde. Každá změna widgetu se proto měří proti předchozímu sestavení, ne odhaduje — a když se do rozpočtu nevejde, nevydá se, dokud se buď nezmenší, nebo dokud někdo neobhájí, proč rozpočet zvednout.
Čím je to hlídané. Automatickou kontrolou velikosti před každým vydáním — a druhou, která hlídá, že aktuální číslo není opsané v dokumentaci, kde by tiše zastaralo.
05 · Ptali jsme se na mikrofon dvakrát
Co se stalo. Widget měl vlastní dialog se souhlasem s mikrofonem, a hned po něm se zeptal ještě prohlížeč. Dvě otázky na jedno oprávnění.
Proč to byla chyba. Ptát se dvakrát na jednu věc je horší než neptat se: návštěvník to čte jako pokus ho obejít, a to úplně právem. Navíc jsme tím vytvářeli vlastní evidenci souhlasu vedle té, kterou vede prohlížeč — a ta naše nemohla být nikdy přesnější.
Co z toho plyne pro vás. O mikrofonu rozhoduje výhradně prohlížeč návštěvníka. My se neptáme, nevedeme si o tom záznam a nemáme jak to obejít.
Čím je to hlídané. Vlastní souhlas byl smazaný a test hlídá, že se nevrátí. Ukazatel hlasitosti navíc kreslí skutečný zvuk z mikrofonu — statická ikona vlnky předtím tvrdila „slyším vás“ i tehdy, když byl mikrofon ztlumený.
Proč tohle vůbec zveřejňujeme
Je to nepohodlné a je to schválně. Pět příběhů výš jsou vady v produktu, který vám nabízíme, a nikdo nás nenutí je ukazovat.
Důvod je jednoduchý: bezchybná fasáda nic nedokazuje. Každý dodavatel vám ukáže hotovou obrazovku. Rozdíl mezi tím, kdo chyby hledá, a tím, kdo čeká, až je najde zákazník, je vidět jedině na tom, co dělá s chybou, kterou nikdo nenahlásil — a to je přesně to, co je tady.
Takových záznamů — pravidlo, datum a test, který ho drží — je ve vývojové dokumentaci Parťáka přes padesát. Tahle stránka je jejich výběr pro čtenáře, který není programátor.
Časté dotazy
Neodrazuje vás zveřejňování vlastních chyb?
Někoho určitě. Počítáme s tím a přesto je to výhodná výměna: dodavatele si vybíráte na roky a bezchybná prezentace o té spolupráci neřekne nic. Tohle o ní řekne víc než jakákoli reference.
Jak poznám, že tu nejsou jen ty pohodlné?
Nepoznáte, a bylo by nepoctivé tvrdit opak — výběr děláme my. Proto je u každé chyby uvedené, co konkrétně by způsobila, a ne jen že byla opravena. Vybrali jsme pět, které by vás stály nejvíc: tiché vyhledávání, nedoložený kontakt, funkce jen na papíře, nepouštěné testy a dvojí ptaní na souhlas.
Znamená to, že Parťák chyby mít nebude?
Ne. Znamená to, že je hledáme dřív než vy, a že každá opravená dostane strážce, aby se nevrátila. Bezchybnost vám neslibuje nikdo, kdo software opravdu píše.