Platforma: najnepochopenejšie slovo v organizáciách
Problém
CTO oznámi „platformovú iniciatívu“. John, senior inžinier, očakáva vyššiu efektivitu zo zdieľaných nástrojov. Sarah z financií očakáva vyššie výnosy. O šesť mesiacov nie je spokojný nikto. John namiesto plynulejšej práce rieši mätúce metriky adopcie. Sarah sa pýta, kde je sľubovaný rast. Tímy sa sťažujú, že čakajú vo frontoch.
Každý zvaľuje vinu na každého. Lenže skutočný problém vznikol už na tom prvom stretnutí: traja ľudia počuli slovo „platforma“ a každý si pod ním predstavil niečo úplne iné. Tento zmätok premrhá milióny v zle alokovaných investíciách a vytvorí štrukturálne problémy, ktoré pretrvajú celé roky.
Dva úplne odlišné svety
Slovo „platforma“ označuje dve úplne odlišné veci. Majú spoločný názov, ale nič iné.
Externá platforma: produkt.
Ekonómovia definujú platformy ako dvojstranné trhy, ktoré prepájajú odlišné skupiny používateľov so sieťovými efektmi (network effects) (Rochet & Tirole, 2003). Uber prepája vodičov a cestujúcich. Airbnb prepája hostiteľov a hostí. Viac vodičov znamená kratšie čakanie, čo priláka viac cestujúcich, čo zasa priláka viac vodičov. Hodnota rastie s adopciou.
AWS a Azure podľa tejto definície NIE SÚ platformy. Sú to produkty. Keď používate AWS, jeho hodnota nestúpne tým, že AWS používa aj iná firma. Neexistuje žiaden krížový sieťový efekt, ktorý by prepájal odlišné skupiny používateľov. Parker, Van Alstyne & Choudary (2016) tento rozdiel pomenúvajú výslovne: infraštruktúra predávaná zákazníkom je produkt, nie platforma. AWS Marketplace má znaky platformy (prepája predávajúcich a kupujúcich), ale samotné jadro výpočtových a úložných služieb sú len produkty, ktoré si kúpite.
Externé platformy sú produkty so sieťovými efektmi. Úspech poháňa vývoj produktu: súlad s trhom, získavanie používateľov, sieťové efekty a rast tržieb. Meriate product-market fit (súlad produktu s trhom), retenciu, celoživotnú hodnotu zákazníka a tempo rastu.
Interná platforma: zdieľaná služba.
Vnútri organizácií „platforma“ zvyčajne označuje centralizovaný tím, od ktorého závisia iné tímy: napríklad CI/CD, dátová infraštruktúra, CRM alebo ERP. Toto nie sú produkty. Neprepájajú externé skupiny. Nemajú sieťové efekty. Nazývať ich „platformami“ znamená požičať si pojem bez jeho ekonomiky.
Predstavte si Sama, inžiniera, ktorý každý týždeň trávi hodiny čakaním vo fronte tiketov. Centralizovaný tím je úzke hrdlo. Sam sa nevie pohnúť samostatne. Toto je problém blokovania, ktorý ničí interné platformy.
Interné platformy sú zdieľané služby. Úspech stojí na troch kritériách: dobrovoľná adopcia, neblokujúce dodávanie a úspora nákladov. Meriate čakaciu dobu, podiel samoobsluhy a skutočné náklady oproti decentralizovanej alternatíve.
| Externá platforma | Interná platforma | |
|---|---|---|
| Čo to je | Produkt prepájajúci externé skupiny | Zdieľaná služba pre interné tímy |
| Čo poháňa ekonomiku | Sieťové efekty (Rochet & Tirole) | Interná ekonomika |
| Kritériá úspechu | Súlad s trhom, rast, tržby | Adopcia, neblokovanie, úspora nákladov |
| Spôsob zlyhania | Žiadne sieťové efekty, žiadny rast | Fronty, cena oneskorenia, premrhané zdroje |
| Príklady | Uber, Airbnb, iOS App Store | Tím CI/CD, dátová platforma, tím CRM |
Tento text sa venuje len interným platformám. Externé platformy (produkty so sieťovými efektmi) sú celkom iná disciplína.
Naprieč celým textom používam „interná platforma“, nie „zdieľaná služba“. Pridať ďalší pojem by zmätok len zväčšilo.
Tri kritériá
Interná platforma vytvára hodnotu len vtedy, keď platia VŠETKY tri kritériá:
- Adopcia: tímy ju naozaj používajú dobrovoľne (nie preto, že je nariadená)
- Neblokovanie: nulová čakacia doba (samoobsluha pre 95 % a viac požiadaviek)
- Interná ekonomika: existuje skutočná úspora nákladov (nie špekulatívne „raz sa to vráti“)
Ak zlyhá čo i len jedno, platforma hodnotu ničí:
- Vysoká adopcia + neblokovanie, ale zlá ekonomika = vyhodené peniaze
- Dobrá ekonomika + neblokovanie, ale nízka adopcia = nikto to nepoužíva
- Vysoká adopcia + dobrá ekonomika, ale blokovanie = cena oneskorenia zožerie celú úsporu
Tri kritériá meriate priamo:
| Kritérium | Metrika | Cieľ |
|---|---|---|
| Adopcia | Miera dobrovoľného používania (bez nariadení) | viac ako 80 % oprávnených tímov |
| Neblokovanie | Podiel samoobsluhy (bez človeka v procese) | viac ako 95 % požiadaviek |
| Ekonomika | Skutočná úspora nákladov oproti decentralizovanej alternatíve | Kladná a merateľná |
Ak nedokážete preukázať všetky tri kritériá so skutočnými číslami, ste buď v prechodnej fáze (prijateľné), alebo plytváte zdrojmi (neprijateľné).
Príklady
Spotify (zlyhanie). Zdieľaná infraštruktúra obsluhujúca vyše 100 squadov vytvárala fronty (Lee, 2020). Squady čakali týždne. Skúšali prerozdeľovať zdroje, zaviedli nové postupy plánovania a lepšie prioritizovanie. Nepomohlo nič. Vízia infraštruktúrneho tímu sa nezhodovala s tým, čo squady naozaj potrebovali. Cena oneskorenia sa nabaľuje do obrovských škôd pre celú organizáciu. Tie fronty neboli „bolesti rastu“. Bolo to zlyhanie.
Netflix (úspech). Centralizované platformové tímy fungujú, lebo masívne investujú do samoobsluhy. Produktoví inžinieri vymenia flexibilitu za to, že o tretej ráno nemusia riešiť infraštruktúru.
Čo sa stane bez centralizácie
Decentralizácia má reálne náklady: zdvojená práca, nekonzistentné implementácie, znalostné ostrovy (silos), peklo koordinácie aktualizácií, junior inžinieri topiaci sa v neznámej infraštruktúre.
Lenže tu je tá nepríjemná pravda: decentralizovaný chaos s nulovým čakaním je často lepší než elegantná centralizácia s frontmi. Náklady decentralizácie sú konštantné. Cena oneskorenia sa nabaľuje.
Otázka znie: dokážete centralizovať BEZ toho, aby ste vytvorili blokujúce závislosti? Ak áno, centralizujte. Ak nie, zmierte sa s nákladmi decentralizácie. Blokujúca interná platforma je horšia než žiadna interná platforma.
Kritérium neblokovania
Interné platformy dokážu vytvoriť páku: keď tím CI/CD zlepší časy buildov o 30 %, profituje z toho každý tím naraz.
Lenže páka existuje len vtedy, keď je služba neblokujúca. Ak produktové tímy čakajú vo frontoch, cena oneskorenia tú páku zničí. Kingmanov vzorec ukazuje, prečo: čakacia doba rastie exponenciálne, ako stúpa využitie kapacity. Pri 80 % využití spôsobí už malá variabilita citeľné oneskorenia. Pri 90 % oneskorenia vybuchnú. Vynásobte to viacerými blokujúcimi službami a dostanete viactýždňové dodacie doby pri práci, ktorá by mala trvať pár dní.
Toto kritérium je binárne. Je to neblokujúce? Ak áno, centralizácia môže vytvárať hodnotu. Ak nie, centralizácia hodnotu ničí. Neexistuje žiadna „prijateľná dĺžka frontu“. Akékoľvek čakanie sa nabaľuje.
Kedy to dokážete spraviť neblokujúce?
| Faktor | Neblokujúca centralizácia je možná | Radšej decentralizujte |
|---|---|---|
| Vzorce požiadaviek | Predvídateľné, automatizovateľné | Veľmi premenlivé, vyžadujú ľudský úsudok |
| Investícia do samoobsluhy | Viacročný vývoj platformy je financovateľný | Na nástroje pre samoobsluhu nie sú peniaze |
| Potreba prispôsobenia | Nízka (jedno riešenie sadne väčšine) | Vysoká (každý tím potrebuje inú konfiguráciu) |
| Regulatórne požiadavky | Štandardizácia je aj tak povinná | Flexibilita je prijateľná |
Ak to nedokážete spraviť neblokujúce, decentralizujte. Náklady decentralizácie (duplicita, nekonzistencia) sú reálne, ale nenabaľujú sa tak ako náklady oneskorenia.
Ťažké problémy
Aj neblokujúce služby vytvárajú cenu oneskorenia, keď nútia produktové tímy preberať zmeny. Každá migrácia, ktorú im vnútite, je oneskorenie. Každá nekompatibilná zmena je oneskorenie. Každá bezpečnostná aktualizácia, ktorú nariadite, je oneskorenie (niekedy nevyhnutné, ale nikdy nie zadarmo).
Najlepšie platformy sú nudné a stabilné, nie neustále sa zlepšujúce. Každá zmena, ktorú vytlačíte von, je daňou, ktorá zaťažuje dodávanie produktu.
Kedy interné platformy dávajú zmysel
Centralizujte LEN vtedy, keď dokážete naplniť všetky tri kritériá:
| Otázka | Ak áno | Ak nie |
|---|---|---|
| Prijmú to tímy dobrovoľne? | Pokračujte | Nestavajte (alebo opravte hodnotovú ponuku) |
| Dokážete to spraviť neblokujúce? | Pokračujte | Necentralizujte; radšej decentralizujte |
| Sedí ekonomika? | Pokračujte | Nestavajte (je to plytvanie) |
Centralizujte, keď je dosiahnuteľná samoobsluha pre 95 % a viac požiadaviek, schopnosť je stabilná, existuje skutočná a merateľná úspora nákladov a máte kapacitu vybudovať poriadnu samoobsluhu.
Necentralizujte, keď to tímy dobrovoľne neprijmú (služba nie je dosť dobrá), nedokážete to spraviť neblokujúce, úspora nákladov je len špekulatívna alebo sa požiadavky menia rýchlejšie, než sa stíha samoobsluha vyvíjať.
Niekedy je centralizácia vynútená bez ohľadu na preferencie: regulatórne oddelenie právomocí, zmluvné SLA, audítorské požiadavky, bezpečnostné nástroje pre celú organizáciu. V regulovaných odvetviach vynucuje dodržiavanie predpisov centralizované modely bez ohľadu na to, čo je teoreticky optimálne pre tok.
Hybridné modely (prechodové stratégie)
Každý model nižšie funguje len vtedy, keď je neblokujúci. Sú to spôsoby, AKO SA DOSTAŤ k neblokovaniu, nie alternatívy k nemu.
| Model | Ako dosahuje neblokovanie | Funguje, keď | Zlyháva, keď |
|---|---|---|---|
| Tenká platforma | Stabilné abstrakcie; produktové tímy vlastnia všetko nad nimi | Abstrakcie sú naozaj stabilné | Požiadavky sa menia rýchlejšie, než sa vyvíja abstrakcia |
| Vložení špecialisti | Infraštruktúrni inžinieri sedia s produktovými tímami, koordinujú sa cez gildu | Je dosť špecialistov na vloženie (1 na 2–3 tímy) | Nedá sa najať dosť ľudí; gilda stratí zuby |
| Zlatá cesta | Odporúčaná podporovaná cesta; tímy, čo sa odchýlia, vlastnia svoju zložitosť | Dá sa investovať do toho, aby bola cesta výborná | Cesta nie je dobrá; tímy sa odchyľujú, lebo je zlá |
| Samoobsluha + mantinely | Automatizované nástroje so vstavanou kontrolou súladu; ľudia len pri výnimkách | 80 % a viac požiadaviek sadne do štandardných vzorcov | Výnimky sú v skutočnosti 50 % požiadaviek |
Väčšina organizácií modely mieša. Mix sa vyvíja. Čo sa nemení: blokovanie je neprijateľné.
Interné platformové tímy už máte
Posúďte ich podľa troch kritérií. Ak čo i len jedno zlyhá, ste v prechodnej fáze (alebo by ste mali byť).
Nízka adopcia znamená, že služba nie je dosť dobrá. Buď ju dramaticky zlepšite, alebo zrušte. Nariadiť používanie problém len zakryje, neopraví ho.
Blokovanie znamená, že musíte agresívne investovať do samoobsluhy (viacročne, ako hlavné zameranie). Ak to nedokážete spraviť neblokujúce do 12 mesiacov, schopnosť decentralizujte alebo službu zrušte.
Zlá ekonomika znamená, že si musíte poctivo spočítať čísla. Zarátajte aj náklady na koordináciu, náklady frontov a bremeno migrácií, ktoré padá na produktové tímy. Ak čísla nesedia, službu zrušte.
Jediná možnosť, ktorá neexistuje: „Nechajme to tak, lebo to prináša hodnotu, ktorú nevieme zmerať.“ Ak hodnotu neviete zmerať, pravdepodobne neexistuje.
Ako majú interné platformové tímy fungovať
Ak vediete interný platformový tím, vašou jedinou úlohou je byť neblokujúci. Sústreďte sa na čas do prvého „hello world“: ako rýchlo dokáže nový tím začať používať vašu službu?
Samoobsluha je na prvom mieste. Každá požiadavka, ktorá vyžaduje zásah človeka, je zlyhanie. Investujte do nástrojov pre samoobsluhu skôr než do funkcií, skôr než do vylepšení, skôr než do čohokoľvek iného. Mierte na 95 % a viac automatizovaných požiadaviek.
Stabilita je na druhom mieste. Každá zmena, ktorú vytlačíte na produktové tímy, im vytvorí cenu oneskorenia. Minimalizujte migrácie, nekompatibilné zmeny a vynútené aktualizácie. Najlepšia platforma je tá, na ktorej existenciu tímy zabudnú.
Merajte čakaciu dobu (cieľ: minimálna), podiel samoobsluhy (cieľ: 95 % a viac) a bremeno zmien dopadajúce na produktové tímy (cieľ: klesajúce). Nemerajte spokojnosť; uväznení používatelia si na čakanie zvyknú ako na normu.
Stanovte si prah na zrušenie. Ak čakacia doba prekročí X dní alebo samoobsluha klesne pod Y %, schopnosť decentralizujte alebo službu zrušte. Bez tohto prahu si blokujúcu službu necháte, „lebo prináša hodnotu“ (neprináša).
Zhrnutie
Interná platforma vytvára hodnotu len vtedy, keď platia všetky tri kritériá:
| Kritérium | Test | Ak zlyhá |
|---|---|---|
| Adopcia | Tímy ju používajú dobrovoľne, nie z nariadenia | Služba je zbytočná; zrušte ju |
| Neblokovanie | 95 % a viac samoobsluhy, nulová čakacia doba | Cena oneskorenia zožerie každú úsporu |
| Interná ekonomika | Skutočná, merateľná úspora nákladov | Služba je vyhodené peniaze |
Ak čo i len jedno zlyhá, buď to opravte, alebo službu zrušte.
Cieľový stav je jednoduchý: tímy dobrovoľne používajú neblokujúcu službu, ktorá šetrí peniaze. Ak tam ešte nie ste, buď k tomu smerujete, alebo plytváte zdrojmi.
Zdroje
Ekonómia platforiem:
- Rochet, J.C. & Tirole, J. (2003). Platform Competition in Two-Sided Markets. Journal of the European Economic Association, 1(4), 990–1029.
- Parker, Van Alstyne & Choudary: Platform Revolution (2016)
- HBR: Pipelines, Platforms, and the New Rules of Strategy
Organization Design:
- Martin Fowler: How Platform Teams Get Stuff Done
- Conway, M. (1968). How Do Committees Invent? Datamation, 14(4), 28–31.
- Pragmatic Engineer: Profit Centers vs Cost Centers
- Jeremiah Lee: Failed Squad Goals (kritika Spotify)