म पक्का छु कि तपाईंले स्ट्रेक्सको बारेमा सुन्नुभएको छ वा एउटासँग एउटा एप प्रयोग गर्नुभएको छ। तर कहिल्यै सोच्नुभएको छ किन स्ट्रिक्सहरू यति लोकप्रिय र शक्तिशाली छन्? ठिक छ, त्यहाँ एउटा स्पष्ट छ कि एपहरूले तपाईंको ध्यान सकेसम्म धेरै चाहन्छन्, तर त्यसबाहेक, के तपाईंलाई थाहा छ कि जब लोकप्रिय सिकाउने एप डुओलिंगोले स्ट्रिक्सहरू प्रदर्शन गर्न आईओएस विजेटहरू प्रस्तुत गर्यो, प्रयोगकर्ता प्रतिबद्धता 60% ले बढ्यो। साठ प्रतिशत व्यवहारमा ठूलो परिवर्तन हो र कसरी "स्ट्रीक" ढाँचाहरू संलग्नता र ड्राइभ प्रयोग बढाउन प्रयोग गर्न सकिन्छ भनेर देखाउँछ। यसको सबैभन्दा आधारभूत रूपमा, एक स्ट्रीक भनेको लगातार दिनहरूको संख्या हो जुन प्रयोगकर्ताले एक विशेष गतिविधि पूरा गर्दछ। केही व्यक्तिहरूले यसलाई "गामीफाइड" बानी वा निरन्तर प्रयोगलाई प्रोत्साहित गर्न डिजाइन गरिएको मेट्रिकको रूपमा पनि परिभाषित गर्छन्। तर रेखाहरू मेट्रिक वा एपमा रेकर्ड हुनुभन्दा पनि परे। त्यो भन्दा बढी मनोवैज्ञानिक छ। मानव प्रवृत्तिलाई सही कारकहरूद्वारा प्रभाव पार्न सजिलो हुन्छ। यी तीन कारकहरू हेर्नुहोस्: प्रगति, गर्व, र हराउने डर (सामान्यतया FOMO भनिन्छ)। यी सबैमा के समानता छ? प्रयास। तपाईंले कुनै कुरामा जति धेरै प्रयास गर्नुहुन्छ, त्यति नै यसले तपाईंको पहिचानलाई आकार दिन्छ, र यसरी व्यवहार मनोविज्ञानको संसारमा स्ट्रीक्सहरू पार हुन्छन्। अब, ठूलो शक्तिको साथ ठूलो जिम्मेवारी आउँछ, र त्यसको कारणले, त्यहाँ लकीरहरूको अँध्यारो पक्ष छ। यस लेखमा, हामी मनोविज्ञान, UX, र प्रभावकारी स्ट्रीक प्रणाली निर्माणको पछाडि डिजाइन सिद्धान्तहरूमा जानेछौं। हामी हेर्नेछौं (१) किन हाम्रो दिमागले लगभग सहज रूपमा स्ट्रीक गतिविधिमा प्रतिक्रिया दिन्छ, (2) कसरी स्ट्रीकहरू डिजाइन गर्ने तरिकाहरू जसले प्रयोगकर्ताहरूलाई साँच्चै मद्दत गर्दछ, र (3) स्ट्रीक ढाँचा निर्माणमा संलग्न प्राविधिक कार्य। स्ट्रिक्स पछाडिको मनोविज्ञान प्रभावकारी स्ट्रीक प्रणाली डिजाइन र निर्माण गर्न, हामीले हाम्रो दिमाग कसरी तारसँग जोडिएको छ भनेर बुझ्न आवश्यक छ। जस्तै, के ले यसलाई यति प्रभावकारी बनाउँछ कि हामीले हाम्रा स्ट्रिक्सहरू जोगाउन यत्तिको गहन समर्पण महसुस गर्छौं? त्यहाँ तीन चाखलाग्दो, राम्ररी दस्तावेज मनोविज्ञान सिद्धान्तहरू छन् जसले समर्थन गर्दछ कि स्ट्र्याकहरू यति शक्तिशाली र लत बनाउँछ। हानि तिरस्कार यो शायद streaks पछि सबैभन्दा बलियो बल हो। म यो भन्छु किनभने धेरै पटक, तपाइँ लगभग जीवनमा यसलाई बेवास्ता गर्न सक्नुहुन्न। यसलाई यसरी सोच्नुहोस्: यदि एक साथीले तपाईंलाई $ 100 दिन्छ भने, तपाईं खुसी हुनुहुनेछ। तर यदि तपाईंले आफ्नो वालेटबाट $100 गुमाउनुभयो भने, यसले अझ बढी चोट पुर्याउनेछ। ती अवस्थाहरूको भावनात्मक वजन बराबर छैन। लाभले राम्रो महसुस गर्नु भन्दा घाटाले धेरै पीडा दिन्छ। यसलाई अगाडि लैजानुहोस् र भन्नुहोस् कि म तपाईंलाई $ 100 दिन्छु र तपाईंलाई जुवा खेल्न भन्छु। तपाईंले अर्को $100 जित्ने 50% मौका छ र तपाईंले मूल $100 गुमाउने 50% मौका छ। तपाईं यसलाई लिनुहुन्छ? म गर्दिन। अधिकांश मानिसहरूले गर्दैनन्। त्यो घाटा बेवास्ता हो। यदि तपाईंले यसको बारेमा सोच्नुभयो भने, यो तार्किक छ, यो बुझ्न योग्य छ, यो मानव हो। गुमाउनुको पछाडिको अवधारणा भनेको समान मूल्यको चीज प्राप्त गर्दाको आनन्द भन्दा दोब्बर चीज गुमाउनुको पीडा महसुस हुन्छ। मनोवैज्ञानिक सर्तहरूमा, घाटा लाभ भन्दा बढी रहन्छ। तपाईंले सायद देख्नुहुन्छ कि यो कसरी स्ट्रेक्ससँग सम्बन्धित छ। एक उल्लेखनीय लकीर निर्माण गर्न, यो प्रयास आवश्यक छ; लकीर बढ्दै जाँदा, यसको पछाडिको प्रेरणा फिक्का हुन थाल्छ; वा अझ सही रूपमा, यो माध्यमिक हुन थाल्छ। यहाँ एउटा उदाहरण छ: भन्नुहोस् कि तपाईंको साथीको एप्पल वाचमा तिनीहरूको "मुभ रिंगहरू" बन्द गर्ने तीन-दिनको स्ट्रीक छ। तिनीहरूसँग आफ्नो लक्ष्य हासिल गर्न र निरन्तर रहन चाहने भन्दा बाहिर गुमाउनको लागि लगभग केहि छैन। एकै समयमा, तपाईंसँग एक प्रभावशाली 219-दिनको स्ट्रीक गइरहेको छ। संभावनाहरू छन् कि तपाइँ यसलाई गुमाउने डरले फस्नु भएको छ। तपाईंले सम्भवतः यस बिन्दुमा उपलब्धिको बारेमा सोचिरहनुभएको छैन; यो तपाइँको लगानी प्रयास को रक्षा को बारे मा अधिक छ, र त्यो घाटा घृणा हो। डुओलिङ्गोले आफ्नो अल्छी दिनहरूमा समेत, लामो स्ट्रीक तोड्न प्रयोगकर्ताको अनिच्छामा कसरी हानिबाट बच्न योगदान गर्छ भनी वर्णन गर्दछ। एक तरिकामा, एक स्ट्रीक एक बानी मा परिणत हुन सक्छ जब घाटा घृणा बस्छ। Fogg व्यवहार मोडेल (B = MAP) अब जब हामी लामो स्ट्रीकहरूमा लगानी गरेको प्रयास गुमाउने डर बुझ्छौं, अर्को प्रश्न यो छ: के ले हामीलाई पहिलो स्थानमा, दिनदिनै, स्ट्रीक ठूलो हुनु अघि नै काम गर्न लगाउँछ? फोग व्यवहार मोडेलको बारेमा यही हो। यो अपेक्षाकृत सरल छ। एक व्यवहार (B) मात्र तब हुन्छ जब तीन कारकहरू - प्रेरणा (M), क्षमता (A), र प्रम्प्ट (P) - एउटै क्षणमा पङ्क्तिबद्ध। यसरी, समीकरण B=MAP। यदि यी कारकहरू मध्ये कुनै पनि, त्यो क्षणमा हराइरहेको छ भने, व्यवहार हुनेछैन। त्यसोभए, एक स्ट्रीक प्रणाली कुशल र आवर्ती हुनको लागि, सबै तीन कारकहरू उपस्थित हुनुपर्छ: प्रेरणा यो नाजुक छ र लगातार उपस्थित भएको कुरा होइन। त्यहाँ दिनहरू छन् जब तपाईं हुनुहुन्छस्पेनिश सिक्नको लागि पम्प गर्नुहोस्, र दिनहरू तपाईंले भाषा सिक्नको लागि इच्छाशक्तिको अलिकति पनि महसुस गर्नुहुन्न। बानी निर्माण गर्नको लागि प्रेरणा आफैंमा अविश्वसनीय र पहिलो दिनबाट हार्ने लडाई हो। क्षमता प्रेरणा को सीमाहरु को लागी क्षतिपूर्ति गर्न को लागी, क्षमता महत्वपूर्ण छ। यस सन्दर्भमा, क्षमता भनेको कार्यको सहजता हो, अर्थात्, प्रयास यति सजिलो छ कि यो सम्भव छैन भन्न अवास्तविक छ। धेरैजसो एपहरूले जानाजानी यो प्रयोग गर्छन्। Apple Fitness ले तपाइँलाई तपाइँको स्ट्यान्ड लक्ष्यमा टिक कमाउन एक घण्टामा एक मिनेट उभिनु आवश्यक छ। Duolingo लाई केवल एउटा पूरा पाठ चाहिन्छ। यी कार्यहरू गर्न यति धेरै प्रयास आवश्यक छैन। बाधा यति कम छ कि तपाईंको सबैभन्दा खराब दिनहरूमा पनि, तपाईंले यो गर्न सक्नुहुन्छ। तर चलिरहेको स्ट्रीकको संयुक्त प्रयास हो जहाँ त्यो स्ट्रीक गुमाउने विचार भित्रिन्छ। Prompt यो समीकरण पूरा गर्ने कुरा हो। मानिस स्वाभाविक रूपमा बिर्सने हो, त्यसैले हो, क्षमताले हामीलाई त्यहाँ 90% प्राप्त गर्न सक्छ। तर प्रम्प्टले हामीलाई कार्य गर्न सम्झाउँछ। स्ट्रेक्सहरू डिजाइनद्वारा स्थिर हुन्छन्, त्यसैले प्रयोगकर्ताहरूलाई कार्य गर्न निरन्तर सम्झाउन आवश्यक छ। प्रम्प्ट कत्तिको शक्तिशाली हुन सक्छ भनी हेर्नको लागि, Duolingo ले एपको आइकनमा रहेको सानो रातो ब्याजले लगातार प्रयोग बढाएको छ कि छैन भनी हेर्नको लागि A/B परीक्षण गर्‍यो। यसले दैनिक सक्रिय प्रयोगकर्ताहरूमा 6% वृद्धि उत्पादन गर्यो। रातो बिल्ला मात्र। मोडेल सीमाहरू यो सबै भनिएको छ, त्यहाँ Fogg मोडेलको एक सीमा छ जहाँ आलोचकहरू र आधुनिक अनुसन्धानले ध्यान दिएका छन् कि एक डिजाइन जसले आक्रामक सूचनाहरू जस्तै प्रम्प्टहरूमा धेरै निर्भर गर्दछ, मानसिक थकान सिर्जना गर्ने जोखिम। निरन्तर सूचनाहरू र ओभरटाइमले प्रयोगकर्ताहरूलाई मन्थन गर्न सक्छ। त्यसोभए, यसको लागि सावधान रहनुहोस्। Zeigarnik प्रभाव आयोजनाको काम आधा गर्न छोड्दा कस्तो लाग्छ ? यसले धेरै मानिसहरूलाई रिस उठाउँदछ किनभने अधूरा कार्यहरूले हामीले पूरा गर्ने कुराहरू भन्दा बढी मानसिक ठाउँ ओगटेको छ। जब कुनै कुरा गरिन्छ र गयो, हामी यसलाई बिर्सने प्रवृत्ति हुन्छ। जब केहि पूर्ववत छोडिन्छ, यसले हाम्रो दिमागमा तौल गर्छ। यही कारणले गर्दा डिजिटल उत्पादनहरूले कृत्रिम प्रगति सूचकहरू प्रयोग गर्छन्, जस्तै Upwork को प्रोफाइल पूरा गर्ने पट्टी, प्रयोगकर्तालाई उनीहरूको प्रोफाइल "60% पूर्ण" मात्र भएको थाहा दिनको लागि। यसले प्रयोगकर्तालाई उनीहरूले सुरु गरेको कुरा पूरा गर्न धकेल्छ।

