Přepsat systém tak, aby si toho nikdo nevšiml
Firmy mi občas volají kvůli aplikaci, která funguje. Roky funguje, lidi ji umí, nikdo si na ni nestěžuje. Problém je, že stojí na technologii, která stárne — přestávají pro ni chodit bezpečnostní záplaty, hůř se shání někdo, kdo by ji uměl, a přestává se kamarádit s okolím. Dřív nebo později se musí přepsat.
A pak vždycky přijde ta samá otázka: bude to potom fungovat úplně stejně?
Je to naprosto správná otázka. Přepis systému, který dennodenně někdo používá, je totiž riskantnější než napsat něco úplně nového. U nového nikdo neví, jak se to má chovat, takže se to domluví. U starého to všichni vědí přesně — a každá odchylka je chyba.
Nejdřív si nahraju, co ten starý umí
Způsob, který na to používám, se jmenuje golden master a je hezky drzý ve své jednoduchosti. Na starou aplikaci pustím nahrávání a nechám ji dělat svou běžnou práci na skutečných datech. Zaznamenám si, co do ní vstoupilo a co z ní vypadlo.
Když pak vznikne nová verze, dostane tytéž vstupy a výsledky se porovnají s nahrávkou. Sedí to? Hotovo. Nesedí? Mám práci.
Znamená to jednu podstatnou věc: specifikací není dokumentace, ale to, co ten systém doopravdy dělá. Dokumentace k patnáct let staré aplikaci popisuje, jak to mělo vypadat. Nahrávka popisuje, jak to je.
Chyby zůstávají. Schválně.
Tohle bývá jediné, co zákazníka opravdu překvapí.
Když se nová verze od nahrávky liší, skoro vždycky to na první pohled vypadá, že je nová verze lepší. Že to staré počítalo špatně a teď se to konečně spravilo. A já to přesto vrátím zpátky, aby to počítalo stejně špatně jako předtím.
Důvod je prostý: na té chybě už někdo něco postavil. Zvykl si na ni, obchází ji, dopočítává si to stranou. Když ji potichu opravím, změní se pod rukama někomu, kdo o žádné změně neví — a přijde na to ve chvíli, kdy mu nebudou sedět čísla. Nová verze se tedy chová stejně a opravy se řeší zvlášť: napíšu, co je podle mě špatně, zákazník řekne ano nebo ne, a teprve potom se to mění.
Nikdy ne mimochodem a nikdy ne bez jeho vědomí.
Co z toho má zákazník
Klid v tom nejnepříjemnějším týdnu celého projektu — tom, kdy lidé přejdou ze starého systému na nový. Nepřecházejí do neznáma, ale do něčeho, co prokazatelně dělá totéž.
A když se přece jen něco liší, je to sepsané, i s tím, kdo tu změnu odsouhlasil.