केस स्टडी
आपके ऐप में पेमेंट फ़ॉर्म गलत भाषा और देश में
एक क्लाइंट के ऐप में हर जगह अंग्रेज़ी थी, सिर्फ़ कार्ड जोड़ने वाले स्टेप में दूसरी भाषा दिख रही थी और बिलिंग देश पहले से चुना हुआ था। हमें क्या मिला, हमने क्या बदला, और कोड में किया सुधार ग्राहकों तक क्यों नहीं पहुँचा, यह यहाँ है।
मुख्य बातें
- आपके ऐप की भाषा और आपके फ़ोन की भाषा, दो अलग सेटिंग हैं, और कार्ड फ़ॉर्म गलत वाली मान सकता है।
- पहले से भरा हुआ बिलिंग देश ग्राहक की नज़र से छूट जाना आसान है, और यह पूछने लायक है कि वह वहाँ क्यों है।
- कोड में मर्ज किया सुधार ग्राहकों तक तब तक नहीं पहुँचता जब तक नया वर्शन पब्लिश होकर इंस्टॉल न हो जाए।
- आप ख़ुद जाँच सकते हैं: अपने फ़ोन की भाषा बदलकर अपने ही ऐप में कार्ड जोड़ें।
- जब पेमेंट का सुधार तैयार हो, तो पूछें कि पुराने ऐप वर्शन अब भी चलते हैं या नहीं, क्योंकि वे आपके सर्वर से बात करते रहते हैं।
ग्राहक आपका ऐप अंग्रेज़ी में खोलता है, खरीदारी के आख़िरी स्टेप तक पहुँचता है, और कार्ड फ़ॉर्म ऐसी भाषा में खुल जाता है जो वह पढ़ ही नहीं सकता। बिलिंग देश पहले से भरा हुआ है, और वह उसका नहीं है। भुगतान पूरा करने के लिए उसे या तो अनजाने खाने समझने पड़ते हैं या पैसे देते-देते फ़ोन में कुछ बदलना पड़ता है।
एक क्लाइंट के लिए हमें यही देखने को कहा गया था, और एक शिकायत के पीछे दो समस्याएँ थीं। एक तीसरी बात भी जानने लायक थी: कोड में सुधार करना और ग्राहकों तक पहुँचना, दोनों अलग बातें हैं।
बिज़नेस को क्या दिखा
ऐप अंग्रेज़ी में इस्तेमाल करने वाले ग्राहकों को कार्ड जोड़ने का फ़ॉर्म दूसरी भाषा में दिख रहा था, और बिलिंग पते में पहले से कोई दूसरा देश चुना हुआ आ रहा था।
ग्राहक के लिए यह सबसे बुरे वक़्त पर रुक जाना है। उसने तय कर लिया है कि उसे क्या चाहिए, और कार्ड वाला स्टेप ही वह जगह है जहाँ पैसे का लेन-देन होता है। जो स्क्रीन बाक़ी ऐप से मेल नहीं खाती, वह लोगों को झिझकने पर मजबूर करती है, और बिलिंग देश पहले से भरा हो तो उसे नज़रअंदाज़ करना या गलत छोड़ देना आसान है।
हमारे सामने जो लक्ष्य रखा गया वह सीमित था: ग्राहक भाषा बदले बिना कार्ड जोड़ सके, और बिलिंग पता गलत भरे बिना। हमें यह भी कहा गया था कि पहले से चुने देश को किसी और देश से बदलने से पहले यह पता लगाएँ कि वह सेट क्यों किया गया था।
ऐसे ऐप्स में यह क्यों होता है
आपके ऐप की भाषा और आपके फ़ोन की भाषा, दो अलग सेटिंग हैं, और पेमेंट फ़ॉर्म गलत वाली मान सकता है।
हमारे अनुभव में, ऐप में इंसान अपनी भाषा ऐप के अंदर चुनता है, और अलग से फ़ोन की सेटिंग में सिस्टम भाषा तय होती है। ऐप की अपनी स्क्रीन पहली वाली मानती हैं। लेकिन कार्ड फ़ॉर्म आम तौर पर एक अलग हिस्सा होता है, जो आपके कार्ड भुगतान संभालने वाले की तरफ़ से आता है, और वह डिवाइस की सेटिंग पढ़ता है।
इसीलिए एक ही ऐप हर जगह अंग्रेज़ी में दिख सकता है और पेमेंट स्टेप दूसरी भाषा में खुल सकता है। कुछ टूटा नहीं है; दो हिस्से दो अलग सेटिंग पढ़ रहे हैं, और किसी ने पेमेंट फ़ॉर्म को नहीं बताया कि कौन सी माननी है।
बिलिंग देश अलग मामला है। कार्ड फ़ॉर्म में कोई देश पहले से चुना हुआ आ सकता है, और हमारे अनुभव में यह मान अक्सर पहले की सेटअप वाली काम से बचा हुआ होता है, न कि किसी ने जान-बूझकर तय किया हो, लेकिन यह जानने का एक ही तरीक़ा है कि जिसने इसे बनाया उससे पूछा जाए। जो भी हो, ग्राहक ने इसे कभी चुना ही नहीं और शायद ध्यान से देखे भी नहीं।
दोनों समस्याएँ तब तक नज़र नहीं आतीं जब तक किसी ऐसे ग्राहक का फ़ोन या कार्ड कहीं और का न हो और वह उस स्टेप तक न पहुँचे। विदेश से भुगतान लेने वाले ऐप को अक्सर ऐसे ही ग्राहक मिलते हैं: बाहर से भुगतान करने वाले लोग, या ऐसे निवासी जिनका फ़ोन किसी और भाषा में सेट हुआ था।
हमारे इंजीनियरों को क्या मिला
पेमेंट फ़ॉर्म ऐप के अंदर चुनी गई भाषा के बजाय फ़ोन की सिस्टम भाषा में खुल रहा था, यानी ग्राहक की अपनी सेटिंग को नज़रअंदाज़ किया जा रहा था।
बिलिंग देश पहले से चुना हुआ आ रहा था, और हम यह पता नहीं लगा पाए कि ख़ास वही देश क्यों था। चूँकि हमें कहा गया था कि बिना कारण जाने उसे किसी और से न बदलें, हमने यह सवाल खुला छोड़ दिया और पहले से चुना हुआ देश हटा दिया। अब किसी के लिए देश पहले से नहीं चुना जाता।
हमने तुरंत जवाब दिया, और बदलाव एक कार्यदिवस के अंदर तैयार था।
हमने क्या बदला
अब ऐप के अंदर ग्राहक की चुनी हुई भाषा ही कार्ड फ़ॉर्म की भाषा तय करती है।
- जब ऐप का इंटरफ़ेस अंग्रेज़ी में हो तो पेमेंट फ़ॉर्म अंग्रेज़ी में ही खुलता है, भले ही फ़ोन किसी और सिस्टम भाषा में सेट हो। ऐप के अंदर की गई पसंद को प्राथमिकता मिलती है।
- कार्ड जोड़ने से पहले ग्राहक से ख़ुद बिलिंग देश चुनने को कहा जाता है। कोई देश पहले से चुना हुआ नहीं होता।
दोनों बदलाव मोबाइल ऐप में किए गए और कोड की मुख्य ब्रांच में मर्ज कर दिए गए।
इसका नतीजा क्या निकला
कोड की जाँच बिना किसी टिप्पणी के पास हो गई, और ऐप तथा सर्वर दोनों के टेस्ट सूट पास हुए। सर्वर इंटरफ़ेस ऐप के पुराने वर्शन के साथ भी चलता रहा, और यह ज़रूरी है: जिन ग्राहकों ने अपडेट नहीं किया, उन्हें बाक़ी सबके लिए किए बदलाव से बाहर नहीं किया जाना चाहिए।
नया वर्शन अभी App Store या Google Play पर पब्लिश नहीं हुआ है, इसलिए जिन ग्राहकों के फ़ोन में ऐप पहले से इंस्टॉल है, उन्हें अब भी पुराना ही व्यवहार दिखता है। सुधार कोड में मौजूद है, उनके डिवाइस पर अभी नहीं।
उन तक पहुँचाने के लिए रिलीज़ के स्टेप चाहिए: साइन किए हुए बिल्ड तैयार करके स्टोर पर अपलोड करना, और पब्लिश होने पर सर्वर पर रिलीज़ दर्ज करना। जब तक यह नहीं होता, आज कार्ड जोड़ने वाले ग्राहक के लिए दिखने में कुछ नहीं बदला।
आप ख़ुद क्या जाँच सकते हैं
- अपने फ़ोन की सिस्टम भाषा अपने ऐप की भाषा से अलग कर लें, फिर अपने ही ऐप में कार्ड जोड़ने वाले स्टेप से गुज़रें। अगर पेमेंट के खाने ऐप की भाषा के बजाय फ़ोन की भाषा में आते हैं, तो फ़ॉर्म डिवाइस को मान रहा है।
- बिलिंग देश को छूने से पहले देखें। अगर कोई देश पहले से भरा है, तो जिसने पेमेंट स्टेप सेट किया उससे पूछें कि वह वहाँ क्यों है और क्या वह आपके ग्राहकों के लिए ही रखा गया था।
- अपने डेवलपर से पूछें कि सुधार कोड में है या स्टोर पर पब्लिश हो चुका है, और आपके ग्राहक कौन सा वर्शन चला रहे हैं। ये दो अलग बातें हैं, और ग्राहक को दिखने वाली चीज़ सिर्फ़ दूसरी बदलती है।
- अपने ऐप की स्टोर लिस्टिंग में सबसे नया पब्लिश वर्शन देखें, और याद रखें कि फ़ोन उस पर तभी जाता है जब ग्राहक अपडेट करता है।
- अगली रिलीज़ से पहले अपने डेवलपर से कहें कि पेमेंट स्टेप किसी और भाषा में सेट फ़ोन पर, और ऐसे देश के कार्ड के साथ जो पहले से चुना हुआ न हो, चलाकर देखें।
- पूछें कि बदलाव के बाद पुराने ऐप वर्शन अब भी चलते हैं या नहीं। अगर सर्वर उनका भेजा हुआ मानना बंद कर दे, तो उन ग्राहकों को एरर मिलेगा।
- रिलीज़ लंबित हो तो पेमेंट सेटिंग, स्टोर लिस्टिंग या सर्वर सेटिंग ख़ुद न बदलें। जो ऐप देखता है उससे पूछें।
आगे क्या करें
ऐसे सुधार के बाद काम का सवाल सिर्फ़ यह नहीं है कि वह हुआ या नहीं, बल्कि यह भी है कि वह किसी तक पहुँचा या नहीं। कोड में पड़ा बदलाव और ग्राहक को दिखने वाला बदलाव, दो अलग चीज़ें हैं, और उलझन अक्सर इसी अंतर से शुरू होती है।
तीन सवाल आपको जो ऐप देखता है उससे साफ़ जवाब दिला देंगे:
- सुधार कोड में है, या स्टोर पर पब्लिश हो चुका है?
- ग्राहक कौन सा वर्शन चला रहे हैं, और आपको यह कैसे पता?
- जिन ग्राहकों ने अपडेट नहीं किया उनका क्या होगा?
अगर आप ऐप में कार्ड से भुगतान लेते हैं, तो ये सवाल ग्राहक की शिकायत के बाद नहीं, अगली रिलीज़ से पहले पूछने लायक हैं। मोबाइल ऐप में पेमेंट स्टेप वैसा ही काम है जो हमारे इंजीनियर क्लाइंट के लिए करते हैं।
लोग जो पूछते हैं
मेरा ऐप पेमेंट फ़ॉर्म बाक़ी ऐप से अलग भाषा में क्यों दिखाता है?
ऐप और फ़ोन, दोनों की अपनी भाषा सेटिंग होती है। आपके ऐप की अपनी स्क्रीन वह भाषा मानती हैं जो ग्राहक ने ऐप के अंदर चुनी, जबकि कार्ड फ़ॉर्म आम तौर पर एक अलग हिस्सा होता है जो आपके कार्ड भुगतान संभालने वाले की तरफ़ से आता है, और वह फ़ोन की सिस्टम भाषा पढ़ सकता है। समाधान यह है कि पेमेंट फ़ॉर्म को बताया जाए कि कौन सी भाषा माननी है, ऐप से ली गई, न कि यह चुनाव डिवाइस पर छोड़ दिया जाए।
क्या ग्राहकों के लिए बिलिंग देश पहले से भरा होना चाहिए?
इस मामले में कार्ड फ़ॉर्म में देश पहले से चुना हुआ आ रहा था, और हम पता नहीं लगा पाए कि वह ऐसा क्यों सेट था। हमें कहा गया था कि बिना कारण जाने उसे किसी और देश से न बदलें, इसलिए हमने पहले से चुना हुआ देश हटा दिया: अब ग्राहक कार्ड जोड़ने से पहले ख़ुद बिलिंग देश चुनता है। क्या कोई डिफ़ॉल्ट आपके अपने ग्राहकों के लिए ठीक है, यह जो आपका ऐप देखता है उससे पूछने लायक है।
सुधार हो गया है, फिर भी मेरे ग्राहकों को पुराना व्यवहार क्यों दिखता है?
क्योंकि कोड में सुधार और ग्राहक के फ़ोन पर सुधार, दो अलग पड़ाव हैं। कोड में मर्ज किया बदलाव ग्राहकों तक तभी पहुँचता है जब नया वर्शन बनकर, साइन होकर, ऐप स्टोर पर अपलोड होकर और उनके डिवाइस पर इंस्टॉल हो जाए। इस मामले में बदलाव कोड में था, जबकि नया वर्शन अभी पब्लिश नहीं हुआ था।
मुझे कैसे पता चलेगा कि मेरे ग्राहक असल में कौन सा ऐप वर्शन चला रहे हैं?
स्टोर लिस्टिंग सबसे नया पब्लिश वर्शन दिखाती है, यह नहीं कि किस ग्राहक के पास क्या है, क्योंकि लोग अलग-अलग समय पर अपडेट करते हैं। आपका डेवलपर आपके ऐप स्टोर अकाउंट में रिलीज़ का इतिहास देख सकता है। उससे सीधे पूछें कि कौन सा वर्शन पब्लिश है और वह कैसे पक्का करेगा कि ग्राहक उस पर आ गए हैं।
क्या पेमेंट फ़ॉर्म बदलने से ऐप के पुराने वर्शन वाले ग्राहकों पर असर पड़ सकता है?
हाँ, अगर सर्वर ऐप के पुराने वर्शन का भेजा हुआ मानना बंद कर दे। इसीलिए काम के दौरान ही, बाद में नहीं, यह जाँच लेना ठीक रहता है कि पुराने वर्शन चलते रहेंगे या नहीं। इस मामले में सर्वर इंटरफ़ेस ऐप के पुराने वर्शन के साथ चलता रहा, और ऐप तथा सर्वर दोनों के टेस्ट सूट पास हुए।