Lekce 05 / 07

Výběr technologií a kdo to postaví

Jaký technologický stack a hlavně kdo: vlastní vývojáři, agentura, nebo freelancer? Jak se rozhodnout a nevyrobit si přitom lock-in.

Dvě otázky vás u vlastního softwaru potrápí víc než cokoliv jiného: v čem to postavit a kdo to postaví. A protože obojí zní strašně technicky, většina lidí to prostě deleguje na prvního programátora, kterého potkají. To je chyba. Volba technologie a volba lidí jsou totiž z půlky obchodní rozhodnutí, ne technická. Mají dopad na to, kolik vás software bude stát příští roky, jak rychle ho zvládnete měnit a jestli z něj jednou utečete bez ztráty kytičky.

Stack: nehoňte hype, vybírejte podle problému

Na technologie platí stejné pravidlo jako na oblečení do hor. Vybíráte podle počasí, ne podle toho, co se zrovna nosí. Nový framework, který letí na Twitteru, vyřeší možná tři problémy a deset vám jich přidá, protože ho nikdo pořádně neumí a za dva roky o něm nikdo neuslyší.

Dobrý stack se pozná podle tří věcí:

  • Sedí na váš problém. Jiné nástroje chcete na e-shop, jiné na interní evidenci, jiné na věc, co počítá data v reálném čase. Začněte od toho, co software dělá, ne od oblíbeného jazyka dodavatele.
  • Umí ho dost lidí. Tohle je podceňovaný bod. Když na danou technologii seženete v Brně pět vývojářů, máte z čeho vybírat a koho zastoupit. Když existují tři na světě a všichni dělají v Silicon Valley, jste v pasti.
  • Je vyzrálá. Nudná, prověřená technologie, která tu je deset let, má vychytané chyby, hory návodů a komunitu, která už narazila na to, na co narazíte vy. To je výhoda, ne ostuda.

Nudná volba je skoro vždycky ta správná. Vzrušení do softwaru patří v tom, co dělá pro váš byznys, ne v tom, jakým exotickým nástrojem je napsaný.

Kdo to postaví: tým, studio, nebo freelancer

Tady se rozhoduje o riziku a o tom, jak budete v noci spát. Tři cesty, každá sedne na jinou situaci.

  • Vlastní tým (in-house). Máte vývojáře na výplatní pásce. Maximální kontrola, lidé znají váš byznys do hloubky, jsou tu napořád. Daň: drahé a pomalé na rozjezd, jednoho člověka neuživíte prací na plno, a než tým složíte a zaběhne se, uteče půl roku. Dává smysl, až když je software jádro vašeho podnikání.
  • Agentura nebo studio. Najmete firmu, která má tým hotový. Rychlý start, víc rolí pohromadě (vývoj, design, řízení), a když někdo onemocní, je za něj náhrada. Daň: vyšší hodinová sazba a o trochu větší odstup od vašeho byznysu. Sednete na to, když chcete věc postavit dobře a rychle a nechcete kvůli ní zakládat oddělení.
  • Freelancer. Jeden šikovný člověk, nejnižší cena, osobní přístup. Daň, kterou je potřeba říct nahlas: bus faktor jedna. Když ten člověk onemocní, odjede na měsíc do Asie nebo si najde lepší zakázku, váš software se zastaví a nikdo jiný se v něm nevyzná. Dobré na menší věci a prototypy, ošemetné u systému, na kterém stojí tržby.

Než podepíšete, položte si jednu otázku: „Co se stane s mým softwarem, když ten, kdo ho dělá, zítra zmizí?“ Pokud odpověď zní „nic dobrého“, máte špatně rozložené riziko.

Vlastníte všechno: kód, účty, doménu i servery

Tohle je bod, na kterém ve FRGTN trváme nejvíc, protože jsme až moc často viděli, jak to dopadne jinak. Firma platila roky za vývoj a v jednu chvíli zjistila, že vlastně nevlastní nic. Kód byl na účtu dodavatele, doména registrovaná na jeho jméno, servery pod jeho přihlášením. Když se vztah zhoršil, neměla v ruce vůbec nic. To není spolupráce, to je rukojmí.

Od prvního dne proto chtějte:

  • Přístup do repozitáře (kód u sebe, typicky GitHub či GitLab) vedený na váš účet, kde jste vy vlastník, ne host.
  • Doménu registrovanou na vaši firmu, ne na dodavatele. Doména je vaše adresa, tu nikdy nepouštějte z ruky.
  • Účty u všech služeb (hosting, databáze, e-mail, platební brána) založené pod vaším e-mailem, dodavatele si tam jen pozvete.

Dělejte to průběžně, ne až na konci. Vyžádat si přístupy při hladké spolupráci je rutina. Vymáhat je, když už to skřípe, je noční můra.

Lock-in a jak se mu nedat zavřít

Lock-in je stav, kdy z nějakého nástroje nemůžete odejít, i kdybyste chtěli, protože by vás přechod stál víc, než zač to celé stojí. Trochu lock-inu je v každém rozhodnutí, jde o to nedat se zavřít omylem.

Praktické pravidlo: kde to jde, dejte přednost otevřeným standardům a open source nástrojům, které si v krajním případě dokážete provozovat sami. Databáze jako PostgreSQL si odnesete kamkoliv. Vlastní kód je váš. Z těchhle věcí utečete.

Vendor lock-in přijměte jen tam, kde je to vědomá a reálná výhoda, ne ze zvyku. Platební brána nebo zasílání e-mailů jsou služby, které nemá smysl stavět od nuly a kde se závislost vyplatí. Klíčové slovo je „vědomě“. Rozdíl mezi dobrým a špatným lock-inem je v tom, jestli jste si ho vybrali, nebo jen zjistili, že v něm jste.

Jak poznáte dobrého dodavatele

Dobrého dodavatele nepoznáte podle portfolia ani podle toho, kolik buzzwordů řekne na schůzce. Poznáte ho podle pár věcí, které dělá od začátku:

  • Ptá se na problém, ne jen na funkce. Špatný dodavatel si zapíše seznam přání a začne kódit. Dobrý se ptá, proč to chcete, co tím řešíte a co se stane, když to neuděláte. Často vás odradí od poloviny nápadů, a tím vám ušetří peníze.
  • Ukazuje funkční software brzy a často. Týdenní ukázky, na které si můžete sáhnout, jsou nejlepší pojistka, jaká existuje. Vidíte, kam to jede, a můžete zatočit dřív, než vznikne něco vedle.
  • Vysvětluje kompromisy. Když vám někdo tvrdí, že všechno půjde rychle, levně a perfektně, lže. Dobrý dodavatel řekne nahlas, co která volba stojí a co za ni nedostanete.
  • Rád předá štafetu. Tohle je lakmusový papírek. Kdo vám bez řečí dá přístupy, dokumentaci a klíče, ten staví férově. Kdo se předání brání, drží vás jako rukojmí a vy to dřív nebo později poznáte.

Software postavíte jednou, ale žít s ním budete roky. Vyberte technologii, kterou uživí víc lidí než jeden, a člověka nebo tým, který vám rád předá klíče. Zbytek je už jen řemeslo.