modernizacjasystemyfinansowe567.keystonescope.com
Briefing@modernizacjasystemyfinansowe567

Larry Page o danych, skalowalności i budowaniu produktów, które rosną

13 min read

Gdy wracam myślami do historii i tego, jak Larry Page mówił o danych, skalowalności i o tym, co właściwie znaczy „budować produkt, który rośnie”, czuję w środku lekkie ukłucie niepewności. Nie dlatego, że to są jakieś filozoficzne hasła. Tylko dlatego, że te rzeczy da się sprawdzić w praktyce, a sprawdzają się bezlitośnie. Dobre intencje nie wystarczają, gdy system ma obsłużyć więcej zapytań, więcej użytkowników, więcej wersji produktu i więcej sposobów, w jakie świat potrafi zepsuć plan.

O danych Page myśli w sposób, który jest jednocześnie prosty i straszny. Prosty, bo sprowadza się do mechaniki: dane nie są ozdobą, dane są paliwem i formą kontroli jakości. Straszny, bo jeśli dane są słabe, to wszystko, co zbudujesz na ich wierzchu, zacznie się sypać w odpowiednim momencie, najczęściej wtedy, gdy przyjdzie ruch.

Poniżej rozkładam na czynniki to podejście: co z niego wynika dla zespołów produktowych i inżynieryjnych, gdzie zwykle ludzie robią błędy, i jak wygląda zdrowa ostrożność, kiedy zależy ci na skali. Skupię się na ideach kojarzonych z Larrym Page’em, ale opiszę je tak, jak przeżyłem to na własnej skórze przy systemach, które miały rosnąć szybciej, niż przewidywał budżet i harmonogram.

Dane jako instrument podejmowania decyzji, nie dekoracja

W wielu firmach dane istnieją, ale są trochę jak zapas w magazynie: trzymane na wypadek, że ktoś będzie chciał je obejrzeć. Tylko że przy rozwoju produktu rzadko wygrywa ten, kto ma najwięcej plików w folderach. Wygrywa ten, kto wie, jakie dane coś mierzą, co dokładnie sygnalizują i jak szybko da się z nich wyciągnąć decyzję.

Podejście Page’a do danych, rozumiane praktycznie, brzmi mniej więcej tak: jeżeli nie wiesz, jak zmierzyć jakość, to nie masz jakości, masz życzenia. To jest twarde zdanie, bo w świecie produktu jakość bywa subiektywna, a metryki potrafią oszukać. Ale im większa skala, tym mniej miejsca na „wydaje mi się”. W pewnym momencie ruch rośnie tak szybko, że nawet jedna zła hipoteza zaczyna generować koszty na tygodnie do przodu.

Pamiętam moment, kiedy nasz zespół productowy uwierzył, że „użytkownik jest zadowolony”, bo oglądaliśmy tylko jeden wskaźnik. W praktyce ten wskaźnik rósł, bo malał koszt jednostkowy dotarcia do treści, a nie dlatego, że treść stawała się lepsza. Dopiero gdy zestawiliśmy sygnały z różnych miejsc w ścieżce użytkownika, zobaczyliśmy rozjazd: mniej osób odchodziło w połowie, ale też rzadziej wracały później. To nie był dramat dzienny. To była mina odpalana z opóźnieniem. Dane nie powiedziały nam wszystkiego od razu. Powiedziały nam, że kierunek jest błędny, i trzeba było zmienić sposób myślenia o jakości.

Właśnie tu jest miejsce na ten rodzaj dyscypliny, który kojarzy się z Page’em: dane są instrumentem, który ma prowadzić do konkretnej decyzji. Nie do dyskusji. Nie do „analizy na jutro”. Do decyzji, którą da się wdrożyć i sprawdzić.

Skala jako test prawdy

Skalowalność potrafi wyglądać jak osobny temat: infrastrukturę rozliczasz z opóźnień, zespół backendowy z przepustowości, a produkt z używalności. Tylko że w praktyce skala obnaża to, czego nie widać w małej skali. W małej skali błędy są tolerowane. W dużej skali błędy stają się architekturą.

Page’owe myślenie o skalowaniu ma w tle brutalną intuicję: im większa skala, tym więcej zjawisk masz naraz. Liczba użytkowników rośnie, ale rośnie też liczba wyjątków: różne urządzenia, różne sieci, https://prawdziwy-sukces.pl/sebastian-kulczyk-sukces-pisany-odwaga/ różne zachowania. Rośnie też liczba sposobów, w jakie dane mogą być niekompletne albo opóźnione. I wreszcie, rośnie liczba decyzji, które muszą być podejmowane automatycznie, bo nie da się ich „ratować” ręcznie.

