Flagi funkcji / Przełączniki funkcji

Zdjęcie od Sohrab Salimi
Sohrab Salimi
3 min Czas czytania
Ta treść została przetłumaczona przez AI. Zobacz oryginał

Feature Flagging to technika w tworzeniu oprogramowania polegająca na włączaniu i wyłączaniu funkcji lub cech oprogramowania będącego w trakcie rozwoju w czasie rzeczywistym.

Feature Flags to technika programistyczna, dzięki której Ty i Twój zespół możecie szybciej i bezpieczniej dostarczać oprogramowanie oraz integrować je między zespołami. Ponieważ niezależne czasowo wdrażanie aplikacji staje się coraz powszechniejszym wymaganiem, Feature Flags stanowią idealne rozwiązanie tego problemu. Dodatkowo pomagają one optymalizować przepływ pracy zespołów deweloperskich.

Synonimy używane dla Feature Flags i Feature Flagging:

  • Feature Toggles / Feature Toggling
  • Feature Switches
  • Feature Flippers
  • Feature Bits
  • Conditional Features (w kontekście User Targeting)

Cele i zalety Feature Flags w szczegółach

Dzięki Feature Flags Ty i Twój zespół możecie:

  • szybciej i stopniowo dostarczać oprogramowanie oraz wdrażać nowe funkcje dla klientów (Continuous Integration i Continuous Delivery stają się szybsze i prostsze)
  • integrować nowe funkcje między zespołami
  • testować nowe wymagania w środowisku produkcyjnym (bez wiedzy klientów)
  • udostępniać gotowe funkcje tylko wybranym grupom użytkowników
  • regularnym testowaniem stopniowo poprawiać funkcjonalność i UX
  • utrzymywać stabilność aplikacji w działaniu poprzez wyłączanie wadliwych funkcji
  • minimalizować czasochłonne wdrożenia poprawek błędów
  • oddzielać wydania oprogramowania od jego wdrożeń
  • unikać dużych i ryzykownych wdrożeń poprzez częstsze mergowanie do gałęzi głównej zamiast rzadkiego mergowania długich gałęzi funkcji
  • elastycznie reagować na zmiany wymagań klientów bez dodatkowego wdrożenia

Kiedy i jak stosuje się Feature Flags?

W praktyce gotowe funkcje często czekają na wdrożenie, ponieważ nie mogą jeszcze trafić na środowisko produkcyjne. Odpowiednie gałęzie funkcji nie mogą być wtedy mergowane.

Dzięki Feature Toggles / Flags gotowy kod może zostać natychmiast połączony i wdrożony, dzięki czemu nowe funkcje są już obecne w tle, nie będąc widocznymi. Zapobiega to poważnym problemom przy późniejszym mergowaniu, gdy w międzyczasie pracowano nad innymi częściami oprogramowania.

Stosowanie Feature Flags jest szczególnie wartościowe w następujących przypadkach:

  • Continuous Integration i Continuous Delivery (CI / CD)
  • Kill-Switch
  • Testy A/B z klientami w środowisku produkcyjnym
  • Zarządzanie konfiguracją
  • Kontrola uprawnień w aplikacji
  • Procentowe wdrażanie funkcji

Istnieją 3 sposoby implementacji Feature Flags:

  1. Feature Toggles zaimplementowane bezpośrednio w kodzie
  2. Integracja przez plik konfiguracyjny (config)
  3. Integracja przez oprogramowanie do zarządzania Feature Flags

Wskazówki:

Aby utrzymać złożoność kodu na jak najniższym poziomie, Ty i Twój zespół powinniście:

  • stosować Feature Flags tylko wtedy, gdy jest to naprawdę konieczne
  • usuwać nieużywane flagi z cyklu życia oprogramowania

4 rodzaje Feature Flags

W zależności od tego, jak długo Feature Flags mają pozostawać w kodzie i jaką pełnią funkcję, można je podzielić na 4 kategorie:

Release Toggle

Release Toggles umożliwiają wdrożenie nieprzetestowanego i niekompletnego kodu w środowisku produkcyjnym bez jego aktywowania. W ten sposób np. menedżerowie produktu mogą udostępniać nowe funkcje według własnego uznania.

Experiment Toggle

Experiment Toggles pozwalają kontrolować zachowanie użytkowników w obrębie aplikacji. W tym celu użytkownicy są identyfikowani w systemie oprogramowania, a następnie precyzyjnie ukierunkowywani. Dzięki temu nowe funkcje mogą być szybko testowane na określonych grupach osób, a wnioski mogą być włączane do dalszego rozwoju.

Ops Toggle

Ops Toggles umożliwiają zespołom operacyjnym zarządzanie działaniem aplikacji za pomocą Feature Toggles. Pozwala to na szybkie wycofywanie funkcji i testowanie obciążenia systemu nowymi funkcjami na małych grupach. Dodatkowo Ops Toggles umożliwiają dezaktywację zbędnych funkcji w działaniu aplikacji ("Kill-Switches").

Permission Toggle

Permission Toggles pozwalają kontrolować zachowanie znanych użytkowników w obrębie aplikacji. Na przykład możesz za ich pomocą udostępniać funkcje klientom VIP lub Premium. Testy A/B stanowią kolejną możliwość ich zastosowania.

Podsumowanie Feature Toggles / Flags

Feature Toggles i Flags pomagają zespołom szybciej i łatwiej dostarczać, integrować i testować nowe funkcje.

Różne rodzaje toggles służą różnym celom, takim jak testowanie nowych funkcji na małych grupach, odblokowywanie określonych uprawnień czy sprawdzanie obciążenia systemu. Feature Flags i Toggles mogą ukrywać lub pokazywać całe obszary oprogramowania albo sterować tylko małymi blokami kodu. Ponieważ mogą być stosowane zarówno w backendzie, frontendzie, jak i w całej aplikacji, są bardzo elastyczne w użyciu.

Ważne: Gdy Feature Flags nie są już potrzebne w kodzie, Ty lub Twój zespół powinniście je usunąć. W ten sposób zapobiegacie nadmiernemu wzrostowi złożoności kodu.

Więcej na ten temat

Lean Development

Lean Development skupia sie na eliminowaniu marnotrawstwa. Pracuje sie z krotkimi petlami informacji zwrotnej i czestsymi testami.

Velocity w Scrum – definicja i jak ją obliczać

Velocity to metryka Scrum, która pomaga określić odpowiednią ilość pracy dla każdego Sprinta. Wyjaśniamy, jak ją obliczać!

Mission & Vision: Jak sformułować swoje oświadczenie misji

Różnice między misją a wizją, znaczenie dla rozwoju organizacji. Odwiedź Agile Academy, aby uzyskać więcej informacji.

Porozmawiaj z naszym asystentem Porozmawiaj z naszym asystentem