Laten we eerlijk zijn: het beheren van een softwareproduct dat groeit kan een overweldigende taak zijn, zowel voor beginners als voor ervaren professionals. Naarmate je nieuwe functies introduceert om een grotere en groeiende gebruikersbasis te ondersteunen, zijn de dagen waarop je slechts een handvol functies beheerde een vage herinnering.
De toenemende druk van je eindgebruikers en interne belanghebbenden begint toe te nemen terwijl je nieuwe manieren verkent om waarde te leveren aan je klanten. Zonder de juiste controle kun je te maken krijgen met functievervaging.
Omdat ik gedurende mijn loopbaan in verschillende rollen binnen productmanagement heb gewerkt, heb ik de voordelen van functievlaggen uit eerste hand ervaren. Van het vereenvoudigen van a/b-testen en het beter beheersbaar maken van productlanceringen tot het handhaven van een werkwijze voor continue oplevering: functievlaggen helpen productmanagers echt om met vertrouwen de controle over een groeiend product te behouden.
Wat zijn functievlaggen?
Functievlaggen (ook wel functieschakelaars of functiewisselaars genoemd) fungeren tijdens runtime als poortwachters voor specifieke functionaliteit in je applicatie. Dat betekent dat je de toegang tot specifieke functies voor gebruikers kunt in- of uitschakelen wanneer aan de criteria die je hebt ingesteld, wordt voldaan. Ze stellen je in staat om de toegang in realtime te beheren zonder dat code-implementaties nodig zijn. Stel je die vrijheid eens voor!
Over welke criteria hebben we het hier? Hier wordt de kracht van functievlaggen duidelijker. Je kunt ervoor kiezen toegang te verlenen of te blokkeren op basis van allerlei criteria, zoals specifieke gebruikerssegmenten, het tijdstip van de dag of geografische locatie. Je kunt de toegang zelfs willekeurig verdelen voor het uitvoeren van experimenten.
Voordelen van het gebruik van functievlaggen
Stroomlijn je A/B-testen en experimenten
Wanneer je experimenten uitvoert om onderbouwde productbeslissingen te nemen, moet je verschillende benaderingen kunnen uitproberen bij vooraf bepaalde doelgroepen. Je kunt functievlaggen gebruiken om deze tests eenvoudig uit te voeren en je te richten op de statistieken en experimenten die je wilt uitvoeren, in plaats van op de technische aspecten van het segmenteren van gebruikers.
Neem het verbeteren van de gebruikerservaring in een belangrijk werkproces van je product als voorbeeld. In plaats van de wijzigingen naar de volledige gebruikersbasis uit te rollen, kun je specifieke gebruikerssegmenten identificeren om deze nieuwe ervaring uit te proberen. Vervolgens kun je feedback verzamelen en statistieken van de testgroep vergelijken met die van de bredere gebruikersbasis voordat je besluit de wijzigingen productbreed uit te rollen.
Als je wijzigingen in de lay-out, interacties of visuele hiërarchie test, kan het prototypen van responsieve ontwerpen je helpen je ideeën sneller te valideren. Bekijk de beste tools voor het prototypen van responsieve ontwerpen om testbare werkstromen te creëren voordat je ze inschakelt voor livegebruikers.
Beheer de uitrol en lancering van nieuwe functies
Een superkracht van functievlaggen is dat ze je controle geven over complexe productlanceringen: ze stellen je in staat om een geleidelijke en gefaseerde aanpak te hanteren. In plaats van uitsluitend te vertrouwen op interne tests, kun je delen van je nieuwe functie daadwerkelijk naar productie uitrollen om te controleren of deze goed samenwerkt met bestaande functies en code.
Dit wordt soms een proefuitrol genoemd, waarbij je de impact van nieuwe code en functies kunt zien voordat je je eraan verbindt deze aan een groter publiek beschikbaar te stellen. Functie-uitrol hoeft niet langer dezelfde zorgen met zich mee te brengen zodra je hebt gezien dat de functie werkt voor echte gebruikers in een live productieomgeving. Het is een meer chirurgische aanpak, vergelijkbaar met praktijken voor continue integratie, in plaats van uitvaltijd voor je gebruikers te riskeren.
Een goed voorbeeld hiervan is de introductie van de beeld-in-beeldfunctie in de YouTube-app op de iPhone. In plaats van deze functie standaard voor alle gebruikers beschikbaar te maken, introduceerde YouTube de functie geleidelijk bij een beperkte groep gebruikers, zodat de ontwikkelaars fouten en problemen met de gebruikerservaring konden oplossen voordat een bredere uitrol plaatsvond.
Gerelateerd artikel: 12 strategieën voor succesvolle productlanceringen (+voorbeelden)
Experimenteer met prijsniveaus
Als je hebt moeten helpen bij het bepalen van de prijsstructuur voor je product, weet je dat het een delicate balans kan zijn om de juiste waarde tegen de juiste prijs te bieden. Wanneer die balans verstoord is, kun je te weinig in rekening brengen en inkomsten mislopen, of potentiële klanten afschrikken met hoge prijzen.
Functievlaggen helpen je om prijsniveaus veel effectiever te beheren dan handmatige methoden. Omdat prijsniveaus vaak toegang bieden tot een bepaalde reeks functies voor specifieke gebruikerssegmenten, is het logisch om functievlaggen te gebruiken.
Stel dat je een nieuw niveau wilt introduceren waarvan je denkt dat het een onderbediend marktsegment kan aantrekken. Je kunt een functievlag instellen om dit nieuwe prijsniveau aan een kleine groep gebruikers te introduceren en bijhouden of je een positieve of negatieve belangstelling voor dat prijsplan ziet. Het gebruik van functievlaggen kan je meer vertrouwen geven in de prijsstructuur van je product, omdat het helpt het giswerk eruit te halen.
Stimuleer goede praktijken gedurende de levenscyclus van softwareontwikkeling
Productmanagers weten dat blije engineeringteams zorgen voor blije klanten! Functievlaggen leggen minder druk op ontwikkelaars om complexe uitrolprocessen te ondersteunen en vereenvoudigen vooral catastrofale wijzigingen die angst aanjagen bij elke ontwikkelaar die in het weekend oproepdienst heeft.
Omdat functievlaggen ervoor zorgen dat code zorgvuldig wordt afgeschermd, wordt het veel eenvoudiger om het terugdraaien van code-implementaties te beheren als er iets misgaat. Hierdoor kunnen jij en je teams wendbaarder reageren op onvoorziene gebeurtenissen. Het nastreven van continue levering, of zelfs geleidelijke levering, wordt hierdoor veel haalbaarder—de voordelen van feedbacklussen van klanten kunnen werkelijkheid worden naarmate je meer controle hebt over toegang tot functies en releases (dit is ook iets waarbij AI in releasebeheer kan helpen).
Als je een nieuwe functie lanceert, biedt een functievlag je een eenvoudige nooduitschakelaar. Als je bijvoorbeeld merkt dat het implementeren van een nieuwe functie in productie, ondanks je uiterste best bij het testen, onverwachte resultaten voor je gebruikers oplevert, kun je de toegang onmiddellijk uitschakelen. Wat vroeger een wirwar was van het beheren van functiebranches, hotfixes en paniekimplementaties, kan nu beter worden beheerd met functievlaggen.
Hoe begin je met functievlaggen?
Afhankelijkheden identificeren
Eerst moet je nagaan of je codebase een eenvoudige introductie van functievlaggen mogelijk maakt. Oudere monolieten vol spaghetti-code kunnen grote uitdagingen vormen bij het beginnen. Het wordt moeilijk om functies los te koppelen van andere workflows die vervolgens kunnen worden afgeschermd.
Om te beginnen is een doordacht gesprek met je engineeringteams en DevOps noodzakelijk. Hoewel de voordelen zeer overtuigend zijn, moet je beseffen dat het introduceren van functievlaggen op zichzelf werk is dat tijd wegneemt van de huidige functieontwikkeling. Op de lange termijn levert het echter veel op, dus het is de moeite waard om dat gesprek eerder dan later te beginnen.
Waar begin je met afschermen?
Het kan aantrekkelijk zijn om alles af te schermen en eindeloos functievlaggen te gebruiken, maar een meer methodische aanpak helpt je vooruitgang te boeken zonder al je andere werk dat momenteel in ontwikkeling is op te offeren.
Wanneer we aan functies denken, denken we vaak aan de interacties aan de clientzijde die de gebruiker heeft, dus misschien denk je eraan om daar te beginnen. Hoewel dit een goede plek kan zijn om je functies af te schermen, mag je de onderliggende ondersteuning aan de serverzijde in je API niet vergeten. Wijzigingen aan de API kunnen ervoor zorgen dat codewijzigingen het verwachte gedrag aan de achterkant niet verstoren voordat je de functionaliteit zelfs maar aan gebruikers in de gebruikersinterface introduceert.
Bepaal hoe je de toegang beheert
Hoewel we hebben gesproken over het bieden van toegang tot bepaalde functies aan een specifieke groep gebruikers, kun je ook andere criteria gebruiken om voorwaardelijke toegang tot een functie te bieden. Je kunt bijvoorbeeld proberen een functievlag in te schakelen op specifieke tijdstippen van de dag, in bepaalde geografische gebieden of zelfs willekeurig voor een snelle test! Door vooraf te bepalen welke criteria je wilt gebruiken, kunnen jij en je team functievlaggen instellen die je de meeste flexibiliteit bieden.
Het in kaart brengen van de verschillende criteria die je kent, kan je helpen bepalen met welke criteria je als eerste aan de slag wilt gaan.
Begin eenvoudig
Hoewel je verbeelding misschien al op hol slaat met alles wat je met functievlaggen kunt doen (deze functie inschakelen voor premiumgebruikers die Chrome gebruiken, blauwe schoenen dragen en dit op een dinsdag doen 😅), moet je eraan denken om met eenvoudigere instellingen te beginnen.
Een eenvoudige plek om te beginnen is functies introduceren voor gebruikerssegmenten op basis van hun bestaande toegang. Betalende versus gratis gebruikers is een eenvoudig voorbeeld.
Complexere functievlaggen met meerdere variabelen (d.w.z. waarbij een combinatie van criteria wordt gebruikt om de toegang te bepalen) kunnen een doel zijn om naartoe te werken—door eerst de basis op orde te brengen, kom je daar sneller.
Beheertools voor functievlaggen
In de beginjaren werden functievlaggen aan de achterkant beheerd, waardoor er meer betrokkenheid van ontwikkelaars nodig was wanneer je ze wilde in- of uitschakelen. Gelukkig zijn er tools ontstaan die het beheer van functievlaggen vereenvoudigen—zowel het eenvoudig in- of uitschakelen ervan als het beheren van de verschillende criteria waarmee je verschillende segmenten definieert.
Er bestaan tegenwoordig tal van platforms voor functievlaggen, waaronder Optimizely, LaunchDarkly en een opensource-optie zoals Flagsmith. Sommige organisaties kiezen er zelfs voor om hun eigen interne tools te ontwikkelen als ze specifieke vereisten hebben waaraan deze platforms niet voldoen.
Hoewel ze kunnen verschillen in functies en mogelijkheden, beloven al deze tools vereenvoudigd beheer van functievlaggen, waardoor je meer controle en vertrouwen krijgt over implementaties en iteraties.
Beheer functies met vertrouwen
Met functievlaggen in je gereedschapskist heb je meer vertrouwen in je lanceringen, verlicht je de druk op je ontwikkelingsteams en vind je de juiste mix van functies die je klanten de meeste waarde bieden.
Laat ons in de reacties weten hoe je functievlaggen hebt gebruikt (of van plan bent te gebruiken) in je producten!
Je vindt meer tools, tips en technieken om je carrière als productmanager vooruit te helpen door je te abonneren op de nieuwsbrief van The CPO Club.
Gerelateerd artikel: 8 beste praktijken voor functievlaggen die je moet kennen
Ook de moeite waard: Beste software voor productvereisten
