आप कैसे प्रतिक्रिया देते हैं: "कभी अपडेट के बाद ..." ग्राहकों से सवाल? [बन्द है]


19

अपडेट के बाद से, लोग कॉल करते रहते हैं और कहते हैं "जब से अपडेट एक्स, वाई और जेड धीमा, खराब और दुर्घटनाग्रस्त हो रहा है"

अद्यतनों की सुबह से ऐसा हुआ है।

लोग क्या उम्मीद करते हैं? गामा बीटा के बाद आता है, और गामा परीक्षण हमेशा हमारे उपयोगकर्ताओं को अतुल्य हक्स में बदल देता है ...

शायद आपने कभी किसी क्लाइंट से यह नहीं सुना होगा, शायद आप कॉलेज या एक FLOSS देव में हैं जो लगभग 5 या 6 से अधिक लोगों को दोष दे सकता है, शायद आप अपने कोड का परीक्षण करते हैं, शायद आप उस दिलचस्प स्थिति में नहीं हैं। जहां ग्राहक वास्तव में आपको दिन के सही समय का अनुरोध करने के लिए कहते हैं, आप आज का पैच जारी करेंगे (मैं ऐसा माइक्रोसॉफ्ट से करना पसंद करूंगा) या शायद आप मेरे जैसे सॉरी-ए-बिस्किट के लिए क्षमा करें, जिसने सिर्फ एक नया भेज दिया अद्यतन और घर चला गया और कल काम करने के लिए वापस जा रहा है।

वैसे भी, फिर भी मुझसे कहीं ज्यादा होशियार हूँ। आप "आप एक बुरा प्रोग्रामर होना चाहिए क्योंकि आप अपने सॉफ्टवेयर को बदतर बना रहे हैं" में आलोचना को कैसे क्षेत्रबद्ध किया जाता है?


1
यह हमेशा मेरे लिए होता है जब भी हम PROD
गोपी

1
कुछ हल्के प्रोफाइल रखने से जो हमेशा चालू रह सकते हैं (एक बड़ी रणनीति के हिस्से के रूप में)। "यह मज़ेदार है; डेटा दिखाते हैं कि पेज अब 5% तेज़ी से उत्पन्न हो रहा है। कौन सा हिस्सा बिल्कुल धीमा लगता है? हो सकता है कि हम इसके बारे में कुछ कर सकें ..."

1
सवाल वास्तव में है अगर एक्स, वाई और जेड वास्तव में पहले से कहीं बदतर हैं, या अगर काम पर आपके नियंत्रण से परे कुछ अन्य कारक हैं।
गेरी

"आपको एक बुरा प्रोग्रामर होना चाहिए क्योंकि आप अपने सॉफ़्टवेयर को बदतर बना रहे हैं"? ... po9ssibly ... कुछ क्षेत्रों में ... गलती से .. निम्नलिखित क्षेत्रों में इसे इतना बेहतर बनाने के लिए ...
मावग का कहना है कि मोनिका

जवाबों:


16

यदि आप हर बार तैनात होते हैं, तो आपकी विकास प्रक्रिया में गंभीर खामी हो सकती है। मुझे कुछ चीजों पर संदेह होगा जो समस्याओं का कारण बन रही हैं।

  1. क्या आप एक डेटाबेस के खिलाफ विकसित होते हैं जो उत्पादन के समान आकार (लगभग) है? यदि नहीं, तो आपको हमेशा ये समस्याएं होंगी क्योंकि छोटे डेटा सेट के साथ ठीक होने वाले प्रश्न अक्सर बड़े लोगों के साथ कुत्ते होते हैं।
  2. क्या आप QA में परीक्षण लोड करते हैं? एक उपयोगकर्ता परीक्षण के साथ क्या ठीक काम करता है यह इस बात से बहुत अलग है कि एक ही समय में चीजों को करने की कोशिश करने वाले 1000 उपयोगकर्ताओं के साथ चीजें कैसे प्रतिक्रिया देंगी।
  3. क्या आप मानते हैं कि उपयोगकर्ता की धारणा गलत है और उनके साथ ऐसा व्यवहार करें जैसे वे शिकायत करने के लिए मूर्ख हैं? यदि ऐसा है, तो आपका रवैया अधिक शिकायतें पैदा कर रहा है जो उन्हें कम नहीं कर रहा है।
  4. क्या आप परीक्षण का अच्छा काम कर रहे हैं? क्या आप प्रतिगमन परीक्षण सुविधाओं को यह देखने के लिए नहीं बदलते हैं कि क्या वे परिवर्तन से प्रभावित हैं? क्या आप भी परवाह करते हैं कि जब तक वे उत्पादों को हिट नहीं करते तब तक कितनी देर लगती है?
  5. क्या आप इस बात पर ध्यान देते हैं कि उपयोगकर्ताओं के लिए एक अच्छा समय कब होता है जब आप तैनात होते हैं या क्या आप दिन-प्रतिदिन लेखांकन प्रणाली में बदलाव को तैनात करते हैं और आश्चर्यचकित होते हैं कि उपयोगकर्ता धीमे धीमे गुस्सा क्यों कर रहे हैं?
  6. क्या आपके पास देव और उत्पादों के बीच पर्यावरणीय अंतर है। कभी-कभी ऑपरेटिंग सिस्टम या डेटाबेस संस्करणों में उन pesky अंतर भी इस तरह के मुद्दों का कारण होगा। यह अक्सर एक अच्छा विचार है कि एक स्टेजिंग एनवायरोमनेट है जो बिल्कुल ठेस के समान है, कुछ उपकरण समान ऑपरेटिंग सिस्टम, डाट के साथ एक ही डेटाबेस जो संभव के रूप में डेटा के करीब है। यह आपकी तैनाती का परीक्षण करने के लिए उपयोग किया जाता है। इसे पहले इस सर्वर पर चलाएं और कुछ उपयोगकर्ताओं या परीक्षकों को इसमें जाना है और कुछ परीक्षणों के माध्यम से चलाना है।
  7. आपकी तैनाती प्रक्रिया कितनी अच्छी है, क्या आप अक्सर चरणों को याद करते हैं? क्या यह डेवलपर के अलावा किसी अन्य व्यक्ति द्वारा चलाया जा सकता है क्योंकि यह स्पष्ट है कि आप जिस शाखा में तैनात हैं उसमें कौन सा कोड जाता है? जब हम एक कॉन्फ़िगरेशन प्रबंधन टीम प्राप्त करते हैं, तो कोड को तैनात करने में हमें बहुत बेहतर मिला और किसी को भी "उफ़्सी" परिवर्तन करने वाले उत्पादों के साथ बैठने का अधिकार नहीं था। अपने निर्माण को स्वचालित करने में काफी मदद मिल सकती है। किसी को यह अनुमान नहीं होना चाहिए कि उत्पादों को जाने की क्या आवश्यकता है क्योंकि इसे क्यूए में जाना चाहिए और पहले मंचन करना चाहिए और किसी भी विपुल मुद्दों पर काम किया। डेटाबेस परिवर्तन स्क्रिप्टिंग भी महत्वपूर्ण है। वे लिपियों में और स्रोत नियंत्रण में रहते हैं, इसलिए निर्माण प्रक्रिया उन्हें किसी को याद किए बिना उठा सकती है, अरे हाँ, हमें कॉलम बी की लंबाई 50 से 241 तक बदलने की आवश्यकता है।

अच्छे अंक: 1. हाँ, 2. कभी-कभी, 3. पास, 4. एन / ए, 5. यदि हम इसकी मदद नहीं कर सकते। मेरे पास आपके लिए एक प्रश्न है, लेकिन मैं इसके बारे में सोच सकता हूं और बाद में इसे पोस्ट कर सकता हूं।
पीटर टर्नर

6. कभी-कभी, लेकिन वे वैध कीड़े होते हैं जो आमतौर पर एक पुराने अपडेट में किसी चीज के कारण होते हैं जो चलाया नहीं जाता है।
पीटर टर्नर

7. हाँ, यह एक बड़ी समस्या है - कोई भी मेरे द्वारा लिखे गए मेकफाइल का उपयोग नहीं करता है जब तक कि यह बिल्कुल आवश्यक न हो और यह हमारे संकट का 60% कारण है। (पी एस मैं इसे सही के रूप में चिह्नित करूंगा यदि आप इसे बेहतर प्रारूपित करते हैं)
पीटर टर्नर

यह "यूएक्स को तोड़ने से रोकने के लिए मुझे क्या देखना चाहिए?" लेकिन मुझे यकीन नहीं है कि @PeterTurner ने इसे स्वीकार किया क्योंकि यह वास्तविक प्रश्न का उत्तर नहीं देता है।
लिलिएनथाल

13

आप "आप एक बुरा प्रोग्रामर होना चाहिए क्योंकि आप अपने सॉफ्टवेयर को बदतर बना रहे हैं" में आलोचना को कैसे क्षेत्रबद्ध किया जाता है?

लेकिन इस तरह की आलोचना ज्यादातर जायज है। एक नई रिलीज़ पिछली से भी बदतर नहीं होनी चाहिए, लेकिन जैसा कि हम जानते हैं, वास्तव में यह अक्सर होता है, और यह हमारी गलती है क्योंकि हमने इसे बनाया था।

गलतियाँ करना मानवीय है, और यह किसी को भी "बुरा प्रोग्रामर" नहीं बनाती है, इसलिए आलोचना को व्यक्तिगत रूप से न लें (मैं किसी भी गैर-सहयोगी से किसी भी तरह की पेशेवर आलोचना को गंभीरता से नहीं लूंगा)। समस्या की रिपोर्ट करने के लिए ग्राहक को धन्यवाद दें, और जितनी जल्दी हो सके इसे ठीक कर लें। एक अच्छे प्रोग्रामर के रूप में यह आपका काम है।


9

ठीक है, काम पर हम ग्राहकों के साथ सीधे बातचीत नहीं करते हैं, इसलिए मुझे व्यक्तिगत परियोजना के काम से इसका जवाब देना होगा। मैं एक गेम इंजन लिख रहा हूं जिसका उपयोग लोग अपने गेम बनाने के लिए कर सकते हैं। यह अभी भी पूर्व-अल्फ़ा में है, लेकिन मुझे कुछ दिलचस्पी लेने वाले उपयोगकर्ता मिले हैं, और कभी-कभी मुझे कीड़े मिलते हैं।

जब मुझे उपयोगकर्ता से इस तरह की रिपोर्ट मिलती है, तो मैं व्यक्तिगत स्पर्श का उपयोग करने का प्रयास करता हूं। मुझे बगों को पेश करने का मतलब नहीं था, और मैं चाहता हूं कि उन्हें मेरे इंजन के साथ एक अच्छा अनुभव हो, इसलिए मुझे उन्हें ऐसा करने की आवश्यकता है। सबसे पहले, IM हैंडल प्राप्त करें ताकि हम बात कर सकें। मैं उपयोगकर्ता से उनके प्रोजेक्ट के बारे में पूछूंगा और उसकी एक प्रति प्राप्त करने का प्रयास करूंगा। इससे प्रजनन काफी आसान हो जाता है। उनसे पूछें कि गड़बड़ होने पर वे क्या कर रहे थे। इस बीच, मुझे डीबगर में इंजन खुला मिला है और हम बात करते समय इस मुद्दे पर घर कर रहे हैं।

यदि यह अपवाद है, तो यह आमतौर पर बहुत सरल है। समस्या को पुन: उत्पन्न करें और डीबगर इसे पकड़ लेता है और आपको पूर्ण स्टैक ट्रेस के साथ सीधे त्रुटि स्थान पर ले जाता है, और यह स्पष्ट है कि क्या चल रहा है। यदि यह धीमा प्रदर्शन या गलत व्यवहार है, तो इसमें थोड़ा अधिक समय लग सकता है। लेकिन ज्यादातर मामलों में मैं पहले 20 मिनट के भीतर एक तय तैयार हो सकता है, सबसे ऊपर। मैं इसे ज़िप करता हूं और इसे परीक्षण के लिए भेजता हूं। "ठीक है, मुझे लगता है कि मुझे मिल गया है। देखें कि क्या यह आपके अंत में काम करता है?"

प्रतिक्रिया लगभग सार्वभौमिक रूप से विस्मय और कृतज्ञता का कुछ मिश्रण है, क्योंकि अधिकांश डेवलपर्स (पढ़ें: सॉफ्टवेयर कंपनियां) बस बग को ठीक नहीं करते हैं और तेजी से फिर से संगठित करते हैं। और फिर, अगर यह वास्तव में तय हो गया है, तो मैंने एक संभावित आलोचक को एक प्रशंसक में बदल दिया है। यह वास्तव में एक अच्छी तकनीक है; मैं सिर्फ यह चाहता हूं कि अधिक डेवलपर्स इसे अपनाएंगे।


1
हाँ, वे चकित हैं। मैं बहुत सी नर्सों के साथ काम करता हूं जो हमारे PHPBB फोरम पर लॉग इन करती हैं और 'बैंग हैड विथ द वॉल' इमोटिकॉन का इस्तेमाल करती हैं, फिर एक डीएलएल ट्रांसफर करने या एक एसक्यूएल क्वेरी और उनके सिस्टम को चलाने के बाद हम सोचते हैं कि हम बहुत गर्म सामान हैं। फिर से काम कर रहा है और उन्हें लॉग इन भी नहीं करना पड़ा।
पीटर टर्नर

6

मैं व्यक्तिगत रूप से समस्या को सकारात्मक रूप से लेता हूं। मैं बहुत सारे कस्टोमर्स के साथ हर समय बातचीत करता हूं, और मैं अभी भी कोड करता हूं।

जब वे एक नई रिलीज़ को डाउनलोड करते हैं और मुझे ऐसा कुछ बताते हैं, तो मैं हमेशा कुछ ऐसा कहता हूं:

मुझे उस बग की रिपोर्ट करने के लिए धन्यवाद। हो सकता है कि इसे एक साथ पेश किया गया हो, हमारे द्वारा जोड़ी गई सभी नई सुविधाएँ हम इसे ठीक कर देंगे।

वास्तव में, ग्राहक आपका वास्तविक मालिक है। यदि आपके साथ अनुभव बुरा है, तो यह आपके लिए भी बुरा है।

यहां तक ​​कि अगर वह सही नहीं है, तो आप कंपनी के एक हिस्से के रूप में, आपको यह अवसर देना चाहिए:

  • उससे सीखें, संभावित सुधार एकत्र करके आप उत्पाद को बना सकते हैं।
  • एक दुखी ग्राहक को एक खुशहाल में परिवर्तित करें, इतना खुश कि वह आपके बारे में (आपके बॉस सहित) बात करे
  • आप जो कर रहे हैं उस पर गर्व करें

1
"दुखी ग्राहक की तुलना में एक दुखी में परिवर्तित करें"? मैं ऐसा नहीं करना चाहता।
रेयान

4

विवरण, विवरण, विवरण। मैं पूछता हूं कि वे क्या कर रहे थे और कब, विशिष्ट हो। यह कुछ हो सकता है या यह हो सकता है कि जस्टिन बीबर वीडियो सिर्फ यूट्यूब पर जारी किया जाए। लॉग फाइल दोनों मामलों में आपके मित्र हैं।

मैंने उन तारीखों के लिए भी पूछा जब उन्होंने इसे देखा। कभी-कभी विशेष रूप से उद्यम की दुकानों में उपयोगकर्ताओं को यह नहीं पता होता है कि जब कोई रिलीज होती है, तो वे बस जानते हैं कि कुछ को पूरा होने में लंबा समय लगता है और वे अभी इसके बारे में शिकायत कर रहे हैं।

नौकरी छाया। इस पर जोर नहीं दे सकते। यदि आप पास के उपयोगकर्ताओं के लिए पर्याप्त भाग्यशाली हैं, तो बस उन्हें समय-समय पर काम करते हुए देखें। मुझे अक्सर लगता है कि वे चमकते मुद्दों को नजरअंदाज करते हैं और कभी भी उन्हें रिपोर्ट नहीं करते हैं। वे अक्सर केवल तभी शिकायत करते हैं जब उन्हें पता होता है कि कुछ नया है या वे शुरू में किसी मुद्दे पर ध्यान देते हैं।


3

चरण 1 यह है कि आपको एक मानसिकता से आना होगा कि यह (अपडेट अन्य सामान को तोड़ता है) सामान्य नहीं है। आपके अपडेट को ऐप के अन्य हिस्सों को तोड़ना या धीमा नहीं करना चाहिए। यह ठीक नहीं है, यह अपेक्षित नहीं है, और जब वे इसके बारे में शिकायत करते हैं, तो यह उपयोगकर्ता की गलती नहीं है। आपको इसे रोकने की कोशिश करने के लिए जितना संभव हो उतना परीक्षण करना चाहिए। जब ऐसा होता है तो आपको एक समस्या होती है, और एक तत्काल।

चरण 2 यह है कि आपको पता होना चाहिए कि आपने क्या किया। आपका स्रोत नियंत्रण प्रणाली आपकी मदद करने में सक्षम हो सकती है, या किसी प्रकार का कार्य ट्रैकिंग सिस्टम हो सकता है, लेकिन आपको उस मिनट को कहने में सक्षम होना चाहिए जो आपको इन शिकायतों में से एक मिलता है "ठीक है, मैंने इस तालिका में एक कॉलम जोड़ा, गणना के लिए इस ग्रिड को बदल दिया नए करों, उन दो नई रिपोर्टों को जोड़ा ... "और इसी तरह।

चरण 3 यह है कि आपके पास सही मुद्दों और दुर्घटनाओं को जल्दी से खोजने का अनुभव होना चाहिए, ताकि आप जान सकें कि किस तरह की चीजों के कारण उनके होने की संभावना है, और समस्या को तुरंत दूर कर सकते हैं। यह बात सजीव हो गई है और आपको समस्या का शीघ्र पता लगाना चाहिए और पैच आउट करना होगा। एक रिपोर्ट बदलने से ऐप का एक हिस्सा धीमा नहीं हो सकता है जो रिपोर्ट का उपयोग नहीं करता है। आप अभी आपातकालीन मोड में हैं और यह पता लगाना है कि गलती कहाँ है और इसके बारे में क्या करना है - इस प्रक्रिया में ऐप के दूसरे हिस्से को तोड़े बिना।

चरण 4 इन दुखों में से हर एक के लिए है, आपको एक सबक सीखना चाहिए जिसे आप अगली बार परीक्षण करेंगे। आप "उस आदमी" बन जाएंगे, जो कुछ निर्माणों की वस्तुओं का उपयोग करता है क्योंकि "वह भयानक होगा जब 10,000 रिकॉर्ड होंगे"।

"यह सामान्य है" मोर्चे पर थोड़ा अधिक। मैं एक बाहरी ग्राहक के लिए एक फुर्तीली परियोजना के बीच (हमारे पास चल रही अन्य सभी चीजों के बीच) दौड़ता हूं। हम दो या तीन वर्षों से हर 6 सप्ताह में लगभग रिलीज़ कर रहे हैं। और हाँ, रिलीज मिनट के लिए निर्धारित है। हमने कल सुबह 8 बजे एक किया। और मोटे तौर पर हर 4 या 5 वीं रिलीज़ (एक वर्ष में एक या दो बार, दूसरे शब्दों में) कुछ टूटी हुई लाइव हो जाती है, और हम कार्रवाई में छलांग लगाते हैं और इसे जितना जल्दी हो सके उतना सही बनाते हैं। भले ही हम परीक्षण और परीक्षण और रिलीज से पहले परीक्षण करते हैं। फिर हम उन्हें बताते हैं कि क्या हुआ। "जून की तैनाती में थोड़ा बग था कि इस क्षेत्र को खाली रहने दें, लेकिन हमने कभी ध्यान नहीं दिया क्योंकि हम उस समय मूल्य का उपयोग नहीं कर रहे थे। फिर इस तैनाती में जब हमने क्षेत्र का उपयोग करना शुरू किया, तो जो रिक्त थे, उनका उपयोग करना शुरू कर दिया। उस त्रुटि संदेश को आपने देखा। हम ' वे बग को ठीक कर रहे हैं ताकि वे रिक्त न हों, खराब रिकॉर्ड में मान डाल सकें, और पुष्टि की कि यह किसी भी अधिक को उड़ा नहीं सकता है। हमारी क्षमायाचना। "या" वह आपातकालीन परिवर्तन जिसके लिए आपने भीख माँगी थी, रिलीज़ के दो दिन पहले, उसके परिणाम थे जिनके बारे में हमने सोचा नहीं था और उसके लिए परीक्षण नहीं किया था। याद रखें कि हम आपातकालीन बदलावों का विरोध क्यों करते हैं? "हो सकता है कि मैं अपडेट के साथ इसे खराब करने के लिए एक बुरा प्रोग्रामर न हो, लेकिन मैंने निश्चित रूप से एक बुरा काम किया है। और मुझे इसे सही बनाने की आवश्यकता है। मैं अद्यतन के साथ इसे बदतर बनाने के लिए एक बुरा प्रोग्रामर नहीं हो सकता, लेकिन मैंने निश्चित रूप से एक बुरा काम किया। और मुझे इसे सही करने की जरूरत है। मैं अद्यतन के साथ इसे बदतर बनाने के लिए एक बुरा प्रोग्रामर नहीं हो सकता, लेकिन मैंने निश्चित रूप से एक बुरा काम किया। और मुझे इसे सही करने की जरूरत है।


0

बस एक और पहलू को कवर करने के लिए:

हम उन ग्राहकों की एक सूची रखते हैं जो यह दावा करते हैं कि ऐसा कब हुआ। जबकि सॉफ्टवेयर छोटी गाड़ी है, अक्सर बहुत छोटी गाड़ी होती है, हमारे कई ग्राहक तुरंत ध्यान देने के लिए "अपडेट के साथ शुरू" होने का दावा करेंगे, यह महसूस करते हुए कि यह हर किसी के समय को बर्बाद नहीं करता है क्योंकि हम समस्या की तलाश में संकेतित सुविधा के लिए डेल्टा चलेंगे। यदि ग्राहक सच कह रहा है तो यह तेजी से पाया जाता है। यदि ग्राहक झूठी सूची में है, तो कई बार हम परेशान नहीं होते क्योंकि हमें समय बर्बाद करना पसंद नहीं है।

मैं सोच भी नहीं सकता कि हमें झूठ बोलने की प्रक्रिया को गति देने के लिए किस तरह की मानसिकता की आवश्यकता है। ये लोग डॉक्टरों के साथ काम करते हैं या पूरी तरह से जानते हैं कि जब लोग डॉक्टरों से झूठ बोलते हैं तो क्या होता है। एक ही सिद्धांत लागू होता है।


1
सच पहलू, सिवाय इसके कि मुझे लगता है कि वे झूठ नहीं बोलते। वे केवल अपडेट के बाद इसे नोटिस करने के लिए होते हैं (जो भी मनोवैज्ञानिक कारण के लिए), और फिर निष्कर्ष पर जाएं - उपयोगकर्ता वास्तव में स्वामी हैं जब यह आता है :-)
मार्टिन बा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.