Progressiv leverans
Innehållsförteckning
Vad är progressiv leverans?
Progressiva leveranser är ett nytt sätt för företag att arbeta med programvaruleveranser. Det gör att de kan agera snabbt genom att släppa kod till små delar av sin trafik och förbättra förtroendet för produktbeslut genom att testa sina hypoteser med riktiga kunder.
Tidigare metoder som agile och kontinuerlig leverans innebar att ändringar distribuerades till hela användarbasen samtidigt. Progressiva leveranser har ett annat tillvägagångssätt med sina molnbaserade funktioner. Den validerar kvalitet och prestanda i produktion med feature flags.
Istället för att distribuera nya funktioner eller en ny kod till alla, släpper företag som använder tekniker för progressiv leverans dem stegvis till en delmängd av användarbasen. Den fokuserar på funktionshantering och att släppa förändringar via gradvisa utrullningar, målgruppsinriktade feature flags och A/B-tester, A/B/n, etc., för att kontrollera releaseprocessen och samla insikter.
Den här processen hjälper produkt- och teknikteam att minska osäkerheten, fatta datadrivna beslut och leverera rätt upplevelse till slutanvändarna snabbare. De får förtroende för sina produktbeslut innan de gör betydande investeringar och undviker kostsamma rollbacks eller hotfixes. Att engagera kunder med specifika funktioner och produkter leder i slutändan till att de behåller sina kunder och ökar intäkterna för företagen.
Kärnan i denna praxis är en plattform för produktexperimentering som ger teamen möjlighet att kontrollera lanseringen av nya funktioner till produktion, frikoppla distribution från funktionsaktivering och mäta effekterna av dessa förändringar med riktiga användare i produktion. Med feature experimentation och feature flags får utvecklingsteam tryggheten att veta att de bygger de mest effektiva produkterna och funktionerna eftersom de kan validera produktbeslut långt innan dyra investeringar går förlorade i pipelines.
Hur fungerar progressiv leverans?
Det räcker inte längre att bara skicka små ändringar snabbt med kontinuerliga distributionsstrategier. Genom att gå från en grundläggande förståelse till att lära sig att undvika fallgropar i process, teknik och strategi kan team framgångsrikt leverera bättre programvara, produkter och tillväxt snabbare.
Ett exempel på en progressiv leverans av funktioner kan se ut så här:
Team → Beta → Stegvis utrullning → Alla
Det kan inkludera utrullningar av funktioner som canary releases, A/B-testning med mera, vilket gör att teamen kan arbeta mer effektivt och samtidigt minska riskerna. Så här hjälper det.
-
Feature flags
Feature flags möjliggör utrullning av funktioner på detaljnivå. Det innebär att nya funktioner kan släppas till en liten andel av användarna innan de rullas ut till alla. Det här tillvägagångssättet hjälper till att identifiera eventuella problem innan de påverkar alla användare. -
Canary testing
Canary deployment är en annan viktig aspekt av Progressive Delivery, eftersom det möjliggör testning i produktion med en liten andel användare. -
A/B-testning
A/B-testning möjliggör experimentering och iterering av funktionalitet och användarupplevelse. Genom att testa olika varianter av en funktion med olika grupper av användare kan teamen avgöra vilken version som fungerar bäst och fatta datadrivna beslut. -
Observerbarhet
Observability hjälper till med övervakning och optimering av prestanda. Det innebär att teamen snabbt kan identifiera och lösa eventuella problem som uppstår och se till att användarna får en smidig och sömlös upplevelse.
Progressiv leverans är en kraftfull metod för programvaru- och funktionsreleaser som hjälper team att minska riskerna och se till att användarna fortfarande får bästa möjliga upplevelse.
Varför varje team behöver både progressiv leverans och experimentering
Alla team behöver både progressiv leverans och experimentering för att driva innovation, förbättra användarupplevelsen och ligga steget före konkurrenterna i en värld av automatisering och modern programvaruutveckling. En kombination av båda kan ge dig ett effektivt system för att validera både kvalitet och kundengagemang under hela utvecklingslivscykeln.
Med det här tillvägagångssättet behöver du inte på förhand bestämma dig för om du planerar en ny release, ett experiment, en stegvis utrullning eller helt enkelt en "släpp det inte än"-flagga. Med det här tillvägagångssättet kan du börja med en grundläggande feature flag i din kodbas och med tiden omvandla den till ett produktbeslut som kräver en fullskalig A/B-testning eller multivariat testning, vilket möjliggör mer sofistikerade tekniker för de funktioner som behöver dem.
Eftersom mjukvaru- och funktionsleveranser fortsätter att bli mer komplexa med högre insatser, håller progressiv leverans snabbt på att bli den bästa tekniken för kontinuerlig integration. Den erbjuder ett sätt att balansera snabbhet och smidighet med behovet av tillförlitlighet och stabilitet, vilket gör det möjligt för team att leverera funktioner som uppfyller användarnas behov.
Det är det bästa sättet att släppa funktioner och uppdateringar till användarna på ett säkert och kontrollerat sätt.
Flöde för progressiv leverans med exempel på experimentering
Som med alla nya processer eller plattformar kan införandet av progressiv leverans och experimentering i utvecklings- och leveransprocessen för programvara väcka många frågor hos teknik- och DevOps-team:
- Hur kan vi börja med feature flags och A/B-testning utan att skapa teknisk skuld på sikt?
- Hur kan vi skala upp till tusentals flaggor och ändå behålla bra styrnings- och kvalitetssäkringsprocesser?
- Hur kan vi införa dessa nya metoder i hela organisationen utan att sakta ner utveckling och leverans?
Här är ett enkelt exempel på arbetsflöde som hjälper dig att komma igång:
-
Generera insikter
Innan du implementerar progressiv leverans måste du samla insikter om användarbeteende och applikationsprestanda. Använd övervakningsverktyg, feedback från användare och analyser. -
Vad är din hypotes?
Baserat på de insamlade insikterna definierar du en hypotes för den nya version du vill testa. Ha en tydlig definition av framgång, t.ex. förbättrat användarengagemang, snabbare sidladdningstider eller ökad konverteringsgrad. -
Konfigurera experimentet
Definiera kriterierna för framgång, t.ex. andelen användare i experimentet, experimentets varaktighet och de specifika funktioner eller ändringar som ska testas. -
Kör experimentet
Starta experimentet genom att rulla ut ändringarna till en liten andel av användarna. Övervaka resultaten och gör justeringar efter behov. -
Analys
Analysera testresultaten för att kontrollera om hypotesen var framgångsrik och om den nådde statistisk signifikans. Använd kvantitativa data, t.ex. användarengagemang och konverteringsgrad, och kvalitativa data, t.ex. feedback från användarna. -
Delning och lärande
Dela resultaten av experimentet med intressenter och teammedlemmar. Använd insikterna för att informera om framtida utvecklingsbeslut och förbättra kundupplevelsen. -
Progressiv utrullning
Om experimentet var framgångsrikt kan du gradvis rulla ut ändringarna till en större andel av användarna. Övervaka resultaten och gör justeringar efter behov. Om det var ett misslyckat test, omvärdera hypotesen och gör ändringar innan du lanserar ett nytt experiment.
Fördelar med progressiv leverans
Metoden för progressiv leverans har flera fördelar och användningsområden som kan hjälpa team och individer, särskilt Product Managers, att förbättra samarbetet, minska riskerna och validera kvalitet och prestanda i en produktionsmiljö.
-
Effektivare teamsamarbete
Genom att dela upp leveransprocessen i mindre, mer hanterbara steg kan teamen arbeta närmare varandra för att identifiera och åtgärda potentiella problem innan de blir till problem. Det gör att alla kan arbeta mot samma mål, vilket i slutändan leder till en mer effektiv utvecklingsprocess. -
Minskar riskerna i releaser
Genom att rulla ut nya funktioner och uppdateringar stegvis kan teamen identifiera och hantera problem innan de påverkar alla användare. Det minimerar driftstopp, minskar risken för dataförlust eller korruption och förebygger andra potentiella problem som kan uppstå vid större och mer komplexa programvarulanseringar. -
Validerar kvalitet och prestanda i produktion
Genom att testa nya funktioner och uppdateringar i mindre, kontrollerade miljöer kan teamen övervaka prestandamätvärden och användarfeedback för att identifiera utmaningar innan de påverkar en större publik. Det verifierar att nya funktioner och uppdateringar fungerar som avsett och uppfyller användarnas behov. -
Målgruppsinriktning genom flera steg i lanseringen
Genom att rulla ut nya funktioner och uppdateringar till en delmängd av användarna först kan teamen samla in feedback och göra justeringar innan de släpps till en bredare publik.
Genom att använda progressiv leverans kan teamen skapa bättre funktioner och programvaruprodukter för att driva affärsframgångar i realtid.
Framgångsberättelser om progressiv leverans
Dessa fallstudier av A/B-testning och progressiv leverans visar de resultat som världens ledande digitala varumärken har uppnått med hjälp av Optimizely Feature Experimentation.