Hva er en funksjonsutrulling?
En funksjonsutrulling er softwareutviklingsprosessen for å introdusere en ny funksjon til et sett med brukere.
I den ikke altfor fjerne fortiden ble programvare rullet ut én gang i uken eller annenhver uke, med et antall endringer som ble samlet, og deretter overvåket. Hvis noe gikk galt, kunne det kreve en fullstendig tilbakerulling mens ingeniørene undersøkte problemet.
I dag har fremtidsrettede programvareselskaper etablert nye måter å rulle ut funksjoner på en mer effektiv måte og med liten risiko.
Fordeler med funksjonsutrullinger
En fordel med en funksjonsutrullingsprosess er at den oppmuntrer til samarbeid og gjennomtenkt planlegging. Den får team til å inkorporere en utgivelsesstrategi i utviklingen. I stedet for å pushe nye funksjoner til alle brukere i produksjon, styrer utviklere utgivelser i utviklingslivssyklusen.
En annen fordel med funksjonsutrullinger er testehastighet. Team kan teste mange flere hypoteser på kortere tid.
Når et produkt har et stort antall brukere, krever store endringer eksperimentering, brukerakspetans og brukeropplæring. Å rulle ut i faser, eller segmentere grupper av brukere for å teste ulike funksjoner, gir et selskap mulighet til å fullt ut teste brukergrensesnittet og brukeropplevelsen, og kjøre flere tester.
Funksjonsutrullinger & kontinuerlig levering
Med den økende populariteten til kontinuerlig levering integrerer produkt- og utviklingsteam kontroller for funksjonsutgivelse og utrulling i produktutviklingsprosessen. Team koordinerer nå for å administrere utgivelser gjennom hele utviklingssyklusen.
Fremmet av den innflytelsesrike utvikleren Martin Fowler, er kontinuerlig levering en programvareutviklingsdisiplin der programvare kan lanseres til produksjon når som helst. Den har blitt tatt i bruk av ledende programvareselskaper over hele verden hvis team nå forventes å raskt levere programvare som er stabil og feilfri.
Funksjonsutrullingsprosessen
En funksjonsutrullingsprosess innebærer planlegging, planlegging, styring og testing av en funksjonsutgivelse gjennom ulike faser og miljøer. Følgende er fasene i prosessen:
Design
Design funksjonaliteten, undersøk brukstilfeller og utvikle en tidslinje.Utvikle utgivelsesstrategi
Bestem parametere for utgivelsen og hvordan brukertilbakemeldinger skal inkorporeres.Bygg
Utvikle og integrer, og administrer funksjonens progresjon gjennom flere utviklingsmiljøer.Test
Test funksjonen ved å bruke feature flag til å kontrollere utrulling og bruker-targeting. Vurder ytelsesfeedback og brukertilbakemeldinger.Lanser
Deploy funksjonen som «av» i produksjon og implementer deretter utgivelses- og utrullingsstrategien din.Samle tilbakemeldinger
Bygg en kontinuerlig tilbakemeldingssløyfe.Kontinuerlig lansering
Gjør inkrementelle endringer basert på tilbakemeldinger, og fortsett å optimalisere produktet.
Funksjonsutrullinger med feature flags
Det er en rekke måter å distribuere nye funksjonsutrullinger på, og én populær metode bruker feature flags, også kjent som feature toggles.
Feature flags er en programvareutviklingsteknikk som slår bestemt funksjonalitet av og på uten å distribuere ny kode. Dette gir mer kontroll og mer eksperimentering over hele livssyklusen til funksjoner.
Feature flagging muliggjør kontinuerlig levering og distribusjon av programvare til brukere på en raskere måte. Bruken av feature flags lar selskaper utføre gradvise funksjonsutrullinger, fikse bugs i koden uten å redistribuere, og oppleve en mer strømlinjeformet utviklingssyklus.
Hva er en funksjonsvariabel?
En funksjonsvariabel er en måte å instrumentere feature flags med konfigurerbare komponenter eller parametere som gjør det mulig for programvareteam å styre eller oppdatere funksjonen underveis, uten å distribuere kode.
Et eksempel på en funksjonsvariabel ville være en knapp som kan tilpasses med forskjellige farger, tekst, størrelse og plassering. Denne knappen kan oppdateres uten å distribuere ny kode.
Funksjonsvariabeler og funksjonsutrullinger
Funksjonsvariabeler kan inkluderes i funksjonsutrullinger for å endre eller hurtigreparere funksjoner underveis uten å pushe ny kode. Disse endringene kan rulles ut til en prosentandel av en kundebase og spesifikke målgrupper.
Funksjonsvariabeler og A/B-testing
Funksjonsvariabeler kan kombineres med A/B-testing for å teste forskjellige funksjonskonfigurasjoner for å forbedre forretningsmålinger. Ved å bruke funksjonsvariabeler kan for eksempel et selskap teste forskjellige funksjonskonfigurasjoner for å se hvilke som gir de beste resultatene.
Funksjonsutrullinger & A/B-testing
Å inkorporere A/B-testing i funksjonsdeployeringen din er en måte å både redusere risiko og teste effekten av nye funksjoner uten å gi alle tilgang til koden.
Det er ofte ingen mangel på ideer til interessante funksjoner; den begrensende faktoren er utviklingstid. A/B-testing kan bidra til å skape et miljø der testdata driver produktveikartleggingen din, ikke individuelle meninger.
Med A/B- eller splittester kan du sette opp to variasjoner av brukeropplevelser (presentert for forskjellige grupper av brukere) og evaluere den samlede suksessen til hver, basert på målresultater du fastsetter.
Funksjonsutrullinger med Optimizely Feature Experimentation
Produkt- og ingeniørteam kan nå bruke Optimizely serversides funksjonshåndtering til å gjøre utrullinger. Dette gir den samme fleksibiliteten som produktteam har basert seg på med sine experimenteringsprogrammer for å validere hypoteser før de lanserer nye produkter, funksjoner og opplevelser for alle.
Denne eksperimenteringen vil fungere sømløst med praksisene for kontinuerlig integrasjon og kontinuerlig levering som brukes av dagens avanserte ingeniørteam. Begge team – og hele selskaper – vil kunne dra nytte av raskere utviklingssykluser og funksjonshåndteringspraksiser som flagg eller brytere for å redusere risiko.
Alle Optimizely Full Stack-kunder kan følge i fotsporene til verdens beste programvareselskaper (som Amazon, Google og Facebook) for å utvikle sine digitale opplevelser, utføre A/B-tester for å finne den best mulige opplevelsen, og deretter administrere en kontrollert utrulling.
Optimizely tilbyr nå også gratis feature flags gjennom Optimizely Rollouts for team som ønsker å komme i gang med kontrollerte funksjonsutgivelser uten den fulle funksjonaliteten til Optimizely Full Stack.
Med Optimizely kan teamet ditt teste mange muligheter, noe som gjør det mer sannsynlig å finne bedre resultater.