To dlatego skalowalność jest testem prawdy. To nie tylko test przepustowości, ale test spójności: czy potrafisz utrzymać jakość, gdy rośnie ilość i tempo. Czy potrafisz trenować lub aktualizować modele, parametry albo reguły, gdy wąskie gardła są wszędzie. Czy umiesz ograniczyć ryzyko regresji, gdy wersji jest więcej, a wdrożenia częstsze.

W moim doświadczeniu największą pułapką jest to, że zespół zaczyna optymalizować jeden wymiar, a ignoruje resztę. Na przykład: obniżasz opóźnienia, bo kompresujesz i cache’ujesz. Super. Tylko że cache może maskować problemy jakościowe, a decyzje produktowe zaczynają się na podstawie danych, które nie odzwierciedlają rzeczywistości. Niby wszystko działa szybciej, ale nie wiesz, czy działanie jest lepsze.

Skalowanie wymusza myślenie wielowymiarowe. I to jest powód, dla którego podejście Page’a bywa stresujące: nie daje ci ucieczki w „wydaje się”. Musisz zrozumieć system jako całość.

Jak budować produkt, który rośnie, bez udawania

Jest różnica między „produktem, który rośnie” a „produktem, który wygląda na stabilny, dopóki nie przyjdzie ruch”. Produkty, które naprawdę rosną, mają wbudowaną zdolność do adaptacji. To oznacza, że nie polegają wyłącznie na jednym modelu działania, jednym zestawie danych albo jednym sposobie skalowania.

Praktycznie to są cechy, które widzisz w codziennej pracy, nie w slajdzie:

Po pierwsze, produkt ma jasny sposób mierzenia wartości. Nie musi to być jedna metryka. Może to być zestaw sygnałów, ale musi być spójny z tym, co użytkownik odczuwa. Po drugie, system zbiera dane w sposób odporny na zmiany. Jeśli jutro zmienisz UI, a logika pomiaru się rozsypie, to nie skaluje się ani produkt, ani analityka. Po trzecie, masz mechanizmy ograniczania ryzyka wprowadzania zmian. Czasem to są testy regresji, czasem feature flagi, czasem tryby „stopniowego uderzenia”, czasem po prostu dobra kolejność wdrożeń.

Kiedy patrzysz na podejście kojarzone z Page’em, widzisz nacisk na to, żeby decyzje były podejmowane w pętli, a nie jednorazowo. W pętli. Najpierw zbierasz sygnał, potem robisz zmianę, potem mierzysz, czy działa. Dopiero potem rozlewasz zmianę szerzej.

Brzmi prosto, ale jest trudne, bo wymaga kultury. Kultura natomiast jest zawsze najtrudniejsza do „skalowania”. Zespół może zbudować automatyczne pipeline’y danych, ale jeśli ludziom brakuje rygoru w interpretacji wyników, to pipeline będzie produkował wykresy, które nikomu nie pomogą.

A teraz najlepsza część i jednocześnie najgorsza: im większa skala, tym mniej masz luksusu na intuicję. Zwykle zespół zaczyna od intuicji, potem przechodzi na metryki, a potem metryki przestają wystarczać, bo pojawiają się problemy systemowe: opóźnienia w danych, błędy w etykietach, dryf zachowań użytkowników. Produkt, który rośnie, musi umieć żyć z tą złożonością, a nie ją chować.

Dylematy: jakość danych vs tempo wdrożeń

Jest jedna rzecz, która w firmach bardzo szybko staje się polityczna. Tempo wdrożeń kontra jakość danych. Ktoś chce szybciej, bo konkurencja przyspiesza. Ktoś inny mówi, że bez porządnych danych nie zrobisz wiarygodnych decyzji.

W praktyce te rzeczy trzeba spiąć. Nie tak, żeby „jakość wygrała zawsze”, ani tak, żeby „tempo wygrało zawsze”. Spiąć to znaczy: ustalić minimalne standardy i zbudować system, który utrzymuje je automatycznie.

Jeśli nie chcesz AI-słowników i ogólników, to powiedzmy to konkretnie. Minimalne standardy jakości danych to na przykład: czy wiesz, jak wygląda kompletność logów, czy umiesz wykryć nagłe spadki sygnału, czy umiesz rozróżnić błąd w pomiarze od realnej zmiany w zachowaniu użytkowników. Tego nie da się zrobić na końcu.

W jednym projekcie mieliśmy sytuację, w której wdrożenie „tylko” zmieniło eventy analityczne, a w efekcie model dopasowywał się do nowego schematu, ale z opóźnieniem. Przez kilka dni metryki poprawiały się w sposób, który wyglądał obiecująco, a potem zaczęły się pogarszać. Wtedy zrozumieliśmy, że w pętli decyzyjnej dane nie są tylko wejściem. Są elementem produktu. Jeśli zmieniasz produkt, musisz też zmieniać sposób logowania tak, by interpretacja pozostała spójna.

I tu jest ten lęk, który towarzyszy podejściu Page’a. Bo jeśli traktujesz dane jako dodatek, a skalę jako problem infrastruktury, to w pewnym momencie odpowiedzialność spada na kogoś, kto tylko patrzy na wykresy. A wykresy nie uratują produktu, gdy logika jakości jest w rozproszeniu.

Skalowalność nie zaczyna się na serwerach

To jest zdanie, które lubię powtarzać, bo rozbraja złudzenie, że skalowanie da się „dokleić”. W prawdziwym życiu skalowalność zaczyna się w decyzjach projektowych i w tym, jak rozbijasz problem na moduły.

Skala wymusza pytania, które wcześniej brzmiały akademicko:

  • czy dane da się przeliczać przyrostowo, czy zawsze potrzebujesz pełnego przetworzenia?
  • czy algorytmy mają ograniczenia pamięciowe, które w małej skali są niewidoczne, a w dużej stają się ścianą?
  • czy masz spójność czasową, gdy eventy docierają z opóźnieniem?
  • czy możesz odtworzyć stan systemu, gdy pojawi się błąd, a nie tylko „naprawić na żywo”?

Page’owe podejście do skalowalności kojarzy się z myśleniem o systemie jako o narzędziu do zarządzania złożonością. Nie chodzi o to, żeby wszystko było idealne. Chodzi o to, żebyś nie był zdany na szczęście.

W moim zespole kiedyś usiłowaliśmy utrzymać prostą strategię „zawsze licz całość”. Na małym ruchu to była wygoda, na dużym ruchu to była katastrofa w wolnym tempie. Zaczęliśmy dopiero wtedy, gdy zespół musiał przeskalować harmonogramy, a koszty zaczęły rosnąć w sposób nie do obrony. Gdybyśmy wcześniej potraktowali skalowalność jako decyzję architektoniczną, nie musielibyśmy gasić pożaru w środku cyklu rozwojowego.

Skala jest cierpliwa. Błędy wracają i wracają, aż przestajesz udawać, że to „jednorazowe”.

Pętla uczenia się produktu: dane, testy, wdrożenie

Jeśli mam streścić „ducha” budowania produktów, które rosną, w kontekście podejścia Larry’ego Page’a do danych, to jest to pętla uczenia się produktu. Danych nie używa się raz. Używa się ich w pętli, a skalowalność tej pętli jest kluczowa.

W praktyce ta pętla musi mieć trzy elementy: pomiar, eksperyment lub test oraz wdrożenie z kontrolą ryzyka. I każdy z nich ma własne ryzyka.

Pomiar ryzykuje, że dane będą niekompletne lub zaszumione. Test ryzykuje, że wynik będzie fałszywie pozytywny, bo próbka nie odzwierciedla populacji. Wdrożenie ryzykuje, że wpływ zmiany na system i na użytkownika będzie inny niż zakładałeś.

Żeby to nie brzmiało abstrakcyjnie, podam fragment rzeczywistego problemu. Mieliśmy mechanizm eksperymentów, który zakładał, że użytkownicy są przypisani stabilnie do wariantów. Działo się to dobrze, dopóki nie zmieniły się nasze mapowania tożsamości i część użytkowników zaczęła „przechodzić” między wariantami w czasie. Statystycznie wyglądało to jak brak efektu albo efekt słabszy, niż był w rzeczywistości. To z kolei spowodowało decyzję o zatrzymaniu zmiany, mimo że jakościowo była lepsza. Dopiero gdy naprawiliśmy spójność tożsamości w danych, obraz zaczął się zgadzać.

To jest rodzaj lęku, który ma sens. Lęk przed tym, że pętla uczenia się może produkować fałszywe wnioski, jeżeli nie zadbasz o spójność.

Gdzie zwykle to się wykłada: trzy klasy błędów

Nie będę udawał, że firmy zawsze wyciągają lekcje. Większość problemów powtarza się w cyklach, bo są zakorzenione w organizacji pracy.

