Ok, tak první úprava ve formuláři mám hotovou a co teď s tím? No, zařídit předání zákazníkovi, tedy něco, čemu bychom dnes řekli release. Neprobíhalo žádné kód review, automatické testy, buildy, ditribuce atd. Prostě jsem vzal ten opravený formulář, zabalil ho zipem a poslal emailem testerovi, který sestavoval budoucí release k zákaznikovi a testoval aplikaci. Asi jsem mu do toho emailu napsal, co a proč jsem tam udělal.

Manuální merge
Tester mi okamžitě položil záludnou otázku, jestli jsem to opravil v aktuální verzi toho formuláře. Že se raději mám zeptat pana X z firmy Y a pana C z firmy D, protože na tom softu spolupracujeme, jestli nemají novější verzi. Pokud ano, tak ji od nich mám vydyndat, pak to opravit v té aktuální verzi a pak to všem poslat emailem. Znovu, zapomeňte na git a version control. Zapomeňte i na obyčejnej diff, ten Oracle Form byl de-facto binární proprietár, tak jsem si otevřel tři verze formuláře (moji, od pana X a od pana C) a okometricky hledal rozdíly.
U toho telefonického obvolávání bylo ještě vtipný to, že jsme si volali z pevné na pevnou. Telefonní přístroje jsme měli tlačítkové ale bez paměti, takže nebyl až takový problém vyťukat špatné číslo, když se člověk přehmátl nebo ťukal moc rychle. A mívali jsme třeba hodinový nebo dvouhodinový telefonáty. Bez handsfree. Schválně si zkuste držet telefonní sluchátko dvě hodiny v ruce u ucha. To bylo ještě horší než tehdejší myši a z nich pověstné karpály…
Po pár hodinách porovnávání mám nejnovější verzi formuláře, už jednou naprogramovanou opravu programuji znovu, ale trochu jinak, protože se tam mezitím něco málo měnilo. Konečně mám hotovo a znovu posílám testerovi. Ten je spokojený, všechno funguje, jak má. Aby taky ne, on je tam asi o měsíc dýl než já, takže jeho zkušenosti taky nejsou bůhvijaké. Po otestování to dá jako součást většího celku zákazníkovi, ten si to testuje ještě jednou (na testovacím prostředí) a pak ještě jednou (na kopii provozních dat) a všechno cajk. Tohle měl tehdy zákazník nachystáno a vymyšleno fakt dobře, byť se všechno dělalo manuálně.
Bylo tehdy méně chyb?
Fungovali jsme bez junit testů, automatizace, gitu, všechno pěkně ručně. A přesto mám (nostalgický) pocit, že se do produkce dostalo mnohem méně chyb než dnes. Jednak jsem si každou chybu bral (aspoň ze začátku) skoro osobně jako osobní selhání a tak jsem pouštěl za mě odladěný věci. Mnohem později mě proto dost šokoval přístup – však tester má hledat chyby, ne programátor. A pořád si myslím, že tester není od toho, aby spustil aplikaci, klikl na první tlačítko a aplikace spadla. To je chyba programátora. Tester má hledat trochu sofistikovanější chyby, chyby v logice zpracování a ne to, že programátor neumí ošetřit null pointer. A je jedno, jestli kód píše AI nebo junior.
Další důvod, že se těch chyb dostalo do produkce míň, byl ten, že tam opravdu bylo skoro měsíční „začleňovací okno“, kdy probíhali pre-release testy bez přidávání funkcionality. Žádný – uživatelé jsou testeři, ale opravdu snaha všech dodat kvalitní věc. Na druhou stranu, time-to-delivery bylo čtvrt roku, pro kritické chyby a když to šlo dobře. Normální bylo, že uživatelé něco nahlásili a za půl roku měli opravu…
PS1: Je to skoro třicet let a tak si vše možná idealizuji. A některá terminologie je dnešní, ne tehdejší…
PS2: Možná to působí strašně amatérsky ale taková zkrátka byla doba, a to ve většině firem. A občas mám pocit, že některé firmy zůstaly v té době… Navzdory všetm trendům zmiňovaných na LinkedInu…