Wprowadzenie
Feature flags – brzmi jak kolejny techniczny buzzword, ale w praktyce to narzędzie, które może uratować Ci tyle samo pieniędzy, co stracić, jeśli użyjesz go źle. W JurskiTech widzieliśmy firmy, które dzięki feature flagom wdrożyły nową funkcję w 15 minut bez żadnego downtime’u, i takie, które przez źle zarządzane flagi wprowadziły krytyczne bugi na produkcję, tracąc zaufanie klientów.
Feature flagi (inaczej: przełączniki funkcji, toggle) to mechanizm pozwalający włączać i wyłączać funkcje aplikacji bez konieczności wdrażania nowego kodu. Brzmi niewinnie, ale w rękach niedoświadczonego zespołu stają się bombą z opóźnionym zapłonem. W tym artykule pokażę 3 najczęstsze błędy, które widzę w strategiach feature flags – i jak ich uniknąć.
1. Złe zarządzanie cyklem życia flagi – zapomniane przełączniki
Problem
W jednej z firm, dla których audytowaliśmy kod, znaleźliśmy ponad 200 feature flags w kodzie produkcyjnym, z których 80% było ustawionych na stałe „true” od ponad roku. To klasyczny przykład „flagowego śmietnika” – stare przełączniki zaśmiecają kod, zwiększają złożoność i ryzyko błędów przy kolejnych zmianach.
Każda nieużywana flaga to potencjalne miejsce, gdzie może pojawić się konflikt, regresja lub po prostu dodatkowa praca przy utrzymaniu. Im więcej flag, tym trudniej zrozumieć, która ścieżka kodu faktycznie działa.
Rozwiązanie
Wprowadź ścisłe zasady cyklu życia flagi:
- Każda flaga powinna mieć datę ważności (TTL).
- Po zakończeniu testów A/B lub rollout’u – usuń flagę i powiązany kod.
- Używaj narzędzi do zarządzania flagami (np. LaunchDarkly, Split.io), które automatycznie oznaczają nieużywane flagi.
- W code review wymagaj uzasadnienia dla każdej nowej flagi – jeśli nie ma planu jej usunięcia, nie powinna trafić do kodu.
Dzięki temu kod pozostaje czysty, a ryzyko przypadkowego włączenia nieaktualnej funkcji spada do zera.
2. Brak kontroli dostępu i audytu – flagi w rękach każdego
Problem
W startupie, który konsultowaliśmy, każdy programista miał dostęp do dashboardu z flagami. W efekcie jeden z developerów przez przypadek wyłączył płatności w sklepie na 20 minut, bo myślał, że testuje lokalnie. Sklep stracił kilka transakcji i zaufanie klientów.
Feature flagi to potężne narzędzie – mogą zmienić zachowanie aplikacji w czasie rzeczywistym. Dlatego dostęp do nich powinien być ściśle kontrolowany. Nie każdy w zespole powinien móc przełączać flagi produkcyjne bez zgody.
Rozwiązanie
- Wdróż role i permisje: tylko seniorzy lub DevOps powinni mieć możliwość zmiany flag produkcyjnych.
- Każda zmiana flagi powinna być logowana i widoczna w audycie – kto, kiedy i co zmienił.
- Używaj środowisk (dev/staging/prod) z oddzielnymi zestawami flag.
- Rozważ wymóg zatwierdzenia (approval) dla zmian flag wrażliwych (np. dotyczących płatności, logowania).
3. Testowanie tylko domyślnej ścieżki – bomba na produkcji
Problem
Często widzę, że zespoły testują aplikację z flagami ustawionymi domyślnie (np. wszystkie wyłączone). Potem włączają flagę na produkcji i okazuje się, że nowa funkcja działa, ale psuje coś innego. Dlaczego? Bo nie przetestowali wszystkich kombinacji flag.
W aplikacjach z wieloma flagami może być wykładnicza liczba stanów. Jeśli nie testujesz tych kombinacji, ryzykujesz, że włączenie jednej flagi wywoła efekt domina.
Rozwiązanie
- Wprowadź testy integracyjne, które uruchamiają aplikację z różnymi kombinacjami flag.
- Używaj testów kanarkowych (canary releases): włączaj flagę najpierw dla 1% użytkowników, potem 10%, 50% itd. Monitoruj błędy i wydajność.
- Automatyzuj testy regresji przy każdej zmianie flagi.
- Rozważ użycie feature flag jako elementu testów A/B – ale pamiętaj, że test A/B to nie to samo co prosty rollout.
Podsumowanie
Feature flagi to wspaniałe narzędzie do ciągłego wdrażania, testowania i stopniowego udostępniania funkcji. Ale bez odpowiedniej strategii stają się źródłem długu technicznego i ryzyka. Klucz to: zarządzanie cyklem życia, kontrola dostępu i testowanie wielu ścieżek.
W JurskiTech pomagamy firmom projektować strategie feature flags od podstaw – tak, aby przynosiły oszczędności, a nie koszty. Jeśli czujesz, że Twoje flagi wymykają się spod kontroli, skontaktuj się z nami. Lepiej zapobiegać, niż gasić pożary na produkcji.