Najczęstsze klasy błędów, które widziałem w projektach skalujących produkt, wyglądają tak:

  1. Dane rosną szybciej niż ich znaczenie. Logujesz więcej, ale nie wiesz, co to znaczy. Wykresy zaczynają żyć własnym życiem, a decyzje stają się „pod preferencje”.
  2. Skalowalność jest traktowana jak osobny projekt. Najpierw budujesz funkcję, potem dobierasz infrastrukurę. W efekcie funkcja ma ograniczenia, których nie da się naprawić bez kosztownego refaktoru.
  3. Jakość jest mierzona po wdrożeniu. Jeśli dopiero po wypuszczeniu widzisz, że jakość spadła, to pętla uczenia się jest spóźniona. Koszt naprawy rośnie szybciej niż korzyść.

Te trzy punkty nie brzmią spektakularnie. One są niewygodne, bo w praktyce wymagają zmian w procesie, a nie tylko w kodzie.

Co robić, kiedy jest trudno: podejście oparte na kontroli

Strach w tym temacie jest zdrowy, jeśli przekładasz go na kontrolę. Kontrola nie oznacza paranoi. Kontrola oznacza: wiesz, co ma się zepsuć, i jak to zobaczysz na czas.

W praktyce bardzo pomaga podejście, w którym wdrożenie jest wydarzeniem z planem obserwacji. Nie „wrzuć na produkcję i zobaczymy”. Tylko: masz metryki, które reagują szybko na problemy, masz mechanizm rollbacku, masz ograniczenie zasięgu zmiany. I, co często niedocenione, masz jasność w zespole, kto ma odpowiedzialność, gdy coś pójdzie nie tak.

Krótka 5-elementowa checklista tego, co zwykle ratuje sytuację przy skalowaniu produktu (i co często jest odkładane „na później”):

  1. Ustal zakres danych, które uznajesz za wiarygodne, i monitoruj ich kompletność
  2. Wprowadź testy regresji jakości, nie tylko testy działania funkcjonalnego
  3. Ogranicz zasięg zmian w czasie i w populacji, zamiast wypuszczać wszystko od razu
  4. Przygotuj rollback i upewnij się, że działa w warunkach awaryjnych, nie tylko w idealnym scenariuszu
  5. Zdefiniuj szybko reagujące sygnały ostrzegawcze, które wykryją problem zanim spadnie przychód lub retencja

Jeśli to brzmi jak dużo pracy, to tak jest. Ale w skali ta praca zwykle jest mniejsza niż koszt chaotycznego gaszenia pożarów.

Liczby, które są trudne: gdy nie da się wszystkiego policzyć

W podejściu Page’a do danych jest też druga, bardziej subtelna warstwa. Dane są ważne, ale nie wszystko da się zautomatyzować. Są rzeczy, które trzeba odczuwać i interpretować jakościowo. I to jest miejsce, gdzie skalowanie testuje twoją pokorę.

Przykład: metryki mogą sugerować poprawę, ale użytkownicy zaczynają tracić zaufanie, bo problem jest jakościowy, a nie ilościowy. Na przykład: wyniki są „w przybliżeniu dobre”, ale brakuje im wiarygodności. To jest trudne do uchwycenia tylko liczbami, bo użytkownik nie zawsze potrafi nazwać przyczynę.

W takich sytuacjach warto mieć hybrydowy system oceny, z elementami jakości. Nie chodzi o to, by wrócić do ręcznego przełączania. Chodzi o to, by dane miały wspornik interpretacyjny. Skala nie zabija jakości, pod warunkiem że masz mechanizmy, które łapią to, co liczbom ucieka.

I znów, w tle jest lęk. Lęk przed tym, że przy dużej skali jakościowe sygnały są tłumione przez ilościowe. Ludzie zaczynają wierzyć w to, co mierzalne, nawet jeśli mierzalne nie odpowiada temu, co ważne.

Produkt jako system: interfejs, dane i infrastruktura jako jedno ciało

Najbardziej „Page’owe” w tym wszystkim jest to, że nie da się rozdzielić budowania produktu na kawałki bez ceny. Interfejs wpływa na zachowanie użytkownika, zachowanie wpływa na dane, dane wpływają na decyzje algorytmiczne, a decyzje algorytmiczne wpływają na kolejny ruch. To sprzężenie zwrotne działa nawet wtedy, gdy udajesz, że jest osobne.

W praktyce oznacza to, że gdy planujesz zmianę produktu, musisz zapytać nie tylko „jak będzie działać UI”, ale też „jak zmieni się skład danych” i „jak to zobaczymy w pomiarze”. To jest dokładnie ta chwila, gdy zespół albo rośnie do skali, albo się w niej gubi.

