एक उत्पाद स्वामी के रूप में, इस सवाल का सामना करना आम है कि विकल्प ए या विकल्प बी के साथ आगे बढ़ना है या बेहतर परिणाम प्राप्त करने के लिए स्क्रीन के किस संस्करण को लागू किया जाना चाहिए? इस तरह के निर्णय लेना चुनौतीपूर्ण हो सकता है, खासकर जब आप सीमित संसाधनों के साथ तंग समय सीमा के अंतर्गत हों। इसके अलावा, इस तरह के निर्णय व्यक्तिगत निर्णय या प्रतिस्पर्धी के दृष्टिकोण की नकल के आधार पर किए जाते हैं, जिससे उप-इष्टतम परिणाम हो सकते हैं। अच्छी खबर यह है कि एक साधारण प्रयोग वातावरण स्थापित करके इस तरह के नुकसान से बचा जा सकता है जिसके लिए अपेक्षाकृत कम प्रयास की आवश्यकता होती है। इस लेख में, हम वर्णन करेंगे कि आप इसे कैसे प्राप्त कर सकते हैं। विषयसूची प्रयोग परिवेश सेट अप करना क्यों महत्वपूर्ण है. मिथकों अपना प्रयोग परिवेश सेट अप करना अपने भविष्य के प्रयोग के लक्ष्य को परिभाषित करना अपने प्रयोग परिवेश की वास्तुकला को डिजाइन करना परिणामों का विश्लेषण और व्याख्या करना पसंदीदा विकल्प को बढ़ाना। निष्कर्ष। एक प्रयोग परिवेश की स्थापना क्यों महत्वपूर्ण है? प्रयोग परिवेश की स्थापना दो कारणों से महत्वपूर्ण है: सबसे पहले, यह आपको यह सुनिश्चित करने की अनुमति देता है कि एक बार जब आप नई कार्यक्षमता लागू करते हैं, तो आप डेटा-संचालित दृष्टिकोण के आधार पर सबसे अच्छा विकल्प चुनते हैं। दूसरे, यह आपको 'जैसा है' की काल्पनिक 'टू-बी' विकल्पों से तुलना करके और 'क्या होगा अगर' विश्लेषण करके अपने उत्पाद की मौजूदा कार्यक्षमता में लगातार सुधार करने की अनुमति देता है। मिथकों इससे पहले कि हम दृष्टिकोण पर आगे बढ़ें, आइए कुछ ऐसे मिथकों को दूर करें जो आमतौर पर उत्पाद मालिकों को गुमराह करते हैं: मुझे एक जटिल वातावरण स्थापित करने के लिए बहुत सारे संसाधनों की आवश्यकता है जो प्रयोग और ए/बी परीक्षण करने की अनुमति देता है : वर्णित दृष्टिकोण में आपके सॉफ़्टवेयर इंजीनियर के संसाधनों का एक सप्ताह से भी कम समय लगता है। गलत मुझे एक अच्छी तरह से स्थापित डेटा एकत्र करने की प्रक्रिया और विस्तृत घटना ट्रैकिंग की आवश्यकता है : आप मौजूदा डेटाबेस पर भरोसा कर सकते हैं जो आपके उत्पाद की मुख्य इकाई के जीवनचक्र के बारे में जानकारी संग्रहीत करता है। उदाहरण के लिए, यदि आप डिलीवरी सेवा हैं तो ऑर्डर की स्थिति। गलत मुझे विश्लेषकों की एक समर्पित टीम की आवश्यकता है जो दैनिक आधार पर मेरे अनुरोधों को संभाल सके : एक बार जब आप अपने प्रयोग के दृष्टिकोण और मेट्रिक्स को समझ जाते हैं, तो आप एक साधारण गलत SQL क्वेरी का उपयोग करके नियमित रूप से डेटा प्राप्त कर सकते हैं। दृष्टिकोण अपने प्रयोग के माहौल को स्थापित करने के लिए, इन चरणों का पालन करने की सलाह दी जाती है: 1. अपने भविष्य के प्रयोग के लक्ष्य को परिभाषित करें, विकल्पों को समझें और मेट्रिक्स चुनें इससे पहले कि आप अपने उत्पाद डिज़ाइनर से संपर्क करें, अपने प्रयोग के भाग के रूप में मापे जाने वाले लक्ष्यों और मीट्रिक को परिभाषित करें। क्लासिक 'विकल्प ए या विकल्प बी' प्रश्न के मामले में, आमतौर पर यह स्पष्ट होता है कि आप किसी बदलाव को लागू करके क्या हासिल करना चाहते हैं। उदाहरण के लिए, हो सकता है कि आप फ़नल के किसी विशिष्ट भाग को संबोधित कर रहे हों। व्याख्यात्मक उद्देश्यों के लिए मान लें कि आप एक डिलीवरी कंपनी में काम कर रहे हैं और वर्तमान में ऑर्डर निर्माण फॉर्म पर ध्यान केंद्रित कर रहे हैं। आप अपेक्षाकृत कम प्रतिशत उपयोगकर्ताओं को संबोधित करना चाहते हैं जो अपना शिपिंग पता प्रदान करते हैं और फिर शिपिंग विधि का चयन करते हैं। साथ ही, कल्पना करें कि आपके पास यात्रा के दो नए संस्करण हैं: : एक स्क्रीन पर पतों को इनपुट करने और प्रदान किए गए पते के आधार पर पिन के साथ मानचित्र दिखाने की आवश्यकता होती है। अगली स्क्रीन प्रदान किए गए पते के आधार पर शिपिंग विधि का चयन करने की अनुमति देती है। वर्तमान संस्करण : सिंगल स्क्रीन के लिए इनपुट पता और वहां शिपिंग विधि का चयन करने की आवश्यकता होती है। नया संस्करण लक्ष्य यह निर्धारित करना है कि कौन से विकल्प उपयोगकर्ताओं के उच्च हिस्से की ओर ले जाते हैं जिन्होंने अपना पता प्रदान किया और शिपिंग विधि का चयन किया। मेट्रिक्स बल्कि सीधे हैं: % उपयोगकर्ता जिन्होंने अपना पता प्रदान किया और शिपिंग विधि का चयन किया। वास्तव में, : ऐसे डेटा को मापने के 2 तरीके हैं आधार पर। उदाहरण के लिए, एक डेटाबेस पर विचार करें जिसमें ऑर्डर के जीवनचक्र के बारे में जानकारी है। आपके आदेश में निम्न स्थितियाँ या स्थितियाँ हो सकती हैं: आपके बैकएंड के डिज़ाइन द्वारा पहले से उपलब्ध डेटा के ड्राफ्ट बनाया गया शिपिंग विधियों को खोजने का प्रयास करें शिपिंग विकल्प मिले / शिपिंग विकल्प नहीं मिले - यह कुछ ऐसा नहीं है जो लीक से हटकर काम करेगा और इसलिए इसे लागू करने के लिए अतिरिक्त प्रयास की आवश्यकता है। हालाँकि, ईवेंट ट्रैकिंग आपके लिए अधिक विस्तृत विश्लेषण को सक्षम करेगी, उदाहरण के लिए डिवाइस का प्रकार और ब्राउज़र का नाम आपके ईवेंट के पैरामीटर के रूप में पारित किया जा सकता है। ईवेंट ट्रैकिंग इस लेख के अगले खंडों में, हम पहले दृष्टिकोण पर ध्यान केंद्रित करेंगे, यानी बिना इवेंट ट्रैकिंग के मौजूदा डेटा आर्किटेक्चर। 2. अपने प्रयोग परिवेश की वास्तुकला डिज़ाइन करें प्रयोग प्रवाह के भीतर 2 मुख्य चरण पूरे किए जाने चाहिए: चयनित पैरामीटर के साथ एक प्रयोग बनाएँ उपयोगकर्ता यात्रा के एक चरण को परिभाषित करें जब उपयोगकर्ता को किसी भी समूह को सौंपा जाना चाहिए और यह सुनिश्चित करें कि परिणाम के रूप में प्रासंगिक UI प्रदर्शित हो एक प्रयोग बनाना: विचार एक हल्के के साथ आने का है जो जितना संभव हो उतना सरल होना चाहिए और आपको निम्नलिखित मापदंडों के साथ प्रयोग करने की अनुमति देनी चाहिए: ए/बी परीक्षण ढांचे प्रयोग आईडी अधिकतम नमूना प्रत्येक समूह की संख्या और नाम प्रत्येक समूह में गिरने की संभावना इन मापदंडों को कॉन्फ़िगर करने में सक्षम होने से आप एक नमूना सीमा निर्धारित कर सकते हैं और वांछित नमूना आकार तक पहुंचने तक बेतरतीब ढंग से प्रयोग के लिए उम्मीदवारों को चुन सकते हैं। क्लाइंट और सर्वर दोनों को इसके लिए परिवर्तन की आवश्यकता है: सर्वर को प्रति प्रयोग उम्मीदवारों की संख्या को ट्रैक करना चाहिए और बैकएंड तय करेगा कि वर्तमान उपयोगकर्ता को प्रयोग का हिस्सा होना चाहिए या नहीं। बैकएंड तय करेगा कि प्रमाणित उपयोगकर्ता को वर्तमान नमूना आकार और एक निश्चित संभावना के आधार पर प्रयोग का हिस्सा होना चाहिए या नहीं। इसके अलावा, बैकएंड को उपयोगकर्ताओं का एक संग्रह बनाए रखना चाहिए जो उपयोगकर्ताओं को लगातार अनुभव प्रदान करने और प्रयोग के परिणामों की ठीक से गणना करने के लिए दिए गए प्रयोग का हिस्सा हैं। प्रयोग के विन्यास के लिए समापन बिंदु ऐसा दिखाई दे सकता है: पोस्ट /api/your-service/experiment-create अनुरोध: { experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e", maximum_sample_size: 250, groups: { { group_name: "old_journey", probability_of_falling_in: 0.5 }, { group_name: "new_journey", probability_of_falling_in: 0.5 },} जवाब: { 200, experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e" } यह तय करना कि उपयोगकर्ता को प्रायोगिक समूहों को कब और कैसे सौंपा जाना चाहिए: आपको एक अलग समापन बिंदु की आवश्यकता होगी जो एक विशिष्ट उपयोगकर्ता को प्रयोग और संबंधित समूह को निर्दिष्ट करने के लिए जिम्मेदार होगा। आइए इसे कहते हैं। experiment-enrollments पूरे वातावरण को डिजाइन करते समय आपको स्पष्ट समझ होनी चाहिए कि उपयोगकर्ता यात्रा समापन बिंदु के किस चरण पर कॉल किया जाना चाहिए। इसके अलावा, यह मामला हो सकता है कि सभी उपयोगकर्ता प्रयोग में भाग न लें। यही कारण है कि उपयोगकर्ता-प्रमाणीकरण टोकन को समापन बिंदु में भी प्रदान करना उपयोगी होगा। experiment-enrollments हमारे उदाहरण में, यदि हम केवल नए उपयोगकर्ताओं पर ध्यान केंद्रित करना चाहते हैं जो अपना पहला ऑर्डर कर रहे हैं, तो उपयोगकर्ता-प्रमाणीकरण हमें यह निर्धारित करने की अनुमति देगा कि यह किस प्रकार का उपयोगकर्ता है और क्या किसी को प्रयोग में नामांकित किया जाना चाहिए। साथ ही, सुनिश्चित करें कि समापन बिंदु पर कॉल करने के बाद सभी आवश्यक जानकारी उपलब्ध है और आपकी यात्रा और जीवनचक्र की बारीकियों पर विचार करता है। समापन बिंदु नीचे वर्णित है। इसे विशिष्ट प्रकार के उपयोगकर्ताओं (जैसे केवल नए उपयोगकर्ता जिन्होंने अभी तक पता प्रदान नहीं किया है) के लिए यात्रा के एक विशिष्ट चरण में (उदाहरण के लिए शिपिंग पते की आवश्यकता वाले स्क्रीन पर उतरने से पहले) कॉल किया जा सकता है और यह गणना करेगा कि वर्तमान उपयोगकर्ता को भाग लेना चाहिए या नहीं किसी दिए गए प्रयोग में या नहीं: experiment-enrollments , पोस्ट /api/your-service/experiment-enrollments उपयोगकर्ता-प्रमाणीकरण टोकन आवश्यक है अनुरोध: \ { experiment_id: "f380739f-62f3-4316-8acf-93ed5744cb9e" } जवाब: {200, enrolled: true/false, group_name: group_1,} यह समझाने के लिए कि सैद्धांतिक डेटा प्रवाह कैसा दिखेगा, वितरण कंपनी में ऑर्डर निर्माण प्रवाह का एक ही उदाहरण मान लें। आप ऑर्डर क्रिएशन स्क्रीन के 2 विकल्पों में से चयन कर रहे हैं। नीचे दिए गए आरेख में निम्नलिखित समापन बिंदुओं का उल्लेख किया गया है, अर्थात: / क्रिएट-ऑर्डर-ड्राफ्ट (चरण 3) / खोज-शिपिंग-विधि (चरण 16) / सबमिट-ऑर्डर (चरण 20) व्याख्यात्मक उदाहरण का समर्थन करने के लिए प्रदान किए जाते हैं और प्रयोग पर्यावरण के आवश्यक भाग नहीं हैं इसके अलावा, डेटाबेस का उदाहरण और सरलीकृत आर्किटेक्चर नीचे दिया गया है। 3 मुख्य तालिकाएँ हैं: - इसमें आपके द्वारा पहले बनाए गए सभी प्रयोग शामिल हैं। हर बार जब आप समापन बिंदु को कॉल करते हैं तो डेटाबेस अपडेट किया जाता है। Experiments set /experiment-create - इसमें किसी विशिष्ट उपयोगकर्ता के प्रत्येक नामांकन से जुड़े सभी रिकॉर्ड होते हैं। हर बार जब आप समापन बिंदु को कॉल करते हैं तो डेटाबेस अपडेट हो जाता है Experiments database experiment-enrollments - यह प्रयोग से संबंधित डेटा को कैसे संग्रहीत किया जा सकता है, इसके सचित्र उदाहरण का समर्थन करने के लिए प्रदान किया गया है। मुद्दा यह है कि यह तालिका (या कोई भी समान तालिका जो आपके उत्पाद की बारीकियों से मेल खाती है) आपको यह देखने की अनुमति देगी कि क्या प्रविष्टि (उदाहरण के लिए ऑर्डर निर्माण) आपके द्वारा किसी एक प्रयोगात्मक समूह में नामांकित विशिष्ट उपयोगकर्ता के लिए सफल रही या नहीं। सेट। हमारे उदाहरण में, हम स्थिति पर भरोसा कर सकते हैं जो यह निष्कर्ष निकालने की अनुमति देती है कि उपयोगकर्ता ने सफलतापूर्वक शिपिंग विवरण प्रदान किया और फिर सुझाए गए शिपिंग तरीकों में से एक का चयन किया। Order lifecycle database शिपिंग विधि चयनित डिजाइन और कार्यान्वयन दृष्टिकोण का अवलोकन पेशेवरों: परिणामी नमूना विषम है नमूना आकार अग्रिम में जाना जाता है निश्चित नमूना संभावना के आधार पर परिणामों की शीघ्रता से गणना की जा सकती है दोष: फ्रंटएंड और बैकएंड दोनों में बदलाव की आवश्यकता है परिणामों की गणना कई डेटाबेस पर निर्भर करेगी, जिनमें से कुछ को शुरू में विश्लेषणात्मक उद्देश्यों के लिए डिज़ाइन नहीं किया जा सका कार्य और सांकेतिक अनुमान: अपरिभाषित एक मॉडल बनाएं और फ़ेच काउंटर समापन बिंदु को प्रदर्शित करें: ~2 कहानी बिंदु [] [बैकएंड] अपरिभाषित वेतन वृद्धि काउंटर समापन बिंदु का पर्दाफाश करें: ~ 2 कहानी बिंदु [] [बैकएंड] अपरिभाषित काउंटर लाने और बढ़ाने के लिए समापन बिंदुओं का पर्दाफाश करें: ~ 1 कहानी बिंदु [] [बैकएंड] अपरिभाषित साइन-अप प्रवाह के बीच स्विच करने के लिए कॉल काउंटर समापन बिंदु: ~ 3 कहानी बिंदु [] [फ्रंटेंड] एक बार जब आप अपने बैकएंड को डिज़ाइन कर लेते हैं, तो अपनी फ्रंटएंड टीम के साथ सूचना प्राप्त करने के सर्वोत्तम तरीके और प्रवाह के किस चरण में संरेखित करें। ध्यान में रखें और कम करें: मुख्य निर्भरता को सुनिश्चित करें कि आपकी टीमें पहले से एक अनुबंध पर संरेखित हैं ताकि बैकएंड के समानांतर फ्रंटएंड भाग को लागू किया जा सके। जब तक पूरा बैकएंड पूरा नहीं हो जाता, तब तक अपने फ्रंटएंड को ब्लॉक होने से बचाने की कोशिश करें प्रयोग के माहौल पर ध्यान दिए बिना, सभी UI विकल्पों को वैसे भी लागू किया जाना चाहिए 3. परिणामों का विश्लेषण और व्याख्या करना एक बार आपका प्रयोग पर्याप्त समय तक चलने के बाद, सार्थक निष्कर्ष निकालने के लिए परिणामों का विश्लेषण और व्याख्या करना महत्वपूर्ण है। उन फ़ील्ड्स की सूची निर्धारित करें, जिन पर आपने पहले ध्यान केंद्रित करने का निर्णय लिया था। ऊपर दिए गए निदर्शी उदाहरण से डेटा स्रोत 2 तालिकाएँ होंगी: : Experiments database : प्रयोग आईडी जिसके लिए आप परिणाम खोज रहे हैं इनपुट : सभी उपयोगकर्ता आईडी की सूची जो विशिष्ट प्रयोग के प्रतिभागी हैं, वह समूह जिसमें प्रत्येक उपयोगकर्ता को असाइन किया गया था और टाइमस्टैम्प जब उपयोगकर्ता को असाइन किया गया था आउटपुट Order lifecycle database : उन उपयोगकर्ताओं की सूची जो आपके प्रयोग के दायरे में हैं और टाइमस्टैम्प जब उन्हें प्रयोग में नामांकित किया गया था इनपुट : उन सभी आदेशों की अंतिम स्थिति जो इन उपयोगकर्ताओं से संबद्ध हैं और उपयोगकर्ता द्वारा प्रयोग में नामांकित किए जाने के बाद संसाधित किए गए थे आउटपुट इस डेटा के आधार पर आप प्रत्येक प्रयोग समूह के लिए सफलतापूर्वक बनाए गए % ऑर्डर की गणना कर सकते हैं. अपने परिणामों का विश्लेषण करते समय, केवल अपरिष्कृत संख्याओं से परे देखना महत्वपूर्ण है। आप यह सुनिश्चित करने के लिए सांख्यिकीय महत्व भी देखना चाहेंगे कि आपके द्वारा अपने परीक्षण समूहों के बीच कोई भी अंतर केवल यादृच्छिक अवसर के कारण नहीं है। मैं इस हिस्से पर बहुत अधिक ध्यान केंद्रित नहीं करूंगा क्योंकि मैं पहले से ही इस विषय से संबंधित बहुत सारे लेख इस और अन्य ऑनलाइन संसाधनों के साथ देख चुका हूं। वैसे भी, यहां अत्यधिक ज्ञान की आवश्यकता नहीं है: मेरी राय में, 2 समूहों के बीच अंतर के महत्व की जांच के लिए लागू करने में सक्षम होना पर्याप्त होगा। या टी-टेस्ट जेड-टेस्ट फिर भी, एक बार जब आप यह निर्धारित कर लेते हैं कि आपके परिणाम सांख्यिकीय रूप से महत्वपूर्ण हैं, तो आप निष्कर्ष निकालना शुरू कर सकते हैं कि आपके उत्पाद के किस विकल्प ने बेहतर प्रदर्शन किया। 4. पसंदीदा विकल्प को बढ़ाना जब आप एक प्रयोग सफलतापूर्वक चला लेते हैं और सर्वोत्तम विकल्प के संबंध में पर्याप्त मात्रा में विश्वास प्राप्त कर लेते हैं, तो अगला कदम अपने उत्पाद में अपने परिवर्तनों को बढ़ाना है। कई दृष्टिकोण हो सकते हैं: अपने प्रयोग के कॉन्फ़िगरेशन को समायोजित करना सबसे आसान है ताकि आपको भविष्य में कोड को साफ़ करने के लिए कुछ समय आरक्षित रखना होगा ताकि UI के इस विशिष्ट भाग को प्रदर्शित करना प्रयोग परिवेश से स्वतंत्र हो 100% उपयोगकर्ता बेहतर परिणाम दिखाने वाले समूह के अंतर्गत आ जाएं। अगर आपका उत्पाद कई प्लेटफॉर्म पर उपलब्ध है तो यह कम स्पष्ट है। कभी-कभी पछताने के बजाय सुरक्षित रहना बेहतर होता है और इसी तरह एक अलग प्रयोग चलाते हैं, लेकिन दूसरे प्लेटफॉर्म पर। यह मानने में अतिरिक्त सावधानी बरतें कि वेब प्रवाह पर प्रयोगों के परिणाम मोबाइल ऐप प्रवाह (और इसके विपरीत) पर लागू होते हैं। समाप्त करने के लिए किसी भी उत्पाद प्रबंधक के लिए अपना खुद का प्रयोग परिवेश होना एक बहुत ही उपयोगी उपकरण है। भले ही आपका वर्तमान उत्पाद परिपक्वता के किसी भी चरण में हो, एक प्रयोग परिवेश बनाने में बहुत अधिक समय नहीं लगना चाहिए। इसे काम करने के लिए काफी कम एकमुश्त लागत का भुगतान करने से आपको निवेश पर प्रतिफल काफी जल्दी दिखाई देगा। अंत में, यह सुनिश्चित करने के लिए यहां कुछ युक्तियां दी गई हैं कि प्रयोग के परिणाम सार्थक हों: सबसे पहले, समझें कि आप जिस परिवर्तन पर विचार कर रहे हैं, उसे लागू करने से कौन से मीट्रिक प्रभावित होंगे (यदि कोई हो)। अपना प्रयोग शुरू करने से पहले अपने लक्ष्यों और मीट्रिक को स्पष्ट रूप से परिभाषित करें अपने प्रयोग को यथासंभव सरल रखें, एक समय में एक महत्वपूर्ण परिवर्तन पर ध्यान केंद्रित करें अन्य प्लेटफॉर्म या अन्य समान सेवाओं पर अपने प्रयोग के परिणामों के बहिर्वेशन पर विचार करते समय सावधान रहें इन सर्वोत्तम प्रथाओं का पालन करके, आप एक प्रभावी प्रयोग वातावरण स्थापित कर सकते हैं जो आपको डेटा-संचालित निर्णय लेने में मदद कर सकता है और समय के साथ आपकी रूपांतरण दरों को बढ़ा सकता है।