
product management ui
5 april 2023
De Product Owner wordt vaak geconfronteerd met de vraag of hij Optie A of Optie B moet gebruiken. Of welke versie van het scherm moet worden geïmplementeerd voor betere resultaten? Het nemen van deze beslissingen kan een uitdaging zijn, vooral wanneer u krappe deadlines en beperkte middelen heeft. Bovendien worden dergelijke beslissingen genomen op basis van persoonlijk oordeel of het kopiëren van de aanpak van een concurrent, wat kan leiden tot suboptimale resultaten.
Het goede nieuws is dat deze valkuilen kunnen worden vermeden door een eenvoudige experimentele omgeving op te zetten die relatief weinig moeite kost. In dit artikel laten we je zien hoe je dit kunt bereiken.
Inhoud
- Waarom is het belangrijk om een experimentele omgeving op te zetten.
- mythen
- Experimentele omgeving instellen
- Bepaal het doel van uw toekomstige experiment.
- Ontwikkeling van de architectuur van de experimentele omgeving.
- Analyse en interpretatie van resultaten
- Verlenging van de voorkeursoptie.
- Conclusie.
Waarom is het opzetten van een experimentele omgeving belangrijk?
Het opzetten van een experimentele omgeving is om twee redenen belangrijk:
* Ten eerste zorgt het ervoor dat je na de introductie van nieuwe features de beste optie kiest op basis van een datagedreven aanpak.
* Ten tweede kunt u de bestaande functionaliteit van uw product continu verbeteren door "zoals het is" te vergelijken met hypothetische "toekomstige" opties en door "wat als"-analyse uit te voeren.
mythen
Laten we, voordat we verder gaan met de aanpak, enkele van de mythen ontkrachten die producteigenaren gewoonlijk in verwarring brengen:
Ik heb veel middelen nodig om een complexe omgeving voor experimenten en A/B-testen op te zetten
Fout. De beschreven aanpak vereist minder dan een week van de middelen van uw software-engineer.
Ik heb een gestroomlijnd proces voor gegevensverzameling en gedetailleerd bijhouden van gebeurtenissen nodig
Fout: U kunt vertrouwen op een bestaande database waarin informatie is opgeslagen over de levenscyclus van het hoofdobject van uw product. Bijvoorbeeld bestelstatussen als je in een bezorgdienst werkt.
Ik heb een toegewijd team van analisten nodig om mijn vragen dagelijks te behandelen
Fout: als je eenmaal de aanpak en metrics van je experiment begrijpt, kun je zelf regelmatig data verzamelen met behulp van een simpeleSQL-query.
Benadering
Voor het opzetten van een experimentele omgeving raden we u aan de volgende stappen te volgen:
1. Bepaal het doel van uw toekomstige experiment, verken opties en selecteer indicatoren
Definieer, voordat u contact opneemt met een productontwerper, de doelen en statistieken die in uw experiment worden gemeten. In het geval van de klassieke vraag 'Optie A of Optie B' is het meestal duidelijk wat u wilt bereiken door de wijziging door te voeren. U kunt zich bijvoorbeeld richten op een specifiek deel van de trechter. P
Stel dat u voor een rederij werkt en u momenteel bezig bent met het formulier voor het maken van bestellingen. U wilt een relatief klein percentage gebruikers bereiken die hun verzendadres invoeren en vervolgens een verzendmethode selecteren. Stel je ook voor dat je twee nieuwe versies van de reis hebt:
- Huidige versie: Op één scherm moet u adressen invoeren en een kaart met een speld weergeven op basis van het opgegeven adres. Op het volgende scherm kunt u een verzendmethode selecteren op basis van het opgegeven adres.
2.Een nieuwe versie: Op één scherm moet u een adres invoeren en een verzendmethode selecteren.
Het doel is om te bepalen welke optie resulteert in een hoger percentage gebruikers dat hun adres heeft opgegeven en een verzendmethode heeft gekozen. De statistieken zijn vrij eenvoudig: het percentage gebruikers dat zijn adres heeft ingevoerd en een verzendmethode heeft gekozen.
In werkelijkheider zijn twee manieren om dergelijke gegevens te meten:
- Gebaseerdgegevens die al beschikbaar zijn door het ontwerp van uw backend. Denk bijvoorbeeld aan een database met informatie over de levenscyclus van een bestelling. Uw bestelling kan staten of statussen hebben zoals:
- Concept gemaakt
- Probeer verzendmethoden te vinden
Verzendopties gevonden/Geen verzendopties gevonden
2.Gebeurtenissen volgen- dit is niet iets dat kant-en-klaar zal werken, dus er zijn extra inspanningen nodig om het te implementeren. Met het volgen van gebeurtenissen kunt u echter een meer gedetailleerde analyse uitvoeren, b.v. het apparaattype en de browsernaam kunnen als parameter aan uw gebeurtenissen worden doorgegeven.
In de volgende secties van dit artikel zullen we ons concentreren op de eerste benadering, d.w.z. de bestaande data-architectuur zonder event-tracking. P
2. Ontwerp de Experimentele Omgeving
Tijdens het experiment zijn er twee hoofdstappen:
* Creëer een experiment met de geselecteerde parameters * Bepaal de fase van de gebruikersreis waarin de gebruiker aan een willekeurige groep moet worden toegewezen en zorg ervoor dat de juiste gebruikersinterface als resultaat wordt weergegeven
Een experiment maken:
Het idee is om met een lichtgewicht te komenA/B-testinfrastructuur, die zo eenvoudig mogelijk moet zijn en waarmee u experimenten kunt maken met de volgende parameters:
* Experiment-ID * Maximale steekproef * Aantal en namen van elke groep * Kans om in elke groep terecht te komen
n Door de mogelijkheid om deze parameters aan te passen, kunt u een steekproeflimiet instellen en willekeurig kandidaten voor het experiment selecteren totdat de gewenste steekproefomvang is bereikt.
Zowel de client als de server hebben hiervoor veranderingen nodig: de server moet het aantal experimentkandidaten bijhouden en de backend zal beslissen of de huidige gebruiker aan het experiment moet deelnemen of niet. De backend beslist of de geverifieerde gebruiker aan het experiment moet deelnemen op basis van de huidige steekproefomvang en een vaste waarschijnlijkheid. Bovendien moet de backend de groep gebruikers ondersteunen die deelnemen aan een bepaald experiment om gebruikers een consistente ervaring te bieden en de resultaten van het experiment correct te berekenen.
Dit is hoe het eindpunt van de experimentconfiguratie eruit zou kunnen zien:
NNA /api/uw-service/experiment-create
N
Verzoek:
{experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e",maximum_sample_size: 250, groepen:{ { groepsnaam: "oude reis", waarschijnlijkheid_van_vallen_in: 0,5 }, { groepsnaam: "nieuwe reis",waarschijnlijkheid_van_vallen_in: 0,5 },}
Antwoord:
{
200,
experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e"
code>
Bepalen wanneer en hoe een gebruiker aan experimentele groepen moet worden toegewezen:
U hebt een apart eindpunt nodig dat verantwoordelijk is voor het toewijzen van een specifieke gebruiker aan een experiment en de bijbehorende groep. Laten we het noemenexperiment-inschrijvingen
.
Bij het ontwerpen van de hele omgeving moet u een duidelijk beeld hebben van waar in de gebruikersreis het eindpunt moet worden aangeroepen.experiment-inschrijvingen
. Daarnaast kan het voorkomen dat niet alle gebruikers hoeven mee te doen aan het experiment. Daarom zou het handig zijn om het autorisatietoken van de gebruiker ook op het eindpunt te verstrekken.
Als we ons in ons voorbeeld alleen willen richten op nieuwe gebruikers die hun eerste bestelling plaatsen, stelt user-auth ons in staat om te bepalen wat voor type gebruiker is en of ze in het experiment moeten worden opgenomen. Zorg er daarnaast voor dat na het aanroepen van het eindpunt alle benodigde informatie beschikbaar is en rekening houdt met de specifieke kenmerken van uw reis en levenscyclus.
eindpuntexperiment-inschrijvingen
hieronder beschreven. Het kan worden aangeroepen in een specifieke fase van het pad (bijv. voordat u op een scherm terechtkomt waarin om een afleveradres wordt gevraagd) voor bepaalde typen gebruikers (bijv. alleen nieuwe gebruikers die nog geen adres hebben opgegeven) en berekent of de huidige gebruiker moet deelnemen in het gegeven experiment of niet:
NA /api/uw-service/experiment-inschrijvingen
,gebruikersverificatietoken vereist
Verzoek:
{
experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e"
code>
Antwoord:
{200,ingeschreven: WAAR/vals,groepsnaam: groep 1,}
Om te illustreren hoe een theoretische gegevensstroom eruit zou zien, nemen we hetzelfde voorbeeld van een ordercreatiestroom in een rederij. U kiest een van de twee opties voor het scherm voor het maken van bestellingen.
In onderstaand schema worden de volgende eindpunten genoemd, te weten:
* /creëer-order-ontwerp (stap 3)* /zoek-verzendmethode (stap 16)* /submit-order (stap 20)
worden alleen ter illustratie verstrekt en zijn geen verplichte onderdelen van de experimentele omgeving
Daarnaast wordt hieronder een illustratieve en vereenvoudigde database-architectuur gegeven.
Er zijn 3 hoofdtabellen:
Reeks experimenten
- bevat alle experimenten die u eerder hebt gemaakt. Elke keer dat u het eindpunt aanroept, wordt de database bijgewerkt/experiment-creëren
.
2.Database van experimenten
- bevat alle vermeldingen die zijn gekoppeld aan elke registratie van een bepaalde gebruiker. Elke keer dat u het eindpunt aanroept, wordt de database bijgewerktexperiment-inschrijvingen
.
3.Levenscyclusdatabase bestellen
— het is bedoeld ter ondersteuning van een geïllustreerd voorbeeld van hoe gegevens in verband met een experiment kunnen worden opgeslagen. Het punt is dat deze tabel (of een vergelijkbare tabel die overeenkomt met de specifieke kenmerken van uw product) u in staat stelt om te zien of de invoer (bijvoorbeeld het maken van een bestelling) succesvol was of niet voor een specifieke gebruiker die is geregistreerd in een van de experimentele groepen die je hebt ingesteld. In ons voorbeeld kunnen we afgaan op de statusGeselecteerde verzendmethode, waaruit we kunnen concluderen dat de gebruiker met succes verzendinformatie heeft opgegeven en vervolgens een van de voorgestelde verzendmethoden heeft gekozen.
Overzicht ontwerp- en uitvoeringsaanpak
Voordelen:
- Het resulterende monster is heterogeen
- De steekproefomvang is vooraf bekend.
- De resultaten kunnen snel worden berekend, afhankelijk van de vaste waarschijnlijkheid van de steekproef.
Minpuntjes:
- Vereist wijzigingen aan zowel front-end als back-end.
- De berekening van de resultaten zal gebaseerd zijn op verschillende databases, waarvan sommige misschien niet oorspronkelijk zijn ontworpen voor analytische doeleinden.
Taken en indicatieve schattingen:
– [ ][Achterkant]Maak een model en geef het eindpunt voor het tellen van monsters: ~2 punten.– [ ][Achterkant]Geef het eindpunt van de oplopende teller op: ~2 geschiedenispunten- [ ][Achterkant]Bied eindpunten voor het ophalen en verhogen van het aantal: ~1 geschiedenispunt– [ ][Voorkant]Bel teller-eindpunten voor schakelen tussen logboekstreams: ~3 geschiedenispunten
Nadat u de back-end hebt ontworpen, werkt u samen met het front-end-team om af te spreken hoe de informatie het beste kan worden verkregen en op welk punt in het proces.
Onthoud en verminderbelangrijkste afhankelijkheden:
* Zorg ervoor dat je commando's vooraf contractueel zijn overeengekomen, zodat het front-end deel parallel met de back-end kan worden geïmplementeerd * Probeer te voorkomen dat je interface blokkeert totdat de volledige back-end is voltooid * Ongeacht de experimentomgeving , moeten alle UI-parameters hoe dan ook worden geïmplementeerd
3. Analyse en interpretatie van resultaten
Nadat uw experiment voldoende lang heeft gelopen, is het belangrijk om de resultaten te analyseren en te interpreteren om zinvolle conclusies te trekken. P
Definieer de lijst met velden die nodig zijn om de impact te berekenen op de statistieken waarop u zich eerder hebt gericht.
In het illustratieve voorbeeld hierboven zijn de gegevensbronnen 2 tabellen:
*Database van experimenten
: *Invoer: ID van het experiment waarvoor u resultaten zoekt. *Conclusie: een lijst met alle gebruikers-ID's die deel uitmaken van een bepaald experiment, de groep waaraan elke gebruiker is toegewezen en het tijdstempel waarop de gebruiker is toegewezen
Levenscyclusdatabase bestellen
- Invoergegevens: een lijst met gebruikers die deelnemen aan het experiment en een tijdstempel van wanneer ze zich voor het experiment hebben geregistreerd.
- Conclusie: definitieve statussen van alle bestellingen die aan deze gebruikers zijn gekoppeld en die zijn verwerkt nadat de gebruiker zich in het experiment heeft geregistreerd.
Op basis van deze gegevens kunt u voor elk van de experimentele groepen het percentage succesvol aangemaakte bestellingen berekenen.
Bij het analyseren van de resultaten is het belangrijk verder te gaan dan de ruwe cijfers. U wilt ook testen op statistische significantie om er zeker van te zijn dat eventuele verschillen tussen uw testgroepen niet willekeurig zijn. Ik zal me niet te veel concentreren op dit deel, aangezien ik al veel artikelen over dit onderwerp heb gezien over dit en andere online bronnen. Hiervoor is in ieder geval geen overmatige kennis vereist: naar mijn mening het vermogen om toe te passen ==Z-testof T -Test== is voldoende om de significantie van het verschil tussen de twee groepen te testen.
Zodra u echter heeft vastgesteld dat uw resultaten statistisch significant zijn, kunt u conclusies trekken over welke versie van uw product beter presteert.
4. Verlenging van de voorkeursoptie
Zodra u het experiment met succes hebt uitgevoerd en een redelijke mate van vertrouwen hebt gekregen in het kiezen van de beste optie, is de volgende stap het opschalen van de veranderingen in uw product. Er kunnen verschillende benaderingen zijn:
* Het gemakkelijkst is om uw experiment zo te configureren dat100% van de gebruikers viel in de groep met de beste resultaten. U moet wat tijd reserveren om de code in de toekomst op te schonen, zodat de weergave van dit specifieke deel van de gebruikersinterface onafhankelijk is van de omgeving van het experiment
* Minder gemakkelijke optie als uw product op meerdere platformen beschikbaar is.Wees vooral voorzichtig als u ervan uitgaat dat de resultaten van de experimenten in de webstream van toepassing zijn op de stream in de mobiele app(en vice versa). Soms is het beter om het zekere voor het onzekere te nemen en een apart experiment op dezelfde manier uit te voeren, maar op een ander platform.
Ten slotte
Een eigen experimenteeromgeving is een zeer handige tool voor elke productmanager. Het maakt niet uit in welk stadium van volwassenheid uw huidige product zich bevindt, het creëren van een experimentele omgeving zou niet te lang moeten duren. Door een vrij kleine eenmalige vergoeding te betalen om het in gebruik te nemen, ziet u vrij snel een terugverdientijd.
Tot slot volgen hier enkele tips om ervoor te zorgen dat de resultaten van het experiment kloppen:
* Begrijp allereerst welke statistieken worden beïnvloed (indien van toepassing) bij het implementeren van de wijziging die u overweegt. * Wees duidelijk over uw doelen en statistieken voordat u met het experiment begint. * Houd het experiment zo eenvoudig mogelijk door u te concentreren op één belangrijke wijziging * Wees voorzichtig wanneer u overweegt de resultaten van uw experiment te extrapoleren naar andere platforms of andere soortgelijke services n
Door deze richtlijnen te volgen, kunt u een effectieve ervaringsomgeving creëren die u helpt bij het nemen van gegevensgestuurde beslissingen en het verbeteren van uw conversieratio in de loop van de tijd.