Pamiętam zmianę w sposobie wyświetlania informacji, niby kosmetyczną. Liczby na początku wyglądały świetnie. Użytkownicy klikali częściej. Dopiero po pewnym czasie okazało się, że kliki są „pustsze”, bo użytkownicy częściej trafiali na ścieżki, które kończyły się brakiem tego, czego szukali. W naszym modelu jakości klik był zbyt mocnym sygnałem, bo nie mieliśmy lepszego wglądu w satysfakcję w czasie. Gdy skalowanie przyspieszyło, te niezgodności zaczęły rosnąć jak kaskada.

To jest lekcja, która boli, bo kiedy już zobaczysz błąd, wydaje się oczywisty. A przed zobaczeniem wydaje się nieistotny.

Skąd się bierze „rosnący produkt” w organizacji

Produkty nie rosną same. Rośnie organizacja, która umie skalować uczenie się. A to wymaga ludzi, procesów i narzędzi, które są w stanie wytrzymać zmienność.

W podejściu Page’a do danych i skalowalności czuć nacisk na odpowiedzialność. Nie odpowiedzialność w sensie karania za błędy, tylko odpowiedzialność w sensie: wiesz, jak działa system, i wiesz, gdzie jest ryzyko. To sprawia, że zespoły nie mogą „przepychać problemu” do kolejnej warstwy. Kto projektuje dane, bierze odpowiedzialność za jakość. Kto pisze algorytm, bierze odpowiedzialność za interpretację. Kto buduje produkt, bierze odpowiedzialność za to, jak zachowanie użytkownika przekłada się na sygnały.

Tylko że to jest trudne, bo w organizacjach lubimy wygodę granic. Granice są potrzebne, ale jeśli stają się murami, skalowalność cierpi.

Dlaczego ten styl myślenia bywa przerażający

Szczerze? Bo on nie pozwala udawać. Możesz mieć genialny pomysł, ale jeśli dane są krzywe, skalowalność nie istnieje. Możesz mieć infrastrukturę gotową na ruch, ale jeśli nie wiesz, co mierzyć, produkt zacznie rosnąć w złą stronę. Możesz nawet mieć wszystkie elementy techniczne, ale jeśli pętla decyzyjna jest powolna, konkurencja cię wyprzedzi.

A czasem najbardziej przerażające jest to, że systemy uczą się złych nawyków. Jeśli sygnał jakości jest źle zdefiniowany, to w skali model będzie wzmacniał to, co „działa na papierze”, a psuło wrażenie użytkownika. To jest ryzyko, które nie wybucha zawsze od razu. Ono rośnie w ciszy.

Dlatego to podejście jest dla mnie po części o lęku. Nie o panice. O odpowiedzialności za to, co karmisz systemowi.

Jak wziąć te idee i nie zginąć pod ich ciężarem

Nie musisz kopiować całej historii Google ani wchodzić w wojnę o to, kto ma rację w interpretacji cytatów. Wystarczy wziąć trzy praktyczne zasady, które da się zastosować w prawie każdym zespole budującym produkt, również takim, który nie ma miliardów użytkowników na starcie.

Po pierwsze, traktuj dane jako część produktu. Nie jako dodatek. Jeśli zmieniasz produkt, zmieniasz dane, a zmiana danych musi być kontrolowana.

Po drugie, projektuj skalowalność od początku. Nawet jeśli nie masz jeszcze skali. Bo ograniczenia architektury i procesu wychodzą wtedy, kiedy już nie masz czasu na spokojne naprawy.

Po trzecie, buduj pętlę uczenia się, która ma hamulce. Testy, monitorowanie, ograniczanie zasięgu, możliwość cofnięcia. To brzmi jak „procedury”, ale to jest realna ochrona przed tym, co w skali staje się kosztowne.

Jeżeli chcesz, żeby produkt rósł, musisz zaakceptować, że wzrost będzie testował każdą słabość, którą teraz da się ukryć. A ukrywanie jest kuszące, bo w małej skali prawie wszystko wygląda dobrze.

I tu znowu wraca ten lęk: nie przed skalą, tylko przed samousprawiedliwianiem się. Podejście Larry’ego Page’a do danych i skalowalności, czytane praktycznie, jest w istocie wezwaniem do dyscypliny. Dobrej, nie idealistycznej. Takiej, która działa, gdy wszystko przyspiesza i gdy pomyłki kosztują więcej niż plan.

Jeśli chcesz, mogę dopasować kolejną wersję tego tekstu do twojego kontekstu: produkt B2B czy B2C, czy pracujesz bardziej nad platformą, czy nad warstwą eksperymentów i analityki. Wtedy łatwiej przełożyć te idee na konkretne decyzje, które da się podjąć w najbliższym sprincie.