अर्को उदाहरण हेरौं। तपाईंसँग एउटा गर्नुपर्ने सूची एपमा पाँचवटा कार्यहरू छन्, र दिनको अन्त्यमा, तपाईंले तीमध्ये चारवटा मात्र पूरा भएको जाँच गर्नुहुन्छ। त्यो एउटा अधूरो कार्यको कारण हामी मध्ये धेरैले अपूर्ण महसुस गर्नेछौं। त्यो, ठीक त्यहाँ, Zeigarnik प्रभाव छ। Zeigarnik effecthe मनोवैज्ञानिक Bluma Zeigarnik द्वारा प्रदर्शन गरिएको थियो, जसले वर्णन गरे कि हामी हाम्रो मेमोरीमा पूरा कार्यहरू भन्दा लामो समयसम्म अपूर्ण कार्यहरू सक्रिय राख्छौं। स्ट्रीक ढाँचा स्वाभाविक रूपमा UX डिजाइनमा यसमा ट्याप गर्दछ। मानौं तपाईं सिक्ने क्रमको ६३ औं दिनमा हुनुहुन्छ। त्यो बिन्दुमा, तपाईं अधूरो व्यवसायको निरन्तर ढाँचामा हुनुहुन्छ। तपाईको दिमागले यसको बारेमा विरलै बिर्सन्छ किनकि यो तपाईको दिमागको पछाडि बस्छ। यस बिन्दुमा, तपाइँको दिमाग तपाइँलाई सूचनाहरू पठाउने एक बन्छ। जब तपाइँ यी मनोवैज्ञानिक शक्तिहरू एकसाथ राख्नुहुन्छ, तपाइँ साँच्चै बुझ्न सुरु गर्नुहुन्छ किन स्ट्रिक्सहरू केवल एक नियमित एप सुविधा होइनन्; तिनीहरू मानव व्यवहार पुन: आकार दिन सक्षम छन्। तर कतै कतै - म ठ्याक्कै कहिले भन्न सक्दिन, किनकि यो सबैका लागि फरक हुन्छ - चीजहरू यस्तो बिन्दुमा पुग्छन् जहाँ एक स्ट्रीक "रमाइलो" बाट केहि चीजमा सर्छ जुन तपाईंले गुमाउन सक्नुहुन्न। तपाई ५८ दिनको मिहिनेत खेर जान चाहनुहुन्न, हैन? यसले स्ट्रीक प्रणालीलाई प्रभावकारी बनाउँछ। यदि सही गरियो भने, स्ट्रिक्सहरूले प्रयोगकर्ताहरूलाई लक्ष्य हासिल गर्ने आश्चर्यजनक बानीहरू निर्माण गर्न मद्दत गर्दछ। यो दैनिक पढ्ने वा लगातार जिम हिर्काउन सक्छ। यी दोहोरिने कार्यहरू (कहिलेकाँही साना) समयसँगै मिश्रित हुन्छन् र हाम्रो दैनिक जीवनमा स्पष्ट हुन्छन्। तर हरेक सिक्काका दुई पाटा हुन्छन् । बानी र बाध्यता बीचको पातलो रेखा यदि तपाइँ पछ्याउँदै हुनुहुन्छ भने, तपाइँ पहिले नै बताउन सक्नुहुन्छ कि स्ट्रीक प्रणालीहरूको अँध्यारो पक्ष छ। बानी गठन बारम्बार लक्ष्य संग स्थिरता को बारे मा छ। बाध्यता, तथापि, एक लक्ष्यमा काम गर्ने स्थिरता हो जुन अब आवश्यक छैन तर डर वा दबाबमा राखिएको छ। यो रेजर-पातलो रेखा हो। तपाईं हरेक बिहान आफ्नो दाँत माझ्नुहुन्छ बिना सोच; यो स्वचालित र सहज छ, राम्रो सास लिने स्पष्ट लक्ष्य संग। यो एक स्ट्रीक हो जसले राम्रो बानी बनाउँछ। नैतिक स्ट्रीक प्रणालीले प्रयोगकर्ताहरूलाई सास फेर्न ठाउँ दिन्छ। यदि, कुनै कारणले, तपाईंले बिहान ब्रस गर्नुहुन्न भने, तपाईं दिउँसो ब्रस गर्न सक्नुहुन्छ। लामो प्रयास गुमाउने डर बिना अपूर्णतालाई अनुमति दिइएको छ। बाध्यताले उल्टो बाटो लिन्छ, जहाँ एक लकीरले तपाईंलाई चिन्तित बनाउँछ, तपाईं दोषी वा थकित महसुस गर्नुहुन्छ, र कहिलेकाहीं, यस्तो महसुस हुन्छ कि तपाईंले आफ्नो सबै कुराको बाबजुद पनि केही हासिल गर्नुभएको छैन।काम। तपाईं काम गर्नुहुन्छ किनभने तपाईं चाहनुहुन्छ, तर किनभने तपाईं अवचेतन रूपमा आफ्नो प्रगति शून्यमा रिसेट भएको देखेर डराउनुहुन्छ। कसैले यसलाई पूर्ण रूपमा वर्णन पनि गरे, "मलाई धोका भयो जस्तो लाग्यो, तर वास्ता गरेन। मेरो स्ट्राइक बिना म केहि पनि छैन"। यसले देखाउँछ कि चरम होल्ड स्ट्रिक्स एक व्यक्ति मा हुन सक्छ। हदसम्म कि प्रयोगकर्ताहरूले उनीहरूको आत्म-मूल्यलाई मूल लक्ष्य वा कारणको सट्टा स्वेच्छाचारी मेट्रिकमा बाँध्न थाल्छन्। स्ट्रीक तिनीहरू को हुन्, तिनीहरूले के गर्छन् भनेर मात्र होइन। राम्रोसँग डिजाइन गरिएको नैतिक स्ट्रीक प्रणालीले प्रयोगकर्तालाई प्रोत्साहन जस्तो महसुस गर्नुपर्छ, दबाब वा दायित्व होइन। यो आन्तरिक र बाह्य प्रेरणाको सन्तुलनसँग सम्बन्धित छ। बाह्य प्रेरणा (बाह्य पुरस्कार, सजायबाट बच्ने) ले प्रयोगकर्ताहरूलाई सुरु गराउन सक्छ, तर आन्तरिक प्रेरणा (स्पेनिश सिक्ने जस्ता व्यक्तिगत लक्ष्यको लागि कार्य गर्नु किनभने तपाईं साँच्चै एक प्रियजनसँग कुराकानी गर्न चाहनुहुन्छ) दीर्घकालीन संलग्नताको लागि बलियो हुन्छ। राम्रो प्रणालीले बाह्य तत्वहरूको सावधानीपूर्वक प्रयोग गरेर आन्तरिक प्रेरणातर्फ अग्रसर हुनुपर्छ, अर्थात्, प्रयोगकर्ताहरूलाई उनीहरू कति टाढा आइपुगेका छन् भनेर सम्झाउने, उनीहरूले गुमाउन सक्ने कुराको धम्की नदिने। फेरि, यो एक राम्रो लाइन हो। स्ट्रीक प्रणाली डिजाइन गर्दा एक साधारण परीक्षण भनेको वास्तवमा केहि समय लिनु हो र सोच्नुहोस् कि तपाइँको उत्पादनले तपाइँको उत्पादनले सिर्जना गरेको चिन्ताको समाधान बेचेर पैसा कमाउँछ। यदि हो भने, तपाईंले प्रयोगकर्ताहरूको शोषण गर्ने उच्च सम्भावना छ। त्यसोभए अर्को प्रश्न बन्छ, यदि मैले स्ट्रीक प्रयोग गर्ने छनौट गरे भने, म यसलाई कसरी डिजाइन गर्न सक्छु जसले प्रयोगकर्ताहरूलाई उनीहरूको लक्ष्यहरू प्राप्त गर्न मद्दत गर्दछ? राम्रो स्ट्रीक प्रणाली डिजाइन को UX मलाई विश्वास छ कि यो त्यही हो जहाँ धेरैजसो परियोजनाहरूले प्रभावकारी स्ट्रीक प्रणालीलाई नेल गर्दछ वा यसलाई पूर्ण रूपमा गडबड गर्छ। राम्रो स्ट्रीक डिजाइनको केहि UX सिद्धान्तहरू मार्फत जाऔं। यसलाई प्रयासरहित राख्नुहोस् तपाईंले सायद यो पहिले नै सुन्नु भएको छ, सायद Atomic Habits जस्ता किताबहरूबाट, तर यो उल्लेख गर्न लायक छ कि बानी बसाल्न सकिने एउटा सजिलो तरिका भनेको कार्यलाई सानो र सजिलो बनाउनु हो। यो हामीले फोग व्यवहार मोडेलबाट छलफल गरेको क्षमता कारकसँग मिल्दोजुल्दो छ। कुनै पनि स्ट्रीक डिजाइनको पहिलो नियमले अझै प्रगति हासिल गर्दा आवश्यक कार्यलाई मानवीय रूपमा सकेसम्म सानो बनाउनु पर्छ। यदि दैनिक कार्य पूरा गर्न इच्छाशक्ति चाहिन्छ भने, त्यो कार्यले यसलाई पाँच दिन पछि बनाउँदैन। किन? तपाईं लगातार पाँच दिन उत्प्रेरित हुन सक्नुहुन्न। बिन्दुमा केस: यदि तपाइँ एक ध्यान एप चलाउनुहुन्छ भने, तपाइँले स्ट्रीक कायम राख्न प्रयोगकर्ताहरूलाई 20-मिनेट सत्र मार्फत जान आवश्यक छैन। एक मिनेट प्रयास गर्नुहोस्, सायद तीस सेकेन्ड जति सानो कुरा, यसको सट्टा। भनाइ अनुसार, पानीको सानो थोपाले शक्तिशाली सागर बनाउँछ)। साना प्रयासहरू समयसँगै ठूला उपलब्धिहरूमा परिणत हुन्छन्। त्यो लक्ष्य हुनुपर्छ: घर्षण हटाउनुहोस्, विशेष गरी जब क्षण गाह्रो हुन सक्छ। जब प्रयोगकर्ताहरू तनावमा वा अभिभूत हुन्छन्, उनीहरूलाई थाहा दिनुहोस् कि केही सेकेन्डका लागि पनि, प्रयासको रूपमा गनिन्छ। स्पष्ट भिजुअल प्रतिक्रिया प्रदान गर्नुहोस् मानिस स्वभावैले दृश्यात्मक हुन्छ । धेरै पटक, हामीले विश्वास गर्न केहि हेर्नु पर्छ; चीजहरूलाई अझ राम्ररी बुझ्न र चीजहरूलाई परिप्रेक्ष्यमा राख्नको लागि यो आवश्यक छ। यही कारणले गर्दा स्ट्रीक ढाँचाहरूले प्रयासलाई कल्पना गर्नका लागि ग्राफहरू, चेकमार्कहरू, प्रगति रिंगहरू र ग्रिडहरू जस्ता दृश्य तत्वहरू प्रयोग गर्छन्। GitHub को योगदान ग्राफ हेर्नुहोस्। यो स्थिरता को एक सरल दृश्य हो। यद्यपि विकासकर्ताहरूले यसलाई अक्सिजन जस्तै सास फेर्छन्।

कुञ्जी भनेको स्ट्रीक प्रणालीलाई अमूर्त महसुस गर्नु होइन। यो वास्तविक र कमाएको महसुस गर्नुपर्छ। उदाहरणका लागि, डुओलिंगो र एप्पलको फिटनेस गतिविधि रिंगहरूले स्ट्रीक पूरा भएपछि सफा एनिमेसन डिजाइनहरू प्रयोग गर्दछ, र GitHub ले समयसँगै प्रयोगकर्ताको स्थिरताको ऐतिहासिक डेटा देखाउँछ।

राम्रो समय प्रयोग गर्नुहोस् मैले पहिले उल्लेख गरें कि मानिसहरु सामान्यतया प्रकृति द्वारा बिर्सने छन्, र ती प्रम्प्टहरूले अगाडि गति कायम राख्न मद्दत गर्न सक्छ। प्रम्प्टहरू बिना, धेरैजसो नयाँ प्रयोगकर्ताहरूले जारी राख्न बिर्सन्छन्। जीवन व्यस्त हुन सक्छ, प्रेरणा गायब हुन्छ, र चीजहरू हुन्छन्। लामो समयका प्रयोगकर्ताहरूले पनि प्रम्प्टहरूबाट लाभ उठाउँछन्, यद्यपि प्रायजसो, तिनीहरू पहिले नै बानी लुप भित्र बन्द छन्। यद्यपि, सबैभन्दा प्रतिबद्ध व्यक्तिले पनि संयोगवश एक दिन गुमाउन सक्छ। तपाईंको स्ट्रीक प्रणालीलाई निश्चित रूपमा रिमाइन्डरहरू चाहिन्छ। सबैभन्दा धेरै प्रयोग गरिएका प्रम्प्ट रिमाइन्डरहरू पुश सूचनाहरू हुन्। पुश सूचनाहरूसँग काम गर्दा समय साँच्चै महत्त्वपूर्ण हुन्छ। एपको प्रकार पनि महत्त्वपूर्ण छ। 9 बजे "तपाईंले आज अभ्यास गर्नुभएको छैन" भनेर सूचना पठाउनु एउटा सिकाइ एपको लागि मात्र अनौठो छ किनभने धेरैले पाठ पूरा गर्ने बारे सोच्नु अघि दिनमा गर्नुपर्ने कामहरू हुन्छन्। यदि हामी फिटनेस एपको बारेमा कुरा गर्दैछौं, यद्यपि, योउचित छ र सायद दिनको अघि सम्झाइने अपेक्षा गरिएको छ। पुश अधिसूचनाहरू एप कोटी अनुसार महत्त्वपूर्ण रूपमा भिन्न हुन्छन्। फिटनेस एपहरू, उदाहरणका लागि, बिहान सबेरै सूचनाहरू (7-8 AM) सँग उच्च संलग्नता हेर्नुहोस्, जबकि उत्पादकता एपहरूले दिउँसोको समयमा राम्रो प्रदर्शन गर्न सक्छन्। कुञ्जी भनेको चीजहरू एक-आकार-फिट-सबै छन् भनेर मान्नुको सट्टा तपाईंको प्रयोगकर्ताहरूको व्यवहारमा आधारित तपाईंको एपको समय परीक्षण गर्नु हो। ध्यान अनुप्रयोगको लागि के काम गर्दछ कोडिङ ट्र्याकरको लागि काम नगर्न सक्छ। अन्य प्रम्प्ट विधिहरू एप आइकनमा रातो थोप्लाहरू र एप विजेटहरू पनि हुन्। अध्ययन फरक-फरक हुन्छ, तर औसत व्यक्तिले आफ्नो यन्त्रलाई दिनमा ५०-१५० पटक (PDF) अनलक गर्छ। यदि कुनै प्रयोगकर्ताले एप वा विजेटमा रातो थोप्ला देख्यो जसले हरेक पटक आफ्नो फोन अनलक गर्दा हालको स्ट्रीकलाई संकेत गर्छ, यसले प्रतिबद्धता बढाउँछ। बस यो धेरै नगर्नुहोस्; प्रम्प्टले रिमाइन्डरको रूपमा काम गर्नुपर्छ, नग। माइलस्टोनहरू मनाउनुहोस् एक स्ट्रीक प्रणालीले भावनाहरूलाई पुन: प्रज्वलित गर्न कोसेढुङ्गाहरू मनाउने प्रयास गर्नुपर्छ, विशेष गरी प्रयोगकर्ताहरूका लागि गहिराइमा। जब एक प्रयोगकर्ताले दिन 7, दिन 30, दिन 50, दिन 100, दिन 365 मा हिट गर्दछ, तपाईंले यसबाट ठूलो सम्झौता गर्नुपर्छ। उपलब्धिहरू स्वीकार गर्नुहोस् — विशेष गरी लामो समयका प्रयोगकर्ताहरूका लागि।

हामीले पहिले देख्यौं, Duolingo ले यो पत्ता लगायो र एक एनिमेटेड ग्राफिक लागू गर्यो जसले कन्फेटीसँग माइलस्टोनहरू मनाउँछ। केही प्लेटफर्महरूले प्रयोगकर्ताहरूको प्रयासलाई प्रमाणित गर्ने पर्याप्त बोनस पुरस्कारहरू पनि दिन्छन्। र यो अनुप्रयोगहरूको लागि लाभदायक हुन सक्छ, जस्तै कि प्रयोगकर्ताहरूले सामाजिक सञ्जालमा सार्वजनिक रूपमा आफ्नो माइलस्टोनहरू साझेदारी गर्ने झुकाव राख्छन्। अर्को फाइदा माइलस्टोन पुग्न अघि आउने प्रत्याशा हो। यसले स्ट्रीकलाई अनन्त रूपमा जीवित राख्नु मात्र होइन; प्रयोगकर्ताहरूले हेर्नको लागि केहि छ। अनुग्रह संयन्त्र प्रयोग गर्नुहोस् जीवन अप्रत्याशित छ। मानिसहरू विचलित हुन्छन्। कुनै पनि राम्रो स्ट्रीक प्रणाली त्रुटिपूर्ण आशा गर्नुपर्छ। स्ट्रीक प्रणालीको लागि सबैभन्दा ठूलो मनोवैज्ञानिक खतराहरू मध्ये एक मात्र छुटेको दिन पछि शून्यमा हार्ड रिसेट गर्नु हो। एक "नैतिक" स्ट्रीक प्रणालीले प्रयोगकर्तालाई केही ढिलो प्रदान गर्नुपर्छ। मानौं तपाईसँग ९०-दिने चेस सिक्ने स्ट्रीक छ। तपाईं तीन राम्रो महिनाको लागि निरन्तर हुनुहुन्छ, र एक दिन, तपाईंको फोन यात्रा गर्दा मर्छ, र त्यस्तै, 90 0 बन्छ - सबै कुरा, त्यो सबै प्रयास, मेटिन्छ, र प्रगति हराउँछ। प्रयोगकर्ता पूर्ण रूपमा विनाश हुन सक्छ। यसलाई स्क्र्याचबाट पुनर्निर्माण गर्ने सोचले यति निराशाजनक छ कि प्रयास यसको लायक छैन। सबैभन्दा नराम्रोमा, प्रयोगकर्ताले असफल भएको महसुस गरेपछि एप त्याग्न सक्छ। तपाईंको स्ट्रीक प्रणालीमा "अनुग्रह" संयन्त्र थप्ने विचार गर्नुहोस्:

