Lekce 07 / 07

Náklady, údržba a rozvoj

Software není jednorázový výdaj. Celkové náklady vlastnictví, technický dluh, údržba a jak software škálovat, když začne růst.

Nejčastější věta, kterou slyšíme půl roku po spuštění, zní: „My mysleli, že už je to hotové.“ Software ale není hotový ve chvíli, kdy přijde poslední faktura za vývoj. To je teprve chvíle, kdy začne žít. A živé věci stojí čas a peníze po celou dobu, co je máte.

Tahle lekce je o ekonomice vlastnictví. Ne o tom, kolik stojí postavit, ale o tom, kolik stojí mít. Protože právě tohle číslo rozhoduje, jestli vám software za pět let bude vydělávat, nebo bude koule u nohy.

Software je živý organismus, ne nábytek

Když koupíte stůl, zaplatíte jednou a dál vás nestojí nic. Software se takhle nechová. Blíž je mu zaměstnanec nebo auto: pořizovací cena je jen začátek, pak přicházejí provozní náklady do konce života.

Tomuhle celku se říká celkové náklady vlastnictví. Patří do nich hosting a databáze, domény a certifikáty, placené služby třetích stran (platby, e-maily, mapy), monitoring, zálohy a hlavně čas člověka, který se o to stará. U menší aplikace to může být pár tisíc měsíčně, u větší klidně násobky toho.

Rozpočtujte na celý život softwaru, ne jen na jeho narození. Praktické pravidlo, které dáváme klientům: počítejte, že roční údržba a drobný rozvoj vás bude stát zhruba 15 až 25 % původní ceny vývoje. Když si tohle nepřipustíte na začátku, dohoní vás to v nejhorší možnou chvíli, obvykle když zrovna nemáte volné peníze.

Technický dluh: skrytý úrok, který platíte později

Představte si garáž. Spěcháte, tak nářadí jen hodíte na hromadu místo na háčky. Jednou to nevadí. Po roce takhle nacpané garáže ztratíte deset minut pokaždé, když něco hledáte, a nakonec se tam bojíte vůbec vlézt.

Přesně tak funguje technický dluh. Jsou to zkratky, které programátoři udělají, aby věc dostali ven rychleji: provizorní řešení, chybějící testy, kód, který drží pohromadě „zatím“. Není to známka neschopnosti, je to běžný kompromis. Problém nastane, když dluh nikdo nesplácí a jen narůstají úroky v podobě pomalejších úprav a častějších chyb.

Trochu dluhu je v pořádku, pokud o něm víte a splácíte ho záměrně. Nebezpečný je dluh, který nikdo nepřiznal a který se vynoří, až když potřebujete přidat funkci „rychle“.

Klíčové slovo je vědomě. Dobrý dodavatel vám řekne: „Tohle uděláme natvrdo, abychom stihli termín, a za měsíc to narovnáme.“ Špatný dodavatel mlčí a vy se dozvíte o garáži plné harampádí, až když je pozdě. Ptejte se na to nahlas.

Údržba je práce, která nekončí

Software nestojí na místě, i když ho vy neměníte. Mění se svět kolem něj. A na ten musí někdo reagovat.

  • Aktualizace knihoven. Každá aplikace stojí na desítkách cizích součástek. Ty se vyvíjejí, stárnou a přestávají být podporované. Když je roky neaktualizujete, nakonec je nelze aktualizovat vůbec a hrozí drahé přepisování.
  • Bezpečnostní záplaty. V softwaru se průběžně nacházejí díry. Záplata vyjde, ale sama se nenainstaluje. Neopravená známá zranitelnost je pozvánka pro útočníka.
  • Změny okolí. Prohlížeče, mobilní operační systémy i platební brány mění pravidla. Co fungovalo loni, může příští verzí iOS spadnout.
  • Opravy chyb. Žádný software není bez chyb. Otázka není jestli, ale jak rychle je opravíte, až se objeví.

Vždycky musí být jasné, kdo tohle vlastní. Buď interní člověk, nebo dodavatel se smlouvou o údržbě. Nejhorší je stav „postaral by se o to každý“, protože to v praxi znamená, že se nestará nikdo, dokud něco nespadne.

Škálování až když je potřeba

Existuje svůdná chyba: stavět od začátku systém, který zvládne milion uživatelů, když jich máte deset. Říká se tomu předčasná optimalizace a je to skvělý způsob, jak utratit peníze za problémy, které nikdy nenastanou.

Architektura pro miliony uživatelů je dražší na postavení, pomalejší na vývoj a složitější na údržbu. Brněnská restaurace, která řeší padesát objednávek denně, nepotřebuje infrastrukturu jako Rohlík. Potřebuje řešení, které dobře zvládne dnešek a má jasnou cestu, jak povyrostou, až přijde čas.

To je celé tajemství: stavte pro dnešek plus jasnou cestu dál, ne pro fantazii. Sledujte reálná čísla. Až se databáze začne potit nebo budou stránky pomalé pod náporem, teprve tehdy investujte do škálování. Tehdy už totiž víte přesně co a proč, a navíc na to vyděláváte. Optimalizovat se má to, co se měřením ukáže jako úzké hrdlo, ne to, co vypadá strašidelně na papíře.

Software jako majetek firmy

Když se software postaví poctivě a vy ho dál rozumně živíte, stane se z něj skutečný majetek. Ne náklad, ale aktivum, které se zhodnocuje. Každá další funkce staví na pevných základech, data v něm získávají na ceně a celé to zvyšuje hodnotu firmy, i kdybyste ji jednou prodávali.

Podmínka je jediná: musí to být celé vaše, přesně v tom rozsahu, který jsme rozebrali u výběru týmu. Software, ke kterému nemáte klíče, není majetek, je to pronájem, ze kterého vás můžou kdykoliv vystěhovat.

Zvládnete to sami, nebo to vezmeme my

Tímhle průvodce končí. Prošli jsme spolu cestu od otázky, jestli se vlastní software vůbec vyplatí, až po to, jak ho po letech udržet při životě. Máte teď mapu, se kterou se dá rozhodovat věcně a ptát se na správné věci.

Celé tohle se dá zvládnout svépomocí, s šikovným člověkem nebo malým týmem. A pokud radši věnujete čas svému byznysu, můžeme to vzít za vás. Stavíme přesně tak, jak tahle příručka radí: vám zůstane úplně všechno, průběh vidíte každý týden a na konci předáme čistě, bez zámků, které byste neměli v ruce. Žádný lock-in, žádné překvapení v půlce.

Jestli vám něco z průvodce sedlo na to, co zrovna řešíte, ozvěte se. Rádi to s vámi nezávazně probereme.