Vyplatí se to?¶
Tahle stránka je jiná než ostatní. Všechny předchozí popisují, jak by to fungovalo. Tahle odpovídá na otázku, jestli to má smysl stavět — a odpověď není příjemná.
Tvrdý verdikt
Pro malý tým nebo jednotlivce, který dělá několik různorodých webů ročně, se vlastní platforma v téhle podobě ekonomicky zpravidla nevyplatí.
Pokud každý klient dostane originální návrh, originální datový model a jiné integrace, postavili jste si dražší způsob zakázkového vývoje.
Nechávám to tu první a nezměkčené, protože přesně kvůli tomuhle jsem se ptal. Zbytek stránky vysvětluje, za jakých podmínek to neplatí.
Čísla¶
| položka | rozsah |
|---|---|
| první produkčně použitelná verze | 1 500–4 000 h |
| zpevnění po prvních projektech | 500–1 500 h |
| údržba ročně | 300–800 h |
| práce navíc na prvním projektu | +30 až +70 % |
| práce navíc na pozdějším projektu | 40–150 h |
| úspora na dobře opakovaném projektu | −15 až −35 % |
Při sazbě 1 200–1 600 Kč/h je to 2,5 až 8 milionů korun, než je to zralé. Bez ceny vlastního času a bez obchodního rizika.
Prototyp je samozřejmě mnohem levnější. Ale:
Prototyp nezahrnuje roky kompatibility, podporu redaktorů a řešení neúspěšných publikací.
Kdy to smysl dává¶
Ne „když uděláš dost webů". Musí platit všechno tohle najednou:
- 8–15 podobných realizací během tří až pěti let
- 60–70 % komponent a 50–70 % datového modelu se přenese beze změny základního principu
- projekty žijí aspoň čtyři roky
- po spuštění se pravidelně mění obsah, jazyky, kampaně, integrace
- jeden projekt má dnes 800–1 500 hodin práce
- chyby při publikaci mají měřitelnou cenu
- někdo platformu vlastní jako produkt — ne „udržuje, když zbude čas"
Ta poslední odrážka není administrativní detail. Je to nejčastější způsob, jak se to rozpadne.
Kdy to smysl nedává¶
- dva až čtyři vzájemně odlišné weby ročně
- běžný projekt má 200–600 hodin
- klienti kupují hlavně originální vizuál a jednorázové spuštění
- po spuštění se web skoro nemění
- každý projekt má jiné externí systémy
- platformu chceš financovat ze zakázek, ale klienti za její vývoj platit nechtějí
Velikost projektu rozhoduje víc, než jsem čekal¶
Tady jsem se spletl. Myslel jsem si, že rozhoduje životnost a četnost změn, a že velikost je vedlejší. Není:
Na web za 300–700 hodin je taková platforma obvykle ekonomický nesmysl. Režie pravidel pohltí úspory.
Zpětně je to zjevné. Režie na definici pravidel je skoro fixní — u malého projektu je poměrově vražedná, u velkého se rozpustí.
Konkrétně¶
| vhodné | jednoznačně špatné |
|---|---|
| produktový web výrobce, tisíce položek, 5–30 jazyků | firemní prezentace o 10–30 stránkách |
| deset a víc značek nebo zemí se sdílenou strukturou | jednorázová kampaň nebo microsite |
| portál s provázaným obsahem a dlouhou životností | portfolio nebo web postavený na unikátním vizuálu |
| e-shop, kde obsah vzniká z ERP, PIM, redakce a AI zároveň | malý e-shop s desítkami produktů a jedním správcem |
| franšíza nebo pobočková síť s desítkami webů | web, který se po spuštění mění párkrát ročně |
| web, který má fungovat šest až deset let | rozpočet v řádu stovek tisíc |
Co se stane u druhého, pátého a desátého projektu¶
| projekt | stejná rodina | různorodé projekty |
|---|---|---|
| druhý | 30–50 % | 15–40 % |
| pátý | 50–70 % | 15–40 % |
| desátý | 60–80 % | 15–40 % |
Všimni si pravého sloupce: u různorodých projektů se přenositelnost nezlepšuje s pořadím vůbec. Pořád 15–40 %, ať je to druhý nebo dvacátý.
Druhý projekt nebývá levnější
Často odhalí, že řešení z prvního projektu bylo jen zobecněnou podobou prvního klienta.
Část práce se vrací zpátky do platformy. Kdo čeká úsporu už u druhé zakázky, bude zklamaný a nejspíš to vzdá dřív, než se to vrátí.
A test, jestli to selhalo:
Pokud desátý projekt stále vyžaduje víc než 40 % nových komponent nebo zásahy do základních pravidel, produktizace selhala. Ve skutečnosti dál provozujete zakázkovou agenturu, jen s vysokou interní režií.
Jak se změní práce¶
Postup dnes a potom¶
DNES POTOM
grafik navrhne v Figmě vybere se podporovaný typ projektu
vývojář udělá HTML/SCSS popsat entity, vazby, vlastníky hodnot ← nové
napojí to na DB přes SQL grafik vybere tokeny a povolené varianty ← nové
naplní se obsah namapovat potřeby na hotové komponenty ← nové
hotovo doplnit jen to, co v katalogu chybí
nakonfigurovat zdroje dat a publikaci
naplnit nebo naimportovat obsah
systém ověří celý release ← nové
publikuje se konkrétní verze ← změna
další změny = nový release ← nové
Zmizí: kreslení každé stránky jako originálu, šablona pro každou konkrétní stránku, datové zkratky podle okamžité potřeby, improvizované opravy publikovaného webu — a představa, že „naplní se obsah a je hotovo".
Přibude hlavně analýza před vývojem. U malých webů tahle analýza stojí víc, než kolik později ušetří.
Kdo to odnese nejvíc¶
Čekal jsem, že grafik. Je to backendista:
Přestává být hlavně člověkem, který „napojí databázi". Musí převádět obchodní realitu do dlouhodobě platných modelů, vlastnictví dat, publikačních pravidel a kompatibility.
Backendista zvyklý rychle dodat konkrétní funkci může mít s tímhle modelem větší problém než grafik.
Rozdíl, který jsem sléval dohromady: největší profesní změna je u backendisty. Největší kulturní odpor přijde od grafika a klienta — pokud jsou zvyklí považovat každou výjimku za projev kreativity.
| role | co se mění |
|---|---|
| grafik | místo obrazovek navrhuje prostor povolených variant a hraniční stavy. Kdo dělá jedinečné kompozice, bude to vnímat jako omezení |
| frontendista | z výrobce šablon se stává správce katalogu. Rychlá lokální úprava přestává být správným řešením |
| backendista | nejvíc analýzy, komunikace a produktového rozhodování |
| redaktor | míň volnosti, víc bezpečí. Profesionální redakci to pomůže, majiteli malého webu to bude vadit |
A jedna věta, kterou stojí za to brát vážně:
Jestli malý tým nemá rád procesní disciplínu, platforma se časem rozpadne na drahou sbírku výjimek.
Jak to prodat klientovi¶
Platformu mu neprodávejte. Klient nekupuje architekturu.
Prodává se funkční první verze za dva týdny, předvídatelná cena dalších jazyků a webů, bezpečné publikování, rychlost následných kampaní a nižší závislost na konkrétním vývojáři.
Jenže první verze za dva týdny jde dodat jen tehdy, když už katalog pro jeho typ webu existuje. Když ne, jsou tři poctivé možnosti:
- klient zaplatí analýzu a pilot, ne hotový web
- investici zaplatíš sám a nabídneš standardizovaný produkt
- zakázku uděláš jednodušším postupem
Tvrdit klientovi, že současně vybudujete platformu a za dva týdny dodáte plnohodnotný individuální web, znamená buď dotovat projekt, nebo lhát o rozsahu.
Největší riziko¶
Není technické.
Největší riziko není vývojová složitost. Je to nedostatečné opakování.
Agentura si obvykle namlouvá, že projekty jsou si podobné, protože všechny mají články, produkty a bannery. Ekonomicky ale rozhoduje, zda lze znovu použít hotovou část bez změny jejích pravidel.
Jakmile se „znovupoužitelná" komponenta pro každého klienta upravuje, úspora mizí a roste cena podpory všech variant.
Tři věci, které v té odpovědi neobstály¶
Odhad hodin je nejspíš pro chudší platformu¶
1 500–4 000 hodin je odhad pro „vlastní platformu" obecně. Tahle má za sebou dvanáct kol návrhu a je nad průměrem: generace a atomická validace cache, neměnné revize s manifesty, autorita pole se čtyřmi reprezentacemi, mandáty agentů, migrace živých kořenů.
A účet Z říká, že jen invalidace potřebuje testovací aparát velikostí srovnatelný se samotným mechanismem.
Buď je odhad nízký, nebo počítá s výrazně jednodušší implementací. Obojí posouvá bilanci k horšímu.
Rozhodující číslo se dá zjistit levněji, než odpověď říká¶
Za největší neznámou označuje procento skutečně opakovatelné práce a dodává, že bez dat z pěti až deseti minulých projektů je návratnost jen hypotéza.
Ale existuje levná cesta: projít zpětně už hotové projekty a spočítat, kolik z toho, co se dělalo znovu, bylo strukturálně totéž. To je jediná věc, která jde udělat před rozhodnutím a která ho zásadně zpřesní.
Ústupová varianta není menší verze téhož¶
Závěr nabízí: použít existující systém a investovat jen do omezeného katalogu komponent.
Jenže celá tahle dokumentace stojí na vlastnostech, které existují jenom když platforma vlastní celý řetězec. Invalidace podle závislostí potřebuje kontrakty komponent. Release potřebuje připnutý renderer. Autorita nad polem potřebuje zápisovou cestu.
Katalog komponent nad cizím CMS nedá ani jednu z nich. Je to jiná věc, ne skromnější verze téže věci — a tohle v odpovědi nezaznělo.
Doplněk: co na to říká praxe¶
Po první verzi téhle stránky přišly dvě zkušenosti z terénu, které tu analýzu posunuly. Proběhlo k nim další kolo a jeho závěr je konkrétnější než ten předchozí.
Dvouletý cyklus¶
Firmy, které mají peníze, berou web jako spotřební zboží: po dvou letech kompletní redesign — a u jiné agentury. Přitom to bývá strukturálně přesně ten typ klienta, pro který má být platforma vhodná: výrobce, rozsáhlý katalog, hodně jazyků.
Ptal jsem se technicky: přežije to platforma, když je design systém verzovaný artefakt? To byla špatná otázka. Odpověď je jinde:
Nová agentura má přirozenou motivaci zavést svůj stack. Platforma redesign přežije jen tehdy, když patří do provozní architektury klienta, ne do dodávky webu.
A test na konkrétní firmu je jedna věta: používá strukturovaný katalog a překlady ještě někde jinde než na aktuálním webu? Pokud ne, dvouletý cyklus ji vylučuje. Pokud ano, neprodává se to jako webová platforma, ale jako produktová a publikační infrastruktura firmy.
E-shop není totéž co e-shopová platforma¶
Dlouhověký e-commerce podnik ano. Stavba vlastní e-shopové platformy ne.
Patnáct let starý e-shop dokazuje, že obchodní provoz je dlouhověký. Nedokazuje, že zákazník chce vlastní technickou platformu.
Aby vlastní platforma v tom segmentu vůbec soutěžila, musela by umět košík, checkout, platby a refundace, dopravy a výdejní místa, objednávky, storna a vratky, daně a fakturaci, B2B ceníky a schvalování, slevy a jejich kombinovatelnost, fulltext a merchandising, feedy, fraud a audit — šestnáct oblastí.
To není „obsahová platforma plus košík". Je to několikanásobně větší produkt s výrazně vyšším provozním rizikem.
Celá tahle dokumentace přitom popisuje jen tu obsahovou část. Odhad 1 500–4 000 hodin je odhad poloviny problému.
Nekupuje se to, co to umí¶
Formulace provozovatele e-shopu: „rozhoduje spousta jiných funkcí uvnitř než naše aktuálnost stavu dat." Odpověď to potvrdila bez okolků:
Konzistence dat se neprodává. Je to mechanismus, ne nákupní důvod.
Pokud klient nemá měřitelný problém s rychlostí změn, více kanály, regulací nebo drahými chybami, produkt nekoupí. A správně.
Prodat jde čas a cena chyb: nový trh za tři týdny místo čtyř měsíců · změna parametru bezpečně do dvanácti zemí a pěti kanálů · redesign nebude vyžadovat migraci katalogu · při chybě vrátíme celou změnovou sadu, ne jednotlivé stránky.
A balast? Nic ho nezastaví¶
Tohle je nejtvrdší odpověď z celé debaty. Zeptal jsem se, co zaručí, že se za deset let nenashromáždí znovu tolik výjimek, že systém zabijí:
Nic to nezaručí. Balast je převážně problém řízení změn a obchodních rozhodnutí, jen částečně technologie.
Pokud každý obchodně důležitý zákazník dostane svou výjimku a produktový vlastník nemůže říct ne, systém za deset let znovu shnije. Modulární architektura pouze zařídí, že bude hnít v přehlednějších adresářích.
Tím padá největší nevyslovený slib celého návrhu. Deklarované závislosti, typované vazby a capability zabrání technickému nepořádku. Nezabrání tomu, aby se výjimky nakupily — protože ty nevznikají z technických důvodů.
Obrana existuje, ale je provozní, ne technická: každá výjimka má vlastníka, důvod, cenu a datum revize; „dočasné" řešení má datum odstranění; klient platí i budoucí náklad výjimky; někdo má právo požadavek odmítnout.
Menší varianta, která přežije obojí¶
Verdikt kola 13:
Nestavět platformu — postavit řídicí vrstvu
Obecnou webovou ani e-shopovou platformu ne. Úzkou, přenositelnou vrstvu pro správu produktových a obsahových dat nad existujícím CMS, PIM a e-commerce enginem ano.
Osm součástí:
| co to je | |
|---|---|
| 1 | registr datových kontraktů — entity, pole, validace, jazyky, vztahy |
| 2 | matice vlastnictví hodnot — ERP, PIM, redakce, dodavatel, AI |
| 3 | změnové sady s náhledem, schválením a návratem |
| 4 | graf závislostí — co změna ovlivní, které weby, jazyky, kanály |
| 5 | validační brána před publikací |
| 6 | lokalizační workflow včetně zastaralých překladů |
| 7 | vyměnitelné adaptéry — model není svázaný s jedním frontendem |
| 8 | audit a provozní přehled |
Pod tím běží existující systémy. Vlastní hodnota je v pravidlech mezi nimi, ne v jejich náhradě.
Ale je poctivé říct, co se tím ztratí
Není to menší verze téhle dokumentace. Je to jiná podmnožina.
| rozhodnutí | přežije? |
|---|---|
| autorita nad polem | ✅ je to bod 2 |
| revize, changesety, release | ✅ bod 3 |
| migrace živých kořenů | ✅ |
| graf závislostí | ⚠️ jako přehled dopadu, ne jako invalidace cache |
| invalidace podle deklarovaných závislostí | ❌ potřebuje kontrakty komponent a render path |
| omezené dotazy s capability | ❌ dotazuje se cizí systém |
| release připínající vizuál | ❌ renderer není tvůj |
Ze šesti architektonických rozhodnutí přežijí zhruba tři. Scénáře 1, 3 a 5 z téhle dokumentace ano. Scénáře 2 a 4 — noční import a redesign měnící loňskou stránku — ne.
Tři důkazy, bez kterých do toho nejít¶
Pokud chybí druhý bod, je to zakázkové řešení. Pokud chybí první, je to interní nástroj. Pokud chybí třetí, je to technologická záliba, ne produkt.
- konkrétní klient za tu vrstvu zaplatí
- dva další dostupní klienti mají tentýž problém — ne seznam firem, ale dvě tři, se kterými to jde ověřit
- přínos jde vyjádřit penězi nebo dobou uvedení změny na trh
Jak začít¶
Konkrétní e-shop jako placený design partner — ne zakázka, ne obecný produkt.
Do společného jádra dejte jen schopnosti, které dokážete pojmenovat bez názvu klienta. (…) Za produktovou schopnost považujte něco až po druhém nezávislém použití. (…) První klient musí zaplatit hodnotu, kterou dostane on. Neměl by financovat celý váš budoucí produkt skrytě v ceně zakázky.
Co si z toho odnést¶
Návrh je technicky v pořádku. Po dvanácti kolech v něm není žádná známá díra ve správnosti a u každého rozhodnutí je dohledatelné, co stálo.
Obchodně to ale není nástroj agentury a není to ani celá platforma. Je to řídicí vrstva nad systémy, které už existují — a ta je dost úzká, aby ji malý tým zvládl, a dost oddělená, aby přežila redesign i výměnu e-shopového enginu.
Takže než cokoli dalšího:
- Projít zpětně poslední projekty a zjistit, kolik z nich bylo opravdu strukturálně stejné. Bez toho čísla je všechno ostatní hádání.
- Ověřit ty tři důkazy — zvlášť druhý, protože bez něj je to zakázka, ne produkt.
- Teprve potom se ptát, co postavit — a nejspíš to bude těch osm součástí, ne tahle dokumentace celá.
A varianta, kterou je poctivé nechat na stole: nestavět nic. Přečíst si tohle jako dobře prozkoumaný návrh a použít z něj jednotlivé myšlenky tam, kde se hodí — autoritu nad polem, release místo publikování stránky, graf dopadu změny. Každá z nich dává smysl i samostatně a žádná nevyžaduje vlastní platformu.