Streak Freeze प्रयोगकर्ताहरूलाई जानाजानी दण्ड बिना दिन छुटाउन अनुमति दिनुहोस्। अतिरिक्त समय रिसेट ट्रिगर गर्नु अघि सामान्य समयसीमा पछि केहि घण्टा (2-3) लाई अनुमति दिनुहोस्। क्षय मोडेलहरू हार्ड रिसेटको सट्टा, स्ट्रीक थोरै मात्राले घट्छ, जस्तै, 10 दिन प्रति छुटेको दिन स्ट्रीकबाट कटौती गरिन्छ।

एक प्रोत्साहन टोन प्रयोग गर्नुहोस् स्ट्रीक ब्रेक हुँदा प्रयोगकर्ताहरूलाई देखाइएका दुई सन्देशहरू तुलना गरौं:

"तपाईंले आफ्नो 42-दिनको स्ट्रीक गुमाउनुभयो। फेरि सुरु गर्नुहोस्।" "तपाईले 42 दिनको लागि सीधा देखाउनुभयो। यो अविश्वसनीय प्रगति हो! यसलाई फेरि प्रयास गर्न चाहनुहुन्छ?"

दुबैले एउटै जानकारी दिन्छ, तर भावनात्मक प्रभाव फरक हुन्छ। पहिलो सन्देशले प्रायः प्रयोगकर्तालाई निराश महसुस गराउँछ र उनीहरूलाई छोड्ने कारण बनाउँछ। दोस्रो सन्देशले पहिले नै हासिल गरिसकेका कुराहरू मनाउँछ र प्रयोगकर्तालाई फेरि प्रयास गर्न प्रोत्साहन दिन्छ। स्ट्रीक प्रणाली डिजाइन चुनौतीहरू हामीले स्ट्रीक प्रणाली निर्माण गर्ने प्राविधिक विवरणहरूमा जानु अघि, तपाईंले सामना गर्न सक्ने चुनौतीहरू बारे सचेत हुनुपर्छ। चीजहरू जटिल हुन सक्छ, तपाईंले अपेक्षा गर्न सक्नुहुन्छ। समय क्षेत्रहरू ह्यान्डल गर्दै त्यहाँ एक कारण छ कि समय र मिति ह्यान्डलिङ सबैभन्दा कठिन अवधारणाहरु मध्ये विकासकर्ताहरु संग सम्झौता हो। त्यहाँ ढाँचा, अन्तर्राष्ट्रियकरण, र विचार गर्न धेरै धेरै छ। मलाई यो सोध्न दिनुहोस्: एक दिनको रूपमा के गणना हुन्छ? हामीलाई थाहा छ संसार फरक-फरक समय क्षेत्रहरूमा चल्छ, र त्यो पर्याप्त छैन भने, केही क्षेत्रहरूमा डेलाइट सेभिङ टाइम (DST) हुन्छ जुन वर्षमा दुई पटक हुन्छ। तपाईं यी किनारा केसहरू ह्यान्डल गर्न कहाँ सुरु गर्नुहुन्छ? भोलिको "सुरुवात" को रूपमा के गणना हुन्छ? केही विकासकर्ताहरूले UTC जस्तै एउटा केन्द्रीय समय क्षेत्र प्रयोग गरेर यसबाट बच्न प्रयास गर्छन्। केही प्रयोगकर्ताहरूको लागि, यसले सही परिणामहरू दिन्छ, तर केहीको लागि, यो एक घण्टा, दुई घण्टा, वा बढी बन्द हुन सक्छ। यो असंगतिले प्रयोगकर्ताको अनुभवलाई बिगार्छ। प्रयोगकर्ताहरूले तपाईं पर्दा पछाडिको समय कसरी ह्यान्डल गर्नुहुन्छ भन्ने कुरामा कम ध्यान दिन्छन्; तिनीहरूले केवल 11:40 p.m. मा एक स्ट्रीक कार्य प्रदर्शन गरेमा, तिनीहरूको सन्दर्भमा, त्यो सही समयमा दर्ता गर्नुपर्छ भन्ने तिनीहरूको अपेक्षा छ। तपाईंले प्रयोगकर्ताको स्थानीय समय क्षेत्रको आधारमा "एक दिन" परिभाषित गर्नुपर्छ, सर्भर समय होइन। निस्सन्देह, तपाईं सजिलो लिन सक्नुहुन्छमध्यरात UTC मा सबै प्रयोगकर्ताहरूको लागि विश्वव्यापी रूपमा मार्ग र रिसेट स्ट्रीकहरू, तर तपाईं धेरै अन्याय सिर्जना गर्दै हुनुहुन्छ। क्यालिफोर्नियामा कसैसँग लन्डनमा बस्ने कसैको तुलनामा आफ्नो कार्य पूरा गर्न सधैं आठ घण्टा अतिरिक्त हुन्छ। त्यो एक अन्यायपूर्ण डिजाइन त्रुटि हो जसले निश्चित प्रयोगकर्ताहरूलाई तिनीहरूको स्थानको कारण सजाय दिन्छ। र के हुन्छ यदि त्यो व्यक्ति लन्डनमा मात्र भ्रमण गर्दैछ, एउटा कार्य पूरा गर्छ, त्यसपछि अर्को टाइमजोनमा फर्कन्छ? यी सबैको एउटा प्रभावकारी समाधान भनेको प्रयोगकर्ताहरूलाई अनबोर्डिङको क्रममा स्पष्ट रूपमा आफ्नो समय क्षेत्र सेट गर्न सोध्नु हो (प्राथमिक रूपमा पहिलो प्रमाणीकरण पछि)। यो एक सूक्ष्म नोट समावेश गर्न एक राम्रो विचार हो कि समय क्षेत्र जानकारी प्रदान गर्ने अनुप्रयोगको लागि मात्र प्रगति ट्र्याक गर्न को लागी प्रयोग गरिन्छ, बरु व्यक्तिगत रूपमा पहिचान योग्य डेटाको रूपमा प्रयोग गरिनुको सट्टा। र यो परिवर्तनीय सेटिङ बनाउन अर्को राम्रो विचार हो। म सुझाव दिन्छु कि जो कोहीले पनि एपमा टाइमजोन तर्कलाई प्रत्यक्ष रूपमा ह्यान्डल गर्नबाट जोगिन। Moment.js वा pytz (Python), आदि जस्ता प्रयास-र-सत्य मिति पुस्तकालयहरू प्रयोग गर्नुहोस्। यस जस्तो जटिल चीजको लागि व्हील पुन: आविष्कार गर्न आवश्यक छैन। छुटेका दिन र एज केसहरू तपाईंले चिन्ता गर्नुपर्ने अर्को चुनौती भनेको प्रयोगकर्ताहरू ओभरस्लीपिङ, सर्भर डाउनटाइम, ढिलाइ, नेटवर्क विफलता, र यस्तै अन्य जस्ता अनियन्त्रित किनारा केसहरू हुन्। हामीले पहिले चर्चा गरेका जस्तै अनुग्रह संयन्त्रको विचार प्रयोग गर्न मद्दत गर्न सक्छ। दुई घण्टाको अनुग्रह विन्डोले प्रयोगकर्ता र विकासकर्ता दुवैलाई मद्दत गर्न सक्छ, यो अर्थमा कि प्रयोगकर्ताहरूलाई अनियन्त्रित जीवन परिस्थितिहरूको लागि कठोर रूपमा सजाय दिइँदैन। विकासकर्ताहरूका लागि, मध्यरातमा सर्भर डाउन हुँदा ती अनियन्त्रित क्षणहरूमा अनुग्रह विन्डोजहरू उपयोगी हुन्छन्। सबै भन्दा माथि, ग्राहकलाई कहिल्यै विश्वास नगर्नुहोस्। सधैँ सर्भर-साइडमा मान्य गर्नुहोस्। सर्भर सत्यको एकमात्र स्रोत हुनुपर्छ। धोखा रोकथाम फेरि, म यसलाई पर्याप्त जोड दिन सक्दिन: सबै सर्भर-साइड प्रमाणीकरण गर्न निश्चित गर्नुहोस्। प्रयोगकर्ताहरू मानव हुन्, र अवसर दिएमा मानिसहरूले धोका दिन सक्छन्। यो अपरिहार्य छ। तपाईंले प्रयास गर्न सक्नुहुन्छ:

