Nie oszukujmy się—zarządzanie rozwijającym się produktem programistycznym może być przytłaczającym zadaniem zarówno dla początkujących, jak i doświadczonych osób. Gdy wprowadzasz nowe funkcje, aby obsłużyć większą i stale rosnącą bazę użytkowników, czasy pracy nad produktem od podstaw, gdy zarządzało się zaledwie garstką funkcji, stają się odległym wspomnieniem.
Rosnąca presja ze strony użytkowników końcowych i wewnętrznych interesariuszy zaczyna narastać, gdy poszukujesz nowych sposobów dostarczania wartości klientom. Bez odpowiedniej kontroli możesz zacząć zmagać się z niekontrolowanym rozrostem funkcji.
Pracując w trakcie swojej kariery na różnych stanowiskach związanych z zarządzaniem produktem, osobiście przekonałem się o korzyściach płynących ze stosowania flag funkcji. Od upraszczania testów A/B i ułatwiania wprowadzania produktów na rynek po utrzymywanie praktyki ciągłego dostarczania—flagi funkcji naprawdę pomagają menedżerom produktu z pewnością przejąć kontrolę nad rozwijającym się produktem.
Czym są flagi funkcji?
Flagi funkcji (nazywane również przełącznikami funkcji lub przełącznikami funkcjonalności) działają jak strażnicy określonych funkcjonalności w aplikacji w czasie jej działania—oznacza to, że możesz wyłączać lub włączać użytkownikom dostęp do określonych funkcji, gdy zostaną spełnione ustalone przez Ciebie kryteria. Pozwalają one kontrolować dostęp w czasie rzeczywistym, bez konieczności wdrażania kodu—wyobraź sobie tę swobodę!
O jakich kryteriach mówimy? Właśnie tutaj moc flag funkcji staje się bardziej oczywista. Możesz przyznawać lub blokować dostęp na podstawie różnego rodzaju kryteriów, takich jak określone segmenty użytkowników, pora dnia czy lokalizacja geograficzna, a nawet losowo przyznawać dostęp na potrzeby przeprowadzania eksperymentów.
Korzyści ze stosowania flag funkcji
Usprawnij testy A/B i eksperymenty
Podczas przeprowadzania eksperymentów, które pomagają podejmować trafne decyzje dotyczące produktu, musisz mieć możliwość testowania różnych podejść na zdefiniowanych grupach odbiorców. Możesz z łatwością wykorzystać flagi funkcji do przeprowadzania takich testów i skupić się na metrykach oraz eksperymentach, które chcesz przeprowadzić, zamiast na mechanizmach segmentowania użytkowników.
Jako przykład weźmy ulepszanie doświadczeń użytkownika w ważnym procesie produktu. Zamiast udostępniać zmiany całej bazie użytkowników możesz zidentyfikować określone segmenty użytkowników, aby wypróbować nowe doświadczenie. Następnie możesz zbierać opinie i metryki od grupy testowej, aby porównać je z wynikami szerszej bazy użytkowników przed podjęciem decyzji o wdrożeniu zmian w całym produkcie.
Jeśli testujesz zmiany układu, interakcji lub hierarchii wizualnej, prototypowanie responsywnych projektów może pomóc Ci szybciej zweryfikować pomysły. Sprawdź najlepsze narzędzia do prototypowania responsywnych projektów, aby tworzyć przepływy możliwe do przetestowania przed włączeniem ich dla użytkowników korzystających z wersji produkcyjnej.
Have an account? Log In
Zarządzaj wdrażaniem i uruchamianiem nowych funkcji
Jedną z największych zalet flag funkcji jest możliwość przejęcia kontroli nad złożonymi premierami produktów—pozwalają one przyjąć stopniowe i etapowe podejście. Zamiast polegać wyłącznie na testach wewnętrznych możesz faktycznie zacząć wdrażać części nowej funkcji na środowisko produkcyjne, aby upewnić się, że dobrze współdziała z istniejącymi funkcjami i kodem.
Takie podejście bywa nazywane wdrożeniem kanarkowym, ponieważ pozwala obserwować wpływ nowego kodu i funkcji, zanim udostępnisz je większej grupie odbiorców. Wprowadzanie funkcji nie musi już budzić takich samych obaw, gdy widzisz, że działają one u rzeczywistych użytkowników w środowisku produkcyjnym. Jest to bardziej precyzyjne podejście, podobne do praktyk ciągłej integracji, zamiast narażania użytkowników na przestoje.
Dobrym przykładem jest wprowadzenie funkcji obrazu w obrazie w aplikacji YouTube na iPhonie. Zamiast udostępniać ją domyślnie wszystkim użytkownikom, YouTube stopniowo wprowadzał tę funkcję w ograniczonej grupie użytkowników, aby deweloperzy mogli usunąć błędy i rozwiązać problemy związane z doświadczeniem użytkownika, zanim przeprowadzono szersze wdrożenie.
Powiązany artykuł: 12 strategii skutecznego wprowadzania produktu na rynek (+przykłady)
Eksperymentuj z progami cenowymi
Jeśli zdarzyło Ci się pomagać w ustalaniu struktury cenowej produktu, wiesz, że znalezienie równowagi między dostarczaniem odpowiedniej wartości a właściwą ceną może być delikatnym zadaniem. Gdy równowaga zostanie zachwiana, możesz pobierać zbyt niskie opłaty i tracić przychody—albo odstraszać potencjalnych klientów wysokimi cenami.
Flagi funkcji pomagają zarządzać progami cenowymi znacznie skuteczniej niż metody manualne. Ponieważ progi cenowe często oznaczają dostęp do określonego zestawu funkcji dla konkretnych segmentów użytkowników, korzystanie z flag funkcji ma wiele sensu.
Załóżmy, że chcesz wprowadzić nowy próg, który może przyciągnąć niedostatecznie obsługiwany segment rynku. Możesz skonfigurować flagę funkcji, aby udostępnić ten nowy próg cenowy niewielkiej grupie użytkowników i śledzić, czy dany plan cenowy spotyka się z pozytywnym, czy negatywnym przyjęciem. Korzystanie z flag funkcji może zwiększyć Twoją pewność co do struktury cenowej produktu, ponieważ pomaga wyeliminować zgadywanie.
Promuj najlepsze praktyki cyklu życia oprogramowania
Menedżerowie produktu wiedzą, że zadowolone zespoły inżynieryjne oznaczają zadowolonych klientów! Flagi funkcji wywierają mniejszą presję na deweloperów, którzy muszą wspierać złożone wdrożenia, a co ważniejsze, upraszczają katastrofalne zmiany, które budzą strach u każdego dewelopera pełniącego dyżur w weekend.
Biorąc pod uwagę, że flagi funkcji wymuszają staranne odseparowanie kodu, znacznie ułatwiają zarządzanie wycofywaniem wdrożeń kodu, jeśli coś pójdzie nie tak. Pozwalają Tobie i Twoim zespołom działać bardziej zwinnie w reagowaniu na nieprzewidziane zdarzenia. Dzięki nim dążenie do ciągłego dostarczania, a nawet progresywnego dostarczania, staje się bardziej możliwe — korzyści płynące z pętli informacji zwrotnych od klientów mogą stać się rzeczywistością, im większą kontrolę masz nad dostępem do funkcji i ich wydawaniem (jest to również coś, w czym może pomóc AI w zarządzaniu wydaniami).
Jeśli uruchamiasz nową funkcję, flaga funkcji daje Ci łatwo dostępny wyłącznik awaryjny. Na przykład, jeśli mimo najlepszych starań włożonych w testowanie nowej funkcji zdasz sobie sprawę, że wdrożenie jej na środowisko produkcyjne przynosi użytkownikom nieoczekiwane rezultaty — możesz natychmiast wyłączyć do niej dostęp. To, co wcześniej było chaotycznym zarządzaniem gałęziami funkcji, poprawkami awaryjnymi i wdrożeniami wykonywanymi w panice, można teraz lepiej kontrolować za pomocą flag funkcji.
Jak rozpocząć pracę z flagami funkcji?
Zidentyfikuj zależności
Najpierw musisz sprawdzić, czy baza kodu pozwala na proste wprowadzenie flag funkcji. Starsze monolity pełne kodu spaghetti mogą stanowić poważne wyzwanie na początku pracy. Oddzielenie funkcji od innych przepływów pracy, które można następnie odseparować, staje się trudne.
Przemyślana rozmowa z zespołami inżynieryjnymi i zespołem DevOps będzie konieczna, aby rozpocząć pracę. Choć korzyści są bardzo przekonujące, pamiętaj, że samo wprowadzenie flag funkcji wymaga pracy, która odbiera czas bieżącemu rozwojowi funkcji. W dłuższej perspektywie jednak się to opłaca, dlatego warto rozpocząć tę rozmowę wcześniej, a nie później.
Od czego zacząć odseparowywanie?
Może kusić, aby odseparować wszystko i stosować flagi funkcji bez końca, ale bardziej metodyczne podejście pomoże Ci robić postępy bez poświęcania całej pozostałej pracy, która jest obecnie w toku.
Kiedy myślimy o funkcjach, często mamy na myśli interakcje po stronie klienta, z którymi użytkownik ma do czynienia, więc możesz pomyśleć o rozpoczęciu właśnie od tego miejsca. Choć może to być dobre miejsce na rozpoczęcie odseparowywania funkcji, nie zapominaj o podstawowym wsparciu istniejącym po stronie serwera w Twoim API. Wprowadzanie zmian w API może zapewnić, że zmiany w kodzie nie będą naruszać oczekiwanych zachowań po stronie zaplecza, zanim jeszcze udostępnisz tę funkcjonalność użytkownikom w interfejsie użytkownika.
Określ sposób kontrolowania dostępu
Choć rozmawialiśmy o przyznawaniu dostępu do określonych funkcji konkretnej grupie użytkowników, możesz również wykorzystać inne kryteria, aby zapewnić warunkowy dostęp do funkcji. Na przykład możesz chcieć spróbować włączyć flagę funkcji w określonych porach dnia, lokalizacjach geograficznych, a nawet losowo, aby przeprowadzić szybki test! Określenie z wyprzedzeniem kryteriów, z których chcesz korzystać, pomoże Tobie i Twojemu zespołowi skonfigurować flagi funkcji zapewniające największą elastyczność.
Rozpisanie różnych znanych Ci kryteriów może pomóc w zidentyfikowaniu tych pierwszych, od których chcesz rozpocząć pracę.
More Articles
Pamiętaj, aby zacząć od prostych rozwiązań
Choć Twoja wyobraźnia może już szaleć na myśl o wszystkich rzeczach, które zrobisz za pomocą flag funkcji (włącz tę funkcję dla użytkowników premium korzystających z Chrome'a, mających na sobie niebieskie buty we wtorek 😅), pamiętaj, aby zacząć od prostszych mechanizmów kontroli.
Dobrym prostym początkiem jest wprowadzenie funkcji dla segmentów użytkowników na podstawie ich istniejącego dostępu. Łatwym przykładem jest podział na użytkowników płatnych i bezpłatnych.
Bardziej złożone flagi funkcji, które są wielowymiarowe (tzn. wykorzystują kombinację kryteriów do określenia dostępu), mogą być celem, do którego warto dążyć — najpierw wdrożenie podstaw pomoże Ci go osiągnąć.
Narzędzia do zarządzania flagami funkcji
We wczesnych latach flagami funkcji zarządzano po stronie zaplecza, co wymagało większego zaangażowania deweloperów, gdy trzeba było je włączyć lub wyłączyć. Na szczęście pojawiły się narzędzia, które pomagają uprościć zarządzanie flagami funkcji — zapewniają łatwy dostęp do ich włączania i wyłączania, a także zarządzania różnymi kryteriami definiującymi poszczególne segmenty.
Obecnie istnieje szeroki wybór platform do obsługi flag funkcji, w tym Optimizely, LaunchDarkly oraz rozwiązanie open source Flagsmith. Niektóre organizacje mogą nawet zdecydować się na stworzenie własnych narzędzi wewnętrznych, jeśli mają szczególne wymagania, których te platformy nie spełniają.
Choć mogą różnić się funkcjami i możliwościami, wszystkie te narzędzia obiecują uproszczone zarządzanie flagami funkcji, zapewniające większą kontrolę i pewność podczas wdrożeń oraz kolejnych iteracji.
Zarządzaj funkcjami z pewnością
Dzięki dodaniu flag funkcji do Twojego zestawu narzędzi będziesz mieć większą pewność podczas uruchamiania nowych funkcji, zmniejszysz presję wywieraną na zespoły deweloperskie i znajdziesz odpowiednie połączenie funkcji, które zapewni Twoim klientom największą wartość.
Daj nam znać w komentarzach, jak wykorzystujesz (lub planujesz wykorzystywać) flagi funkcji w swoich produktach!
Więcej narzędzi, wskazówek i technik pomocnych w rozwijaniu kariery menedżera produktu znajdziesz, subskrybując newsletter The CPO Club.
Powiązany artykuł: 8 najważniejszych praktyk dotyczących flag funkcji
Warto również sprawdzić: Najlepsze oprogramowanie do zarządzania wymaganiami produktu




