मी ६ महिने माझे एरर्स (Errors) दुर्लक्षित केले

मला वाटले की माझे एरर हँडलिंग (error handling) चांगले आहे.

मी try/catch ब्लॉक्स वापरले. मी कन्सोलमध्ये लॉग (log) केले. मी Sentry डॅशबोर्ड वापरला.

तरीही माझे युजर्स (users) त्रुटीपूर्ण प्रक्रियेचा (broken flows) सामना करत होते. फाईल्स गायब होत होत्या. कन्फर्मेशनशिवाय पेमेंट होत होते. फॉर्म्स शांतपणे (silently) फेल होत होते.

समस्या एरर्स पकडण्यात नव्हती. समस्या त्यांना पकडून काहीही न करण्यात होती.

माझ्या कोडमध्ये असे कमेंट्स होते: // TODO: handle this better

ती कमेंट ६ महिने तिथेच होती.

जेव्हा अपलोड फेल व्हायचे, तेव्हा युजरला एक लोडिंग स्पिनर (loading spinner) दिसत असे जो कधीच थांबत नसे. काहीतरी चुकले आहे याची त्यांना कल्पना नसे. त्यांनी पुन्हा पुन्हा प्रयत्न केले. शेवटी त्यांनी प्रयत्न करणे सोडून दिले.

एका ग्राहकाने तक्रार केल्यानंतर मी आमचे ॲनालिटिक्स (analytics) तपासले. मला हे आकडे आढळले:

• २३% फाईल अपलोड्स शांतपणे (silently) फेल झाले. • युजर्सनी सरासरी २.७ वेळा पुन्हा प्रयत्न (retry) करण्याचा प्रयत्न केला. • आमचा डॅशबोर्ड 'हेल्दी स्टेटस' दाखवत होता कारण आम्ही सर्व एरर्स पकडल्या होत्या.

आम्ही एक 'सायलेंट डिझास्टर' (silent disaster) अनुभवत होतो. आमचा डॅशबोर्ड हिरवा (green) दिसत होता, पण आमचे युजर्स त्रस्त होते.

मी प्रत्येक 'सायलेंट कॅच' (silent catch) एका नवीन पॅटर्नने बदलले. आता मी एरर्सचे प्रकारानुसार वर्गीकरण करतो:

• नेटवर्क एरर्समुळे 'रिट्राय डायलॉग' (retry dialog) ट्रिगर होतो. • परमिशन एरर्समुळे एक मार्गदर्शक (guide) दाखवला जातो. • अज्ञात एरर्समुळे एक स्पष्ट संदेश दिसतो आणि कॉन्टेक्स्ट (context) लॉग केला जातो.

या निकालांमुळे सर्व काही बदलले:

• सायलेंट अपलोड फेल्युअर २३% वरून ०.४% पर्यंत खाली आले. • युजरने कळवलेल्या अपलोड समस्यांमध्ये ८९% घट झाली. • गहाळ फाईल्सबद्दलचे सपोर्ट तिकीट दर आठवड्याला १५ वरून १ वर आले.

सर्वात मोठी उपलब्धी म्हणजे 'व्हिजिबिलिटी' (visibility). आमच्या टीमला अपयशाबद्दल लगेच समजते. आम्ही रागाच्या ईमेलची वाट पाहत नाही.

एरर हँडलिंग म्हणजे क्रॅश (crash) रोखणे नव्हे. तर अपयश युजर्स आणि टीमला स्पष्टपणे दिसणे होय.

क्रॅश प्रामाणिक असतो. सायलेंट फेल्युअर (silent failure) हा एक खोटेपणा आहे.

जेव्हा तुम्ही 'कॅच ब्लॉक' (catch block) लिहिता, तेव्हा स्वतःला दोन प्रश्न विचारा: १. जर हे फेल झाले तर कोणाला माहिती असणे आवश्यक आहे? २. त्यानंतर त्यांनी काय करावे?

जर तुमचे उत्तर "कोणालाही नाही" असे असेल, तर तुमच्याकडे एक समस्या आहे.

स्रोत: https://dev.to/kollittle/i-swallowed-my-errors-for-6-months-then-my-users-found-every-single-one-12fi

पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi