Jak neselhat a doletět na Měsíc a zpět | Kapitola 5
Seznam kapitol
Bylo nebylo, počítače byly tak strašně nespolehlivé, že jste je prostě nemohli provozovat jen tak: Bez parity, na integrovaných obvodech a bez dozoru samotné. Přesto se našli lidé, kteří bojovali s chybami – a mezi nimi jedna opravdu výjimečná vývojářka, která software zodolnila tak, že jste mu i život mohli svěřit!
Mezi další věci, které prosadila, byla formalizace používaného jazyka a zákaz commitů neintegrovaného kódu do hlavní verze – vše se muselo testovat odděleně a držet samostatně do doby, než proběhly integrační testy. Ukončila kreativní chaos plný šílenců, kteří komentují svoje zdrojáky latinsky a jsou hrdí, že tomu nikdo nerozumí – alespoň v NASA, v menších firmách takoví jedinci přežívají úspěšně dodnes – a stále nenávidí formální commity a dokumentaci.
Hamiltonová se nakonec stala ředitelkou Software Engineering Division a byla zodpovědná za integraci obecně. V roce 1969 vznikla její slavná fotka, jak stojí vedle hory výpisů. Ve skutečnosti je to „tak trochu fake“: Reálně je zdroják dlouhý „pouze“ dva balíky, takže pro focení vzali všechny kopie, které zrovna našli v laboratoři.
Intenzivní práce na projektu si ale vybrala svoji daň. Její muž vystudoval ještě práva na Harvard Law School v 1963 a stal se z něj ochránce občanských práv, konkrétně se v rámci Civil Liberties Union zabýval ochranou svobody slova. Každý z nich mířil jiným směrem, a nakonec se v roce 1967 rozvedli. V roce 1969 se vdala podruhé za Dana Licklyho.
V roce 1976 Hamiltonová založila Higher Order Software, kde se zabývala vývojem robustního softwaru. Na základě svých zkušeností pak v roce 1986 založila Hamilton Technologies, kde vyvinula Universal Systems Language (USL) – nástroje pro popis komplexních systémů a jejich formální testování ještě před reálným testováním. Systému se říká Development Before the Fact (DBTF) a je založen na formálním dokazování správnosti.
Základní princip jejího testování je založen na tom, že prostě nemůžete jen tak spustit kód a koukat, co to udělá: Ne v případě, že řídíte raketu anebo letadlo. Jsou situace, které se prostě nedaly otestovat, před Apollem 11 nikdo nevěděl, zda se návratový modul skutečně oddělí a vystoupá zpět na orbitu! Spousta věcí musí být navržena předem a musí tam být zabudované bezpečnostní pojistky pro neočekávané situace – ne vyloženě pro chyby, ale pro situace, které vás předem ani nenapadnou.
Takový kód si nemůžete pižlat na koleně. A Hamiltonová přišla s tím, že návrh komplexního a bezpečného kódu je vlastně inženýrská práce jako každá jiná – a prosadila pro ni název „softwarové inženýrství“. Je to obor, který studuje jak budovat velké softwarové systémy, jak je bezpečně napojovat a jak předcházet chybám. Softwarové inženýrství není zrovna obor, který „geniální kodeři“ milují, ale bez systematického přístupu bychom se softwarem zažívali mnohem děsivější dobrodružství.