Máte nápad na softwarovou službu, za kterou by firmy platily předplatné? Tady je cesta od nápadu k produktu — od MVP a validace přes architekturu pro růst až po ceny a provoz.
Nápad na softwarovou službu vzniká obvykle z vlastní bolesti — něco řešíte v Excelu, přes deset nástrojů nebo ručně a napadne vás, že totéž trápí i další firmy. Mezi tímto okamžikem a produktem, za který vám lidé platí měsíční předplatné, je ale pořádný kus cesty. SaaS (software as a service) není jednorázová aplikace, kterou odevzdáte a zapomenete. Je to živý produkt, který běží nonstop, získává nové zákazníky, mění se podle zpětné vazby a musí být spolehlivý, protože na něj spoléhá cizí byznys.
To má dva důsledky. Za prvé, nemá smysl na začátku postavit „všechno“ — většinu funkcí, které si dnes představujete, zákazníci nebudou potřebovat tak, jak čekáte. Za druhé, od prvního dne stavíte základ, na kterém se bude ještě roky přidávat, proto se vyplatí promyslet architekturu a technologie tak, aby vydržely růst. V tomto článku projdeme celou cestu: od minimální verze přes validaci poptávky, návrh na škálování a multitenancy až po ceny, předplatné a provoz.
MVP (minimum viable product) je nejmenší verze produktu, která už řeší jednu konkrétní bolest dost dobře na to, aby za ni byl někdo ochoten zaplatit. Není to „poloviční produkt“ ani prototyp na vyhození — je to plnohodnotné, ale úzce zaměřené řešení. Cílem není zapůsobit množstvím funkcí, ale co nejrychleji se dostat k reálným uživatelům a učit se od nich.
Dobré MVP se dá postavit za týdny, ne roky. Pokud někdo slibuje kompletní SaaS „na jeden zátah“, pravděpodobně stavíte příliš mnoho naráz. To, zda se vůbec vyplatí jít do vlastního vývoje místo skládání z hotových nástrojů, rozebíráme v článku Kdy se vyplatí vývoj na míru.
Nejdražší chyba u SaaS není špatný kód — je to postavit dokonalý produkt, který nikdo nechce. Proto validace běží paralelně s vývojem, ne až po něm. Cílem je co nejlevněji zjistit, zda lidé mají problém, který řešíte, zda ho mají dost silně na to, aby za něj platili, a zda vaše řešení sedí.
Praktické kroky: mluvte s desítkami potenciálních zákazníků ještě před prvním řádkem kódu. Postavte jednoduchou landing page a změřte, kolik lidí se zaregistruje o přístup. Nabídněte MVP prvním uživatelům za symbolickou cenu nebo zdarma výměnou za zpětnou vazbu — ale cílem je co nejdříve se dopracovat ke skutečné platbě, protože peníze jsou jediný spolehlivý důkaz, že hodnotu opravdu vidí. Sledujte, zda se uživatelé vracejí (retence); produkt, který lidé vyzkoušejí a odejdou, nemá smysl škálovat. Validace vám navíc ušetří peníze — každou funkci, kterou díky ní nepostavíte, jste nemuseli zaplatit.
SaaS znamená, že jednu aplikaci sdílí množství zákazníků. To přináší otázku, která zásadně ovlivní celý další vývoj: jak oddělit data jednotlivých firem. Říká se tomu multitenancy a možností je víc.
Volbu netřeba dogmaticky přehnat na začátku, ale je třeba ji udělat vědomě — měnit ji později je drahé. Kromě multitenancy myslete na to, co se při růstu stává úzkým hrdlem: databázi (indexy, pomalé dotazy), úlohy na pozadí (maily, generování reportů, importy) a stav aplikace, který by měl být oddělen tak, abyste mohli spustit více instancí naráz. Nemusíte hned stavět pro milion uživatelů — musíte to však postavit tak, abyste se k větší zátěži dokázali dopracovat bez přepisování od nuly. K tomu patří i oddělení kódu od konfigurace a dat, aby bylo nasazování nových verzí bezpečné a časté.
Cenový model je součást produktu, ne účetní formalita na konec. U SaaS je základ opakované předplatné (měsíční nebo roční), ale důležité je, za co přesně platí zákazník a jak cena roste s hodnotou, kterou dostává.
Doporučujeme začít jednoduše — jeden až tři balíčky — a ceny ladit podle reality, ne tabulky na začátku. Myslete na zkušební dobu nebo verzi zdarma jako na nástroj získávání zákazníků, na roční platby, které zlepšují cash flow, a na to, že zvýšit cenu je vždy těžší než ji snížit — raději nezačínejte příliš levně. Technicky za tím stojí napojení na platební bránu, fakturace, správa předplatného a řešení neúspěšných plateb; to vše je součást produktu od první platící firmy.
U SaaS prodáváte kromě funkcí i spolehlivost. Když vaše služba spadne, stojí to byznys vašich zákazníků — a to je úplně jiná zodpovědnost než u jednorázové aplikace. Proto provoz není detail na konec, ale součást produktu od začátku.
Patří sem stabilní hosting, který snese růst, automatické nasazování nových verzí bez výpadku, monitoring a upozornění dřív, než problém nahlásí zákazník, a hlavně zálohy a plán obnovy — u cizích dat je ztráta dat to nejhorší, co se může stát. Sem patří i bezpečnost: šifrování, řízení přístupů a oddělení dat zákazníků. Většinu tohoto umíme pokrýt službou hosting a DevOps, abyste se vy mohli soustředit na produkt, ne na servery. Dobrá zpráva je, že poctivě postavený SaaS se dá provozovat bez velkého týmu — klíčem je automatizace a promyšlená architektura, o které jsme mluvili výše.
Cesta od nápadu k předplatitelnému SaaS je série rozhodnutí — co postavit nejdřív, jak to ověřit, jak to navrhnout na růst a jak to provozovat. Nemusíte je dělat sami. Řekněte nám, co máte v hlavě, a navrhneme realistický první krok — obvykle MVP, které co nejdřív dostaneme k reálným uživatelům, a základ, na kterém se dá bezpečně stavět dál. Pokud chcete vidět, zda se vlastní vývoj ve vašem případě vyplatí, začněte softwarem na míru a ozvěte se přes nezávaznou konzultaci.
Dobré MVP se dá postavit za týdny, ne roky, pokud se zaměříte na jediný hlavní scénář a odložíte doplňkové funkce. Cílem je co nejdříve se dostat k reálným uživatelům a učit se od nich.
Multitenancy je způsob, jakým jedna aplikace odděluje data různých zákazníků. Volbu je třeba udělat vědomě hned na začátku, protože měnit ji později je drahé a ovlivňuje celý další vývoj i bezpečnost.
Nejčastěji fungují balíčky (tiers) s různými funkcemi a limity, případně cena za uživatele nebo za využití. Doporučujeme začít jednoduše s jedním až třemi balíčky a ceny ladit podle reality, ne tabulky na začátku.
Ozvěte se a do pár dní máte návrh řešení i s časovým plánem. Bez závazků, bez řečí okolo.