UTC टाइमस्ट्याम्पहरूसँग सबै कार्यहरू भण्डारण गर्दै। क्लाइन्टले आफ्नो स्थानीय समय पठाउन सक्छ, तर सर्भरले तुरुन्तै UTC मा रूपान्तरण गर्न सक्छ र सर्भर समय विरुद्ध मान्य गर्न सक्छ। यसरी, यदि ग्राहकको टाइमस्ट्याम्प शंकास्पद रूपमा टाढा छ भने, प्रणालीले यसलाई त्रुटिको रूपमा अस्वीकार गर्न सक्छ, र UI ले तदनुसार प्रतिक्रिया दिन सक्छ। घटना-आधारित ट्र्याकिङ प्रयोग गर्दै।अर्को शब्दमा, प्रयोगकर्ताको ID, कार्यको प्रकार, र टाइमस्ट्याम्प र टाइमजोन जस्ता जानकारी सहित मेटाडेटाको साथ प्रत्येक कार्यको रेकर्ड भण्डार गर्नुहोस्। यो प्रमाणीकरण संग मद्दत गर्छ।

एक स्ट्रीक प्रणाली इन्जिन निर्माण यो कोड ट्यूटोरियल होइन, त्यसैले म तपाईमा कोडको गुच्छा डम्पिङबाट बच्नेछु। म यसलाई व्यावहारिक राख्नेछु र वर्णन गर्नेछु कि कसरी चीजहरूले सामान्यतया स्ट्रीक प्रणाली इन्जिनलाई वास्तुकला, प्रवाह, र विश्वसनीयतासम्म सञ्चालन गर्दछ। कोर वास्तुकला मैले धेरै पटक भनेको छु, सर्भरलाई स्ट्रीक डाटाको लागि सत्यको एकल स्रोत बनाउनुहोस्। वास्तुकला सर्भरमा यो जस्तै केहि जान सक्छ:

