Zakładając, że przełączanie flag funkcji jest dobrym pomysłem i powinno być zaimplementowane w kodzie pisanym przez programistów. Na przykład Etsy przysięgają na nich jako znaczną część ich kultury .
Jaki jest dobry sposób przekonania (i wymuszenia) programistów, aby zaczęli używać przełączników flagi funkcji?
Więcej informacji na temat przełączania flag funkcji wyjaśniono w P: Jak używać przełączników flag funkcji , P: Co to są przełączniki flag funkcji i bardzo obszernie w artykule Pete'a Hodgsona na ten temat na blogu Martina Fowlera .
culture
feature-flags
Evgeny
źródło
źródło
Odpowiedzi:
Przełączniki funkcji są powszechną praktyką w programowaniu z dużą prędkością, ponieważ rozłączają rozwój od momentu wydania. Zespoły deweloperów mogą „miękko wydać” nową funkcję produkcyjną w stanie wyłączonym. Umożliwia to zwolnienie funkcji w dowolnym momencie. Jeśli funkcja jest zależna od innych prac lub przygotowań, nie musi czekać na wydanie głównej wersji.
Jeśli chodzi o „przekonanie” programistów do korzystania z nich, jest to ćwiczenie polegające na uzasadnieniu oferowanej przez nie wolności. Z mojego doświadczenia wynika, że nie jest to trudna sprzedaż dla programistów. To kierownictwo niechętnie próbuje nowych rzeczy. Spróbuj tego:
źródło
W idealnym świecie myślę, że wprowadzasz nową wersję i zaskakujesz! Nic się nie zmienia. Wynika to z faktu, że wszystkie nowe funkcje znajdują się za przełącznikami, które wyłączają się po wyłączeniu.
Po wdrożeniu upewniasz się, że Twoja wdrożona usługa nadal działa, telefony nie dzwonią (chyba że Twoim celem jest dzwonienie na telefon) itp. Po powrocie do znanej stabilnej operacji zaczniesz włączać i weryfikować twoje nowo wdrożone funkcje.
Teraz twoja odpowiedź: jak chciałbyś pracować w zespole, w którym dyżurowanie jest praktycznie bez zastanowienia, a nasi użytkownicy kochają nas, ponieważ nasze witryny i usługi są stabilne i stabilne?
To zespół, nad którym chcę pracować.
Możesz przestać czytać tutaj, jeśli chcesz.
Pozostawienie wszystkiego za przełącznikiem funkcji wydaje się, że może prowadzić do wszędzie kodu spaghetti. Jeśli używasz IoC i możesz wybierać między vNow / vNext / vPrevious, sprowadza się to do utrzymania konfiguracji. Tak, więcej zgłoszeń, tak więcej klas (componentV1, componentV2, componentV3 itd.), Ale czy rzeczywiście masz bardziej stabilny system? W jaki sposób? vNastępny jest dziwny? Wróć z powrotem do vNow z wieżą kontrolną. Minął tydzień, a vNow ma subtelny błąd? To samo - równie łatwo wróć do vPrevious.
Bez kłopotów, bez zmartwień, bez straconego snu, bez stresu.
To nie jest fajka. Pracowałem tam kiedyś. Chciałbym móc to sprzedać obecnemu zespołowi.
źródło
Skuteczne środowisko programistyczne o wysokiej prędkości zwykle opiera się na dość ścisłym zautomatyzowanym systemie obejmującym weryfikacje jakości z wykrywaniem i odrzucaniem wadliwych zmian powodujących regresje.
Przełączniki funkcji oferują możliwość zatwierdzania nawet niezakończonych zmian w toku bez odrzucania za spowodowanie regresji w gałęzi integracji. Co stanowi bardzo dobrą zachętę do wprowadzenia funkcji przełącza się bardzo wcześnie w życiu funkcji.
Jedną z wad odstępstwa od prawdziwego CI i przenoszenia rozwoju funkcji w gałęziach funkcji jest brak takiej zachęty. Dodanie przełącznika funkcji później, podczas scalania gałęzi funkcji do gałęzi integracji jest zwykle trudniejsze, jak każda późniejsza integracja.
źródło
Deweloperzy (i zwykle menedżerowie ds. Rozwoju) zwykle szukają dwóch efektów związanych z frameworkiem: łatwości zarządzania i szybkości wdrażania. Chcesz wysyłać kod szybciej i łatwiej.
Dostarczyć dowody, że to podejście działa; spróbuj zbudować mały POC przy użyciu flag funkcji w porównaniu ze starym sposobem. Studia przypadków mają mniejsze znaczenie dla osób taktycznych (programiści / inżynierowie) niż osób strategicznych (kierownictwo średniego \ projektanta produktu).
źródło
Uzasadnienie przełączania funkcji nie jest czymś, co decydują deweloperzy. Jest to coś, na czym właściciele produktów powinni się przejmować. Programiści umożliwiają tę zmianę w najbardziej zrównoważony i bezpieczny sposób. Krytykuję to pytanie.
źródło