Ackee Tech Stack: Hledání rovnováhy
Tentokrát se rozepíšu o našem tech stacku. Tedy spíše o filosofii, která se za ním skrývá.
Ackee se od začátku z pozice CTO snažím technologicky profilovat jako špičku. Špičku mezi agenturami. Je to dost specifický byznys a tedy i styl vývoje. Omezený čas i budget, ale i poměrně volná ruka s sebou nese řadu výzev. Myslím, že se nám to daří dlouhodobě držet. Nám — protože já už do toho téměř nekrafu a týmy jsou autonomní.
Držíme se však od začátku jedné filosofie. Ta stojí na hledání rovnováhy mezi používáním moderních a trendy technologií, které přilákají lidi, usnadní práci, je radost s nimi pracovat a jsou natolik neotřelé (čti složité :)), že nám dají konkurenční výhodu. A na straně druhé používáním osvědčených a stabilních technologií, které jsou sázkou na jistotu. Nemusí nutně jít jen o knihovny, jazyky a frameworky. Ale i třeba chytré využití služeb třetích stran, které používáme hojně a rádi, více o tom píšu v dalším článku.
Moderní technologie z první kategorie, jsou samozřejmě dost riskantní a asi nemusím psát kolik “převratných” technologií se neustále objevuje a následně failuje. Společně s nimi i projekty, které na nich staví. Volbu ryze těchto technologií nám neumožňuje ani budget, který nemáme “neomezený” narozdíl od firem jiného ražení. Je tedy potřeba vybírat hodně opatrně, být trošku odvážný (zkrátka mít čuch na to, co se chytne), no a v neposlední řadě trošku toho IT štěstí.
Zároveň však musíme adaptovat rozumné množství moderních technologií a náš stack musí být dostatečně sexy. Stejně jako ostatní na IT trhu válčíme o lidi. A ti dneska chtějí používat moderní technologie a je to pro ně důležité kritérium. Pokud se navíc jedná o technologii, která nám pomůže dodávat kód rychleji/lépe/efektivněji a adaptujeme ji dříve než konkurence, dává nám to signifikantní výhodu.
Jako agentura musíme stack přizpůsobovat našemu nastavení. Musí fungovat napříč projekty a musí se v něm všichni z daného týmu vyznat. Technologie v něm nám musí fungovat dlouhodobě a měnit je můžeme jen postupně, takže většinou děláme rozhodnutí poměrně opatrně (pokud teda nejde o nějakou drobnou knihovničku). Výhoda unifikovaného stacku je, že se každý ve firmě vyzná technologicky v každém projektu, což je pro nás konkrétně obrovské plus. Nevýhodou je občas přílišná robustnost i na místech, kde by to za jiných okolností (např. vývoj interním týmem) nebylo potřeba. Další nevýhodou je delší křivka učení složitějšího stacku u nováčků nebo týmu, který projekt přebírá po nás a není tolik zkušený.
Další rovinou balancování s těmito technologiemi je, že jejich použití může výrazně ušetřit klientův rozpočet nebo ho v opačném případě bezhlavě propálit (a potenciálně i vaše firemní peníze, když klientovi dojde trpělivost). Prototypovat a zkoušet musíme na našich interních projektech (au). Určitě je fér podotknout, že řadu našich špatných rozhodnutí “zachránil” konec konkrétního projektu dřív, než se stihla projevit, ale i tak to v IT chodí a bylo to převážně v prvních letech fungování Ackee.
Jasně, párkrát jsme udělali přešlap. Určitě by šlo vypíchnout (ostatně jako vždy) konkrétní věci, co bychom mohli/měli používat jinak. Některé nám naopak “utekli”, protože jsme je evolučně přeskočili.To vše je dáno způsobem naší práce a povahou projektů, ale myslím, že se nám celkem daří hledat rovnováhu mezi kvalitními, zábavnými a nudnými technologiemi — potvrzují to reakce z trhu, komunity i nezávislých reviews. Agenturní stack je zkrátka specifický, a proto chci sepsat, čím to asi je, že jsme si za ty roky drželi náskok, kde jsme šli úspěšně po čuchu (do rizika) a kde jsme se naopak spálili. Stay tuned!