प्रत्येक प्रयोगकर्ताको डाटा डाटाबेसमा भण्डार गर्नुहोस्। हालको स्ट्रीक स्टोर (0 को रूपमा पूर्वनिर्धारित) एक पूर्णांकको रूपमा भण्डार गर्नुहोस्। समयक्षेत्र प्राथमिकता भण्डार गर्नुहोस्, अर्थात्, IANA टाइमजोन स्ट्रिङ (या त स्थानीय टाइमस्ट्याम्पबाट वा स्पष्ट रूपमा प्रयोगकर्तालाई उनीहरूको समय क्षेत्र चयन गर्न सोधेर)। उदाहरण को लागी, "America/New_York"। प्रयोगकर्ताको स्थानीय समय क्षेत्रसँग सम्बन्धित टाइमजोन जाँचको साथ, स्ट्रीक जारी रहन्छ वा ब्रेक हुन्छ भनेर निर्धारण गर्न सबै तर्कहरू ह्यान्डल गर्नुहोस्।

यसैबीच, ग्राहक पक्षमा:

हालको स्ट्रीक प्रदर्शन गर्नुहोस्, सामान्यतया सर्भरबाट ल्याइएको। मेटाडेटाको रूपमा गरिएको कार्यलाई सर्भरमा पठाउनुहोस् कि प्रयोगकर्ताले वास्तवमा योग्यता स्ट्रीक कार्य पूरा गरेको छ कि छैन। सर्भर प्रतिक्रियाहरूमा आधारित दृश्य प्रतिक्रिया प्रदान गर्नुहोस्।

त्यसोभए, छोटकरीमा, मस्तिष्क सर्भरमा छ, र ग्राहक प्रदर्शन उद्देश्य र पेश गर्ने घटनाहरूको लागि हो। यसले तपाईंलाई धेरै असफलता र किनारा केसहरू बचत गर्छ, साथै अद्यावधिकहरू र समाधानहरू सजिलो बनाउँछ। तार्किक प्रवाह प्रयोगकर्ताले कार्य पूरा गर्दा न्यूनतम कुशल स्ट्रीक प्रणाली इन्जिन कसरी जानेछ भन्ने वाकथ्रु अनुकरण गरौं:

प्रयोगकर्ताले योग्यता स्ट्रीक कार्य पूरा गर्दछ। क्लाइन्टले मेटाडेटाको रूपमा सर्भरमा घटना पठाउँछ। यो "टाइमस्ट्याम्प Z मा प्रयोगकर्ता X सम्पन्न कार्य Y" हुन सक्छ। सर्भरले यो घटना प्राप्त गर्छ र आधारभूत प्रमाणीकरण गर्छ। के यो वास्तविक प्रयोगकर्ता हो? के तिनीहरू प्रमाणित छन्? के कार्य मान्य छ? समय क्षेत्र एकरूप छ? यदि यो पास हुन्छ भने, सर्भरले डाटाबेसबाट प्रयोगकर्ताको स्ट्रीक डाटा पुन: प्राप्त गर्दछ। त्यसपछि, प्राप्त कार्य टाइमस्ट्याम्पलाई प्रयोगकर्ताको स्थानीय समयक्षेत्रमा रूपान्तरण गर्नुहोस्। सर्भरलाई प्रयोगकर्ताको स्थानीय समयक्षेत्रमा पात्रो मितिहरू (टाइमस्ट्याम्पहरू होइन) तुलना गर्न दिनुहोस्: यदि यो उही दिन हो भने, कार्य निरर्थक छ र त्यहाँ कुनै परिवर्तन छैनलकीर। यदि यो अर्को दिन हो भने, स्ट्रीक विस्तार हुन्छ र 1 द्वारा वृद्धि हुन्छ। यदि त्यहाँ एक दिन भन्दा बढीको अन्तर छ भने, लकीर तोड्छ। यद्यपि, यो जहाँ तपाइँ अनुग्रह मेकानिक्स लागू गर्न सक्नुहुन्छ। यदि अनुग्रह मेकानिज्म छुटेको छ भने, त्यसपछि स्ट्रिकलाई 1 मा रिसेट गर्नुहोस्।

यदि तपाईंले माइलस्टोन उपलब्धिहरूका लागि ऐतिहासिक डेटा बचत गर्ने छनौट गर्नुभयो भने, "सबैभन्दा लामो स्ट्रीक" वा "कुल सक्रिय दिनहरू" जस्ता चरहरू अद्यावधिक गर्नुहोस्। सर्भरले त्यसपछि डाटाबेस अपडेट गर्छ र ग्राहकलाई जवाफ दिन्छ। यस्तो केहि:

{ "वर्तमान_स्ट्रीक": ४८, "सबैभन्दा लामो_स्ट्रीक": ५०, "कुल_सक्रिय_दिन": १२०, "streak_extended": सत्य, }

थप उपायको रूपमा, सर्भरले या त पुन: प्रयास गर्नुपर्छ वा अस्वीकार गर्नुपर्छ र ग्राहकलाई सूचित गर्नुहोस् जब प्रक्रियाको क्रममा केहि असफल हुन्छ। लचिलोपनको लागि भवन पहिले उल्लेख गरिएझैं, प्रयोगकर्ताहरूले बगहरू वा सर्भर डाउनटाइमको कारणले स्ट्रीक गुमाउनु भयानक UX हो, र प्रयोगकर्ताहरूले यसको लागि पतन लिने आशा गर्दैनन्। तसर्थ, तपाईंको स्ट्रीक प्रणालीमा ती परिदृश्यहरूको लागि सुरक्षाहरू हुनुपर्छ। यदि सर्भर मर्मतका लागि डाउन छ (वा जुनसुकै कारणले), यसलाई निश्चित गर्नको लागि थप घण्टाको अस्थायी सञ्झ्याललाई अनुमति दिने विचार गर्नुहोस् ताकि कार्यहरू ढिलो पेश गर्न सकिन्छ र अझै पनि गणना गर्न सकिन्छ। तपाइँ प्रयोगकर्ताहरूलाई सूचित गर्न पनि छनौट गर्न सक्नुहुन्छ, विशेष गरी यदि स्थिति जारी स्ट्रीकलाई असर गर्न सक्षम छ। नोट: एक प्रशासक ब्याकडोर स्थापना गर्नुहोस् जहाँ डाटा म्यानुअल रूपमा पुनर्स्थापित गर्न सकिन्छ। बगहरू अपरिहार्य छन्, र केही प्रयोगकर्ताहरूले तपाइँको एपलाई कल गर्नेछन् वा उनीहरूलाई नियन्त्रण गर्न नसक्ने कारणले उनीहरूको स्ट्रीक तोडिएको समर्थन गर्न पुग्नेछ। यदि, अनुसन्धान पछि, प्रयोगकर्ता सही छ भने तपाईले म्यानुअल रूपमा स्ट्रिक्सहरू पुनर्स्थापित गर्न सक्षम हुनुपर्दछ। निष्कर्ष एउटा कुरा स्पष्ट रहन्छ: मानव मनोविज्ञानले आधारभूत स्तरमा कसरी काम गर्छ भन्ने कारणले गर्दा स्ट्रेक्सहरू साँच्चै शक्तिशाली हुन्छन्। त्यहाँ सबै भन्दा राम्रो स्ट्रीक प्रणाली एक हो जुन प्रयोगकर्ताहरूले सचेत रूपमा सोच्दैनन्। यो तत्काल नतिजा वा देखिने प्रगतिको दिनचर्या भएको छ, जस्तै दाँत माझ्नु, जुन नियमित बानी बन्छ। र म यो भन्न गइरहेको छु: सबै उत्पादनहरूलाई स्ट्रीक प्रणाली चाहिँदैन। के तपाइँ साँच्चै स्थिरतालाई बल दिनु पर्छ किनभने तपाइँ दैनिक सक्रिय प्रयोगकर्ताहरू चाहनुहुन्छ? जवाफ धेरै राम्रो "होइन" हुन सक्छ।

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free