První měsíce a roky startupu jsou často směsicí rychlého vývoje, intenzivního soustředění a zdravé dávky chaosu. Když jste malý, dravý tým, který se často sestává jenom z CEO a CTO, rychlost je klíčová k tomu, abyste nalezli shodu produktu s trhem (product-market fit) je prvořadý. Kód se může psát rychle, přeskakují se některé kroky a procesy jsou často minimální – neboli styl někdy nazývaný „cowboy coding“. Tento přístup, zejména od vizionářských technických zakladatelů, může být neuvěřitelně efektivní při rozjezdu produktu.
Ale co se stane, když tento startup uspěje? Když tým vzroste z hrstky lidí na 50, s více týmy a potřebou stability a předvídatelnosti? Programátorské postupy, které vás kdysi poháněly vpřed, se mohou rychle stát významnou brzdou. Tento příspěvek je určen pro technické manažery, kteří se ocitli uprostřed této situace, s úkolem vybudovat škálovatelnou, udržovatelnou codebase a vysoce výkonný tým, zejména když návyky zakládajícího CTO, postavy často respektované a zásadní pro existenci společnosti, představují hlavní překážku.
Paradox zakladatele: Respektovat minulost a zároveň budovat budoucnost
Na začátku byl váš CTO pravděpodobně technickou hybnou silou, architektem, hlavním vývojářem v jedné osobě. Jeho schopnost rychle prototypovat a postavit počáteční produkt byla zásadní pro přežití společnosti. Získali si respekt týmu díky čisté technické zdatnosti a vizi.
Jak se však tým škáluje, povaha práce se dramaticky mění. Codebase napsaná jedním nebo dvěma lidmi pro rychlost se zásadně liší od té, kterou musí pochopit, udržovat a rozšiřovat desítky lidí. Co bylo kdysi efektivním individuálním přínosem, se stává úzkým hrdlem a zdrojem rizika.
Když se původní CTO stále chová jako „kovboj“ stylu – možná obchází dohodnuté procesy, commituje kód, který se odchyluje od nových standardů, zavádí nekonzistentní technologie nebo přeskakuje code review – vytváří to významné problémy:
- Narůstající technický dluh: Nekonzistentní kód, nedostatečná dokumentace a různé architektonické vzorce ztěžují pochopení a úpravu kódu, což zpomaluje všechny.
- Nestabilita systému: Unáhlené změny bez řádného testování nebo kontroly s větší pravděpodobností zavedou chyby a naruší rozbijí funkcionalitu.
- Pomalejší onboarding: Noví zaměstnanci se obtížněji orientují v chaotickém a nekonzistentním kódu.
- Frustrace týmu a podkopání autority: Inženýři usilující o kvalitu a dodržující nové standardy cítí, že jejich úsilí je znevažováno, když je technický lídr nedodržuje. To může vést k cynismu a neochotě přijímat osvědčené postupy.
Řešení této situace je citlivé. Nejedná se jen o dalšího člena týmu; je to zakladatel, často vizionářský lídr. Kritika jejich metod se může jevit jako kritika samotných základů společnosti. Přesto ignorování problému je zaručenou cestou k technické stagnaci a nefunkčnosti týmu. Klíčem je přesunout pozornost od minulých úspěchů a individuálních návyků k současným a budoucím potřebám škálující se organizace.
Nastavení pravidel: Praktické kroky pro implementaci standardů
Jako technický manažer možná nemáte pravomoc diktovat pracovní postup CTO. Máte však významný vliv ve svém týmu a schopnost demonstrovat hodnotu lepších postupů. Zde jsou kroky, které můžete podniknout:
- Začněte v malém a jděte příkladem: Nesnažte se opravit celý kód nebo přepracovat každý proces najednou. Najděte oblasti v rámci zodpovědnosti vašeho týmu – možná novou funkci, konkrétní modul nebo jen iniciativu na vyčištění kódu – kde můžete přísně uplatňovat jasné, jednoduché standardy. Definujte tyto standardy ve spolupráci se svým týmem (např. kódovací standard, základní konvence pro commit zprávy). Zajistěte, aby kód vašeho týmu tyto pravidla důsledně dodržoval. Úspěch vašeho týmu se stane hmatatelným příkladem.
- Využijte automatizaci k vynucení konzistence: Zaveďte nástroje jako linters (ESLint, RuboCop, Flake8), formátovače kódu (Prettier, Black) a nástroje pro statickou analýzu do pracovního postupu vašeho týmu a CI/CD pipeline. Nakonfigurujte tyto nástroje tak, aby automaticky kontrolovaly a dokonce opravovaly problémy se stylem kódu. Tím se standardy prosazují objektivně a důsledně bez nutnosti ruční kontroly každého řádku. Tyto nástroje prezentujte jako prostředek ke zvýšení efektivity, který uvolní čas na kontrolu složitější logiky. Pokud CTO přidá kód, který neprojde automatickou kontrolou, najednou to nebudete vy, kteří na to upozorňujete, ale automat, který pouze kontroluje pravidla, na kterých se shodl celý tým.
- Dokumentujte standardy a komunikujte směrem nahoru: Udržujte standardy kódování vašeho týmu zdokumentované a snadno dostupné (např. v souboru
CONTRIBUTING.md
nebo interní wiki). Zásadní je komunikovat standardy, které zavádíte ve svém týmu, a pozitivní výsledky, které pozorujete (např. méně diskusí o stylu v code review, čistší kód, snazší onboarding nových členů), vašemu manažerovi a, je-li to vhodné, CTO a CEO. Používejte konkrétní příklady a data k doložení výhod.
Budování kultury kolektivního vlastnictví kódu a kvality
Implementace standardů je významným krokem, ale udržitelná změna vyžaduje kultivaci týmové kultury, kde je kvalita kódu sdílenou zodpovědností a zdrojem hrdosti.
- Podporujte své inženýry: Vytvářejte prostředí, kde se inženýři cítí bezpečně a jsou povzbuzováni, aby upozorňovali na technický dluh, ukazovali na nekonzistence a navrhovali zlepšení. Dejte jasně najevo, že vyjadřování obav o kvalitu kódu je ceněným příspěvkem, nikoli stěžováním. Vyčleňte vyhrazený čas (např. 10-20 % sprintu) na řešení technického dluhu – což týmu umožní proaktivně řešit problémy, které identifikovali.
- Nechte své týmy stanovit standardy: Zatímco vy můžete iniciovat proces, co nejdříve zapojte svůj tým do definice a zpřesňování standardů. Když se tým kolektivně dohodne na pravidlech, je více angažován v jejich dodržování a prosazování.
- Komunikujte směrem nahoru s daty a řešeními: Pokračujte v komunikaci pozitivního dopadu zaměření vašeho týmu na kvalitu. Ukažte konkrétní příklady, kdy dodržování standardů zabránilo chybám nebo urychlilo vývoj. Namísto pouhého poukazování na problém nekonzistentního kódu jinde, prezentujte to jako příležitost pro celý inženýrský tým těžit z přijetí podobných postupů. Navrhujte řešení a nabídněte sdílení standardů a zkušeností vašeho týmu.
Závěr
Přesvědčit kódujícího zakládajícího CTO, že jeho dosavadní návyky už nevyhovují potřebám scaleupu je složitá disciplína a vyžaduje diplomacii, vytrvalost a soustředění na budoucnost. Tím, že začnete v rámci své sféry vlivu, využijete praktické nástroje jako automatizace a code review a aktivně budete pěstovat týmovou kulturu, která si cení kolektivního vlastnictví a kvality, můžete dosáhnout významného pokroku, aniž byste si pohněvali zakladatele. Změna, zejména na úrovni vedení, může trvat, ale poukazováním na jasnou dlouhodobou prospěšnost konzistentního, vysoce kvalitního kódu dláždíte cestu k škálovatelnější a udržitelnější technické organizaci.
Ve své konzutační a školicí praxi vycházím z mnohaletých zkušeností s vývojem software. Používám techniky, které jsou v souladu s touto zkušností, i s principy agilního vývoje. Pokud se vám článek líbil, sledujte mě na LinkedIn.