Dług obserwowalności2024-08-26Cześć! Dzisiaj przygotowałem dla Ciebie krótszy odcinek. Opowiem o długu obserwowalności. 💸 Jest to problem, który pojawia się w wielu organizacjach, a o którym stosunkowo niewiele się mówi. Standardowo czeka na Ciebie też świeżutki spis najgorętszych artykułów z polskich i zagranicznych internetów. A więc w dzisiaj mam dla Ciebie: Miłego czytania 😀 Inżynierska prasówka
Gdy brakuje obserwacjiDług techniczny to zagadnienie, które od niepamiętnych czasów jest na tapecie u liderów technicznych. W poprzednim newsletterze Inżynierski wkład w roadmapę produktu omawialiśmy już różne rodzaje długu, które mogą wystąpić w produktach:
Jednak lista typów długu może być dłuższa. Nasze produkty stają się coraz bardziej złożone i odnoszą się do coraz większej szerokości zagadnień. Dziś chciałbym zaproponować jeszcze jedno spojrzenie na temat długu i wprowadzić koncept długu obserwowalności (observability debt). Przyjrzyjmy się bliżej temu zagadnieniu:
Definicja długu obserwowalnościZanim zagłębimy się w szczegóły, spróbujmy zdefiniować, czym właściwie jest dług obserwowalności. Pozwólcie, że ukuję tu nowy termin - bo choć zjawisko to istnieje od dawna, to chyba nikt jeszcze nie nazwał go wprost. 😉
Może to przypominać prowadzenie samochodu z zaparowanymi szybami - niby jedziemy do przodu, ale nie widzimy dokładnie drogi. Ten rodzaj długu może przybierać dwie formy.
W obu przypadkach brak wiedzy prowadzi jednak do równiepoważnych konsekwencji. Spójrzmy więc na te problemy – rozpoczynając od aspektów biznesowych. Problemy biznesoweBrak obserwowalności biznesowej to jak prowadzenie firmy z zawiązanymi oczami. Niby działamy, ale umyka nam pełny obraz tego, jak nasz produkt jest używany i jaki ma wpływ na klientów. Przyjrzyjmy się kilku kluczowym obszarom, w których ten problemdaje się we znaki. Przede wszystkim, o wiele łatwiej jest stracić z oczu nietypowe przypadki użycia. Nie widzimy klientów, którzy zachowują się inaczej niż większość - a to często właśnie oni mogą być źródłem cennych insightów. Gojko Adzic świetnie to opisał w swojej prezentacji Lizard Optimization, jak udało mu się powiększyć swój produkt aż 500 razy, zauważając właśnie takie nietypowe zachowania. 🐍 Kolejną problematyczną kwestią jest brak różnicowania grup klientów czy rynków. Jeśli traktujemy wszystkich jednakowo, skończymy oczywiście ze sporym uproszczeniem. Różne segmenty mogą mieć odmienne potrzeby i wzorce korzystania z produktu, ale bez odpowiedniej obserwowalności, te niuanse nam umykają. Brakuje też sposobu by dokładnie sprawdzić, w którym momencie klienci rezygnują zproduktu. Ta informacja jest natomiast kluczowa dla poprawy user experience i redukcji churn rate. A klienci zanim podejmą ostatni krok,często:
Te wszystkie zachowania można odpowiednio wcześniej wyłapać. Jednak bez konkretnej wiedzy, odnotujemy tylko ostateczne zerwanie umowy. Warto ponadto pamiętać, że obserwowalność nie jest jedynie kołem ratunkowym. Gdy sprawy idą dobrze, to jej brak też boli. 😅 Trudno nam zidentyfikować, co dokładnie przyczynia się do sukcesu. Brak precyzyjnych danych o zachowaniach użytkowników przeszkadza też w umacnianiu dobrych wzorców. Pracujemy na ślepo. Te systemowe luki sprawiają, że podejmujemy decyzje bazując bardziej na intuicji niż konkretach. A to niestety prosta droga do błędnych decyzji strategicznych i niewykorzystanych szans rynkowych. Na tym nie koniec bolączek - problemy z obserwowalnością nie ograniczają się tylko do aspektów biznesowych. Równie istotne (i potencjalnie kosztowne) są kwestie techniczne. Przyjrzyjmy się im bliżej w kolejnej części. 🛠️ Problemy techniczneWprowadzanie usprawnień w systemie bez obserwowalności technicznej to jak próba naprawy skomplikowanej maszyny nie mając do dyspozycji instrukcji i narzędzi diagnostycznych. Niby system działa, ale brakuje pełnego wglądu w jego funkcjonowanie. Prowadzi to do szeregu problemów zarówno technicznych jak i operacyjnych. Jednym z największych zagrożeń jest ryzyko, że nie wyłapujemy błędów, dopóki nie uderzą bezpośrednio w naszych klientów.
Bez odpowiednich mechanizmów monitorowania drobne usterki będą tylko narastać, aż nie przerodzą się w poważne awarie. A my stracimy wtedy jeszcze więcej czasu. Kolejnym problemem jest brak wglądu w kwestię wydajności systemu. Nie widzimy, które elementy działają wolno lub gdzie znajdują się wąskie gardła. W efekcie, optymalizacja staje się procesem opartym na zgadywaniu, zamiast na konkretnych danych. Dalej mamy debugowanie. Proces debugowania wygląda diametralnie inaczej, gdy nasz system jest obserwowalny:
Zamiast szybko identyfikować źródło problemu, zespół techniczny traci godziny na rozpoznaniu terenu. Wreszcie, brak obserwowalności technicznej utrudnia monitorowanie systemów zewnętrznych, od których często zależy działanieproduktu. Nie wiemy, czy problemy leżą po naszej stronie, czy może to zewnętrzne API zawodzi. Wszystkie te luki w wiedzy technicznej sprawiają, że utrzymanie i rozwijanie systemu staje się coraz trudniejsze. Zamiast proaktywnie reagować na potencjalne problemy, jesteśmy zmuszeni do ciągłego “gaszenia pożarów”. Mając świadomość problemów wynikających z braku obserwowalności, zarówno biznesowej, jak i technicznej, naturalne wydaje się pytanie: jak możemy temu zaradzić? Jak wyjść z długu obserwowalności?Wiemy, jakie problemy niesie ze sobą dług obserwowalności. Czas zastanowić się, jak możemy go spłacić. Oto kilka kluczowych kroków, które pomogą poprawić obserwowalność każdego produktu: Identyfikacja najważniejszych aspektówNa początek musimy zdefiniować, co tak naprawdę ma znaczenie. Brzmi banalnie, ale często pomijamy ten krok. Zbierz więc zespół i zastanówcie się wspólnie, jakie metryki biznesowe i techniczne są kluczowe dla waszego produktu. Może to być czas trwania określonego procesu, liczba błędów krytycznych czy wskaźnik retencji użytkowników. Pamiętaj, że nie chodzi o to, by mierzyć wszystko - skupcie się na tym, co naprawdę istotne. 🎯 Co mamy -> Do czego dążymyKolejnym krokiem jest określenie luki między stanem obecnym a pożądanym. Tutaj przydatne może być podejście opisane w książce “How to Measure Anything” - zacznij od określenia, co już wiesz iczego potrzebujesz się dowiedzieć. To pomoże ukierunkować wysiłki na obszary, gdzie brak wiedzy jest najbardziej dotkliwy. Głębokie łatanieTeraz czas na konkretne działania. Zamiast powierzchownych poprawek, zastosuj “głębokie łatanie” – skup się na jednym wąskim zakresie, ale przeprowadź pracę od A do Z. Zaimplementuj rozwiązania, które dadzą możliwie pełen wgląd w krytyczne aspekty działania systemu. Może to oznaczać na przykład wdrożenie zaawansowanych narzędzi do monitoringu, dodanie szczegółowych logów czy stworzenie dashboardów agregujących kluczowe metryki. Chcemy osiągnąć szybki zysk, by na jego podstawie adresować kolejne problemy. Praktyki dnia codziennegoBardzo łatwo jest coś naprawić, a w następnym sprincie od razu znowu zepsuć. Ostatni, ale równie ważny krok, to stworzenie praktyk zapobiegających narastaniu długu obserwowalności w przyszłości. Możesz na przykład wprowadzić zasadę, że każda nowa funkcja musi mieć zdefiniowane metryki sukcesu i sposób ich pomiaru. Albo regularnie przeglądać i aktualizować dashboardy, by upewnić się, że nadal dostarczają wartościowych informacji. PodsumowaniePamiętaj, że spłacanie długu obserwowalności to nie pojedyncze działanie, a proces ciągły. Wraz z ewolucją produktu, zmieniają się też nasze potrzeby w zakresie monitoringu i analizy. Bądź przygotowany, że będziesz musiał usprawniać swoje narzędzia i procesy. Z czasem zauważysz, że podejmowanie decyzji staje się łatwiejsze, a reagowanie na problemy - szybsze i bardziej precyzyjne. A to przełoży się na lepszą jakość produktu i większe zadowolenie klientów. Win-win! 🏆 📧 Prześlij dalejDzięki, że doczytałeś(aś) do końca. 😊 Wszystkie poprzednie wydania newslettera są dostępne tutaj. Jeśli spodobał Ci się mój newsletter, prześlij go proszę osobom, którym też mógłby się spodobać. Z góry dziękuję. A jeśli nie jesteś jeszcze w newsletterze, to zachęcam do zapisania się. Polecam się na przyszłość! "Inżynierskie podejście do produktów cyfrowych." P.S. Co myślisz o tym newsletterze? Odpisz :) |