Optimization glossary

Progressiv levering

Hva er progressiv levering?

Progressiv leveranse er et skifte i måten selskaper jobber med programvarelevering på. Det gjør det mulig for dem å bevege seg raskt ved å frigjøre kode til små deler av trafikken og forbedre tilliten til produktbeslutninger ved å teste hypotesene sine med virkelige kunder.

Tidligere praksis som smidig og kontinuerlig levering innebar at endringer ble distribuert til hele brukerbasen samtidig. Progressiv leveranse har en annen tilnærming med sine skybaserte funksjoner. Den validerer kvalitet og ytelse i produksjon med funksjonsflagg.

I stedet for å distribuere nye funksjoner eller ny kode til alle, lanserer selskaper som bruker progressive leveringsteknikker dem trinnvis til en undergruppe av brukerbasen. Den fokuserer på funksjonsstyring og lansering av endringer via gradvise utrullinger, målrettede funksjonsflagg og A/B-tester, A/B/n osv. for å kontrollere lanseringsprosessen og samle innsikt.

Denne prosessen hjelper produkt- og utviklingsteamene med å redusere usikkerheten, ta datadrevne beslutninger og levere den rette opplevelsen til sluttbrukerne raskere. De blir tryggere på produktbeslutningene sine før de foretar betydelige investeringer, og unngår kostbare tilbakeføringer eller hotfixes. Når alt kommer til alt, er det å engasjere kundene med spesifikke funksjoner og produkter noe som til syvende og sist bidrar til å holde på kundene og øke bedriftens inntekter.

Kjernen i denne praksisen er en plattform for produkteksperimentering som gir teamene muligheten til å kontrollere lanseringen av nye funksjoner i produksjon, frikoble distribusjon fra aktivering av funksjoner og måle effekten av disse endringene med virkelige brukere i produksjon. Med funksjonseksperimentering og funksjonsflagg får utviklingsteamene tryggheten av å vite at de bygger de mest effektive produktene og funksjonene, fordi de kan validere produktbeslutninger i god tid før dyre investeringer går tapt i pipelines.

Hvordan fungerer progressiv levering?

Det er ikke lenger nok å bare sende små endringer raskt med strategier for kontinuerlig distribusjon. Ved å gå fra en grunnleggende forståelse til å lære hvordan man unngår fallgruver i prosess, teknologi og strategi, kan teamene lykkes med å levere bedre programvare, produkter og vekst raskere.

Et eksempel på en progressiv funksjonsleveranse kan se slik ut:

Team → Beta → Trinnvis utrulling → Alle

Det kan omfatte funksjonsgranulære utrullinger som kanarifuglutgivelser, A/B-testing og mer, slik at teamene kan jobbe mer effektivt og samtidig redusere risikoen. Her er hvordan det hjelper.

  1. Funksjonsflagg

    Funksjonsflagg gjør det mulig å lansere funksjoner på detaljnivå. Det betyr at nye funksjoner kan lanseres til en liten prosentandel av brukerne før de rulles ut til alle. På denne måten kan man identifisere eventuelle problemer før de påvirker alle brukerne.
  2. Canary-test

    Canary-distribusjon er et annet viktig aspekt ved Progressive Delivery, ettersom det gjør det mulig å teste i produksjon med en liten prosentandel av brukerne.
  3. A/B-testing

    A/B-testing gjør det mulig å eksperimentere og iterere med funksjonalitet og brukeropplevelse. Ved å teste ulike varianter av en funksjon med forskjellige grupper av brukere kan teamene finne ut hvilken versjon som fungerer best, og ta datadrevne beslutninger.
  4. Observerbarhet

    Observabilitet bidrar til overvåking og optimalisering av ytelsen. Det betyr at teamene raskt kan identifisere og løse eventuelle problemer som oppstår, og sørge for at brukerne får en smidig og sømløs opplevelse.

Progressiv levering er en effektiv tilnærming til programvare- og funksjonsutgivelser som hjelper teamene med å redusere risiko og sikre at brukerne fortsatt får en best mulig opplevelse.

Derfor trenger alle team både progressiv levering og eksperimentering

Alle team trenger både progressiv levering og eksperimentering for å drive frem innovasjon, forbedre brukeropplevelsen og ligge i forkant av konkurrentene i en verden av automatisering og moderne programvareutvikling. En kombinasjon av begge deler kan gi deg et effektivt system for å validere både kvalitet og kundeengasjement gjennom hele utviklingssyklusen.

Med denne tilnærmingen slipper du å ta stilling på forhånd til om du planlegger en ny versjon, et eksperiment, en trinnvis utrulling eller rett og slett et "ikke slipp den ennå"-flagg. Med denne tilnærmingen kan du starte med et grunnleggende funksjonsflagg i kodebasen og med tiden gjøre det om til en produktbeslutning som krever en fullverdig A/B- eller multivariat test, slik at du kan bruke mer sofistikerte teknikker for de funksjonene som trenger det.

Etter hvert som programvare- og funksjonsleveranser blir stadig mer komplekse og med høyere innsats, er progressiv levering raskt i ferd med å bli den foretrukne teknikken for kontinuerlig integrasjon. Det er en måte å balansere hastighet og smidighet med behovet for pålitelighet og stabilitet, slik at teamene kan levere funksjoner som oppfyller brukernes behov.

Det er den beste måten å lansere funksjoner og oppdateringer til brukerne på en trygg og kontrollert måte.

Progressiv leveranse - eksempel på eksperimenteringsflyt

Som med alle nye prosesser eller plattformer, kan det å innlemme progressiv levering og eksperimentering i programvareutviklings- og leveringsprosessen reise mange spørsmål for ingeniør- og DevOps-team:

  • Hvordan kan vi begynne med funksjonsflagging og A/B-testing uten å skape teknisk gjeld i etterkant?
  • Hvordan kan vi skalere til tusenvis av flagg og likevel beholde gode styrings- og kvalitetssikringsprosesser?
  • Hvordan kan vi ta i bruk disse nye metodene i hele organisasjonen uten å bremse utvikling og levering?

Her er et enkelt eksempel på arbeidsflyt for å komme i gang:

  1. Generer innsikt

    Før du implementerer progressiv leveranse, må du samle innsikt om brukeratferd og applikasjonsytelse. Bruk overvåkingsverktøy, tilbakemeldinger fra brukerne og analyser.
  2. Hva er hypotesen din?

    Basert på innsikten du har samlet inn, definerer du en hypotese for den nye versjonen du vil teste. Ha en klar definisjon av suksess, for eksempel økt brukerengasjement, raskere innlastingstid eller økt konverteringsfrekvens.
  3. Sett opp eksperimentet

    Definer suksesskriteriene, for eksempel prosentandelen av brukere i eksperimentet, varigheten av eksperimentet og de spesifikke funksjonene eller endringene som skal testes.
  4. Kjør eksperimentet

    Start eksperimentet ved å rulle ut endringene til en liten prosentandel av brukerne. Overvåk resultatene, og gjør justeringer etter behov.
  5. Analyse

    Analyser resultatene av testen for å sjekke om hypotesen var vellykket og om den var statistisk signifikant. Bruk kvantitative data, for eksempel brukerengasjement og konverteringsfrekvens, og kvalitative data, for eksempel tilbakemeldinger fra brukerne.
  6. Deling og læring

    Del resultatene av eksperimentet med interessenter og teammedlemmer. Bruk innsikten til å informere om fremtidige utviklingsbeslutninger og forbedre kundeopplevelsen.
  7. Progressiv utrulling

    Hvis eksperimentet var vellykket, kan du gradvis rulle ut endringene til en større andel av brukerne. Overvåk resultatene, og gjør justeringer etter behov. Hvis testen var mislykket, kan du revurdere hypotesen og gjøre endringer før du lanserer et nytt eksperiment.

Fordeler med progressiv levering

Metoden for progressiv leveranse har flere fordeler og bruksområder som kan hjelpe team og enkeltpersoner, spesielt produktledere, med å forbedre samarbeidet, redusere risiko og validere kvalitet og ytelse i et produksjonsmiljø.

  1. Mer effektivt teamsamarbeid

    Ved å dele opp leveranseprosessen i mindre, mer håndterbare faser kan teamene samarbeide tettere for å identifisere og løse potensielle problemer før de utvikler seg til problemer. Det gjør at alle jobber mot de samme målene, noe som til syvende og sist fører til en mer effektiv utviklingsprosess.
  2. Reduserer risikoen ved lanseringer

    Ved å rulle ut nye funksjoner og oppdateringer trinnvis kan teamene identifisere og løse problemer før de får konsekvenser for alle brukerne. Det minimerer nedetid, reduserer risikoen for datatap eller -korrupsjon og forebygger andre potensielle problemer ved større og mer komplekse programvarelanseringer.
  3. Validerer kvalitet og ytelse i produksjon

    Ved å teste nye funksjoner og oppdateringer i mindre, kontrollerte miljøer kan teamene overvåke ytelsesmålinger og tilbakemeldinger fra brukerne for å identifisere utfordringer før de påvirker et større publikum. Det verifiserer at nye funksjoner og oppdateringer fungerer som tiltenkt og oppfyller brukernes behov.
  4. Målretter seg mot spesifikke målgrupper gjennom flere lanseringsfaser

    Ved å rulle ut nye funksjoner og oppdateringer til en undergruppe av brukere først, kan teamene samle tilbakemeldinger og gjøre justeringer før de lanseres til et bredere publikum.

Ved å ta i bruk progressiv leveranse kan teamene skape bedre funksjoner og programvareprodukter som bidrar til forretningssuksess i sanntid.

Suksesshistorier om progressiv levering

Disse casestudiene om A/B-testing og progressiv levering viser resultatene verdens ledende digitale merkevarer har oppnådd ved hjelp av Optimizely Feature Experimentation.