Progressive delivery

O metodă de lansare treptată a noilor caracteristici, pentru a limita potențialul impact negativ și pentru a evalua implicarea utilizatorului cu noile caracteristici ale produsului.

Livrarea progresivă se bazează pe fundamentul livrării continue și extinde practica pentru a include mai multe caracteristici granulare, canare, testare A / B și observabilitate.

Termenul de livrare progresivă a fost inventat de James Governor la RedMonk, care a dorit să surprindă o gamă largă de noi practici de dezvoltare software care depășeau doar livrarea continuă.

Cum funcționează livrarea progresivă?
Livrarea progresivă necesită utilizarea de integrare continuă și livrare continuă (CI / CD) ca parte a canalului de livrare a software-ului.

Apoi, trebuie să utilizați steaguri de funcții sau comutatoare de funcții pentru a controla accesul la funcțiile dvs. Ca parte a livrării progresive, aceste semnalizatoare nu sunt doar semnalizări booleene (ON / OFF), ci pot fi direcționate către anumite segmente de public sau procent din traficul total (similar cu implementările canare). Tehnici de livrare progresive mai avansate permit chiar experiențe diferite sau opțiuni de configurare de către public.

O altă componentă a livrării progresive este abilitatea de a putea rula teste A / B pe partea superioară a semnalizărilor de caracteristici pentru a valida statistic impactul clientului. Deși nu toate caracteristicile trebuie să fie un test A / B, livrarea progresivă necesită posibilitatea de a face teste A / B.

O componentă finală a livrării progresive este observabilitatea. Observabilitatea depășește tehnicile tradiționale de monitorizare și, așa cum explică Honeycomb, „în lumea produselor și serviciilor software, observabilitatea înseamnă că puteți răspunde la orice întrebări despre ceea ce se întâmplă în interiorul sistemului doar observând exteriorul sistemului, fără a fi nevoie să expediați un cod nou pentru a răspunde la întrebări noi. "

Avantajele livrării progresive
Livrarea progresivă permite echipelor de dezvoltare să lanseze rapid funcții cu un risc mai mic. Atunci când dezvoltați un nou software și apoi îl lansați utilizatorilor finali, strategiile tradiționale de asigurare a calității și de testare pot reflecta doar o parte din potențialele probleme de performanță și incidente de sentiment ale clienților care ar putea apărea dintr-o eroare sau o experiență slab concepută. Acest lucru are ca rezultat incertitudine și un risc potențial mai mare la lansarea unui nou produs sau serviciu.

Livrarea progresivă permite testarea în producție cu un subset al bazei dvs. de utilizatori, astfel încât să puteți efectua QA în mediul dvs. de producție, reducând în același timp raza de explozie a eventualelor erori potențiale. Prin utilizarea funcției de gestionare a funcțiilor, puteți, de asemenea, să reveniți rapid la orice modificări care se dovedesc a fi dăunătoare.

Proces de livrare progresiv
Livrarea progresivă oferă abilitatea de a elibera treptat funcția dvs. către segmente de public din ce în ce mai mari, începând cu echipele interne, apoi cu testerele beta și urmate de procente din traficul de producție.

Dacă detectați erori, creșteri ale performanței sau reacții adverse ale utilizatorului, pur și simplu reveniți - totul fără a redistribui codul. Întrucât nu treceți de la 0% la 100%, dacă detectați o problemă la 1% din trafic, ați influențat doar 1% din venituri sau 1% din satisfacția clienților.

Livrarea progresivă face ca procesul de lansare să fie mai rezistent. În plus, utilizarea experimentării (sau testării A / B) ca parte a procesului de livrare progresivă vă permite nu numai să reduceți riscul, ci și să iterați și să determinați cea mai bună experiență posibilă pentru utilizatorii finali.

Exemple de livrare progresivă
Multe dintre cele mai importante companii de software precum Google, Facebook, Microsoft și Amazon folosesc deja livrări progresive la scară largă. De exemplu, aceste companii își lansează noile produse de obicei piață cu piață către un procent mic de utilizatori pe fiecare piață.

Adesea, vor începe cu o mică piață de limbă engleză, precum Noua Zeelandă, înainte de a se lansa pe piețe mai mari. Adesea aceste lansări sunt sub formă de teste A / B în care măsoară impactul noilor caracteristici asupra valorilor de bază ale produsului, împreună cu verificarea faptului că caracteristicile nu au impact asupra valorilor performanței aplicației, cum ar fi ratele de eroare, latența și utilizarea.