Kdy je čas oddělit testy, než se z nich stane past?

Z Mazovia

Scrum není metodika, kterou koupíte a nasadíte. Je to rámec, který funguje jen tehdy, když tým pochopí jeho principy a přizpůsobí je realitě. V českém prostředí často narazíte na dvě krajnosti: buď se Scrum zavede formálně a nikdo nezmění způsob práce, nebo se tým snaží dodržet všechny rituály do puntíku a ztrácí čas administrativou. Praxe ukazuje, že největší problémy vznikají v komunikaci a v nedostatku disciplíny, ne v nástrojích.

Na co si dát pozor: absolutní cesty v kódu. Skript, který funguje na tvém počítači, spadne na jiném, protože cesta začíná jménem tvého uživatele. Používej relativní cesty nebo proměnné prostředí. Dále neošetřené výjimky — když skript narazí na chybějící soubor nebo nedostupnou síť, má skončit srozumitelnou zprávou, ne dvaceti řádky tracebacku. A nakonec: neukládej do kódu přihlašovací údaje ani klíče. Patří do souboru, který není součástí repozitáře, nebo do proměnných prostředí.

První automatizace nemá být přepisování celé firmy. Vyber si jednu opakující se nudnou činnost, kterou děláš alespoň několikrát týdně: přejmenování souborů, slévání tabulek, stahování dat, posílání příloh. Napiš skript, který ji zvládne za tebe, a spusť ho ručně. Teprve když funguje spolehlivě, můžeš ho nechat běžet naplánovaně. Typická chyba začátečníka je, že rovnou řeší velký projekt a po dvou dnech narazí na neznámou knihovnu a skončí. Malý hotový skript tě naučí víc než nedokončený velký.

Funkce a data: méně větví, méně stav

Růst kódu se nejčastěji projeví tak, že se testovací sada zpomalí, začne padat na nesouvisejících změnách a přestane dávat jasnou odpověď, co je vlastně rozbité. V tu chvíli už nestačí přidávat další testy. Je potřeba změnit strukturu: oddělit jednotkové testy od integračních a nastavit pravidla, kdy který typ použít.

Python je pro automatizaci vhodný z několika konkrétních důvodů: čte se podobně jako angličtina, má obrovskou základní knihovnu a většina systémů ho už má nainstalovaný. Nepotřebuješ žádné vývojové prostředí za tisíce, stačí terminál a textový editor. Začni tím, že si ověříš, jakou verzi máš k dispozici příkazem python3 --version. Pokud se vypíše číslo 3.8 a vyšší, můžeš pokračovat. Když příkaz selže, nainstaluj Python z oficiálního instalátoru pro svůj operační systém a při instalaci na Windows zaškrtni volbu přidání do systémové proměnné PATH, jinak budeš muset příkazy spouštět přes celou cestu.

Obrázky a média vkládejte s max-width: 100% a height: auto. U gridu se vyhněte pevným grid-template-columns: 1fr 1fr 1fr bez ohledu na obsah; lepší je repeat(auto-fit, minmax(...)). Mezery definujte přes gap, ne přes marginy na dětech – margin u posledního prvku v řadě vytváří nevyvážené okraje. Testujte nejen šířky, ale i zvětšené písmo a dlouhé české názvy, které se snadno vylijí z tlačítek.

Na závěr si zvolte jednu vzdálenou kopii a naučte se tři operace: odeslání větve, stažení změn a vyřešení konfliktu. Konflikt neznamená chybu, jen dvě verze stejného místa. Otevřete soubor, rozhodněte, která část zůstane, a výsledek potvrďte. Až tohle zvládnete, přidejte si do zvyků krátké kontroly stavu před každou prací. Verzování se tak stane tichou součástí vývoje, ne jednorázovou akcí na konci projektu.

Prvním krokem je sestavit produktový backlog. Vlastník produktu musí být jedna osoba, ne výbor. Backlog nemá být seznam všech nápadů, ale prioritizovaný seznam položek, které přinášejí hodnotu. Uživatelské příběhy pište krátce: role, cíl, důvod. Vyhněte se technickým detailům, ty patří do akceptačních kritérií. Pokud tým nemá jasnou vizi, každý sprint se zvrhne v hádku o tom, co je důležitější. Vlastník produktu musí být dostupný a rozhodovat. Pokud tomu tak není, Scrum skončí jako demokracie, která nikam nevede.

Responzivní design nezačíná u media queries, ale u volby správného nástroje pro rozvržení. CSS Grid a Flexbox nejsou konkurenty, které je třeba si vybrat jednou provždy. Grid řeší dvourozměrné uspořádání – řádky i sloupce současně. Flexbox řeší jednorozměrné uspořádání – obsah v jedné linii nebo sloupci. Pokud tuto hranici respektujete, přestanete psát zbytečné opravy a rozvržení se bude lámat předvídatelně.

Nejrychlejší způsob, jak se posunout, je číst cizí skripty a rozebírat je řádek po řádku. Když narazíš na neznámou funkci, otevři dokumentaci a zjisti, co dělá a jaké má vstupy. Po několika týdnech takového čtení přestaneš kopírovat hotová řešení a začneš skládat vlastní. Automatizace v Pythonu není o tom naučit se celý jazyk, ale o tom vyřešit konkrétní problém a mít ho hotový dřív, než bys ho stihl udělat ručně.