1000 त्रुटियाँ, एक Google Sheet, और पाँच घंटे जो मुझे कभी वापस नहीं मिलेंगे
हर बग की एक कहानी होती है। इसकी शुरुआत एक झूठ से हुई थी: "यह मेरे सिस्टम पर काम कर रहा है।"
हमने एक लीड जनरेशन कंपनी के लिए डेटा इम्पोर्ट फीचर का परीक्षण किया। यह सरल लग रहा था। आप एक बटन पर क्लिक करते हैं, एक फ़ाइल अपलोड करते हैं, और डेटा लोड हो जाता है।
अधिकांश लोग मान लेते हैं कि ये फीचर्स काम करते हैं। टेस्टर उस धारणा को गलत साबित करने के लिए होते हैं।
'हैप्पी पाथ' (happy path) एक जाल है।
यदि आप एक साफ़ Excel फ़ाइल अपलोड करते हैं, तो सिस्टम पास हो जाता है। आप लंच के लिए चले जाते हैं। आपको लगता है कि काम पूरा हो गया है। यदि आप वहीं रुक जाते हैं, तो आप खराब कोड शिप कर देते हैं। प्रोडक्शन में सोमवार की सुबह कोई ग्राहक उस त्रुटि को खोज लेगा।
समस्या एक Google Sheet थी।
वास्तविक उपयोगकर्ता साफ़ Excel फ़ाइलों का उपयोग नहीं करते हैं। वे अव्यवस्थित Google Sheets का उपयोग करते हैं। वे स्प्रेडशीट्स में अराजकता पैदा करते हैं और उम्मीद करते हैं कि सिस्टम उसे संभाल लेगा।
जब हमने एक Google Sheet अपलोड की, तो सिस्टम विफल हो गया। इसने 1,000 से अधिक त्रुटियाँ पैदा कीं। वही डेटा और वही बटन पूरी तरह से विफल हो गया क्योंकि फॉर्मेट बदल गया था।
फिर हमने डेटा की गुणवत्ता का परीक्षण किया।
- कुछ अमान्य पंक्तियाँ? सिस्टम ने उन्हें छोड़ दिया और आगे बढ़ गया।
- सैकड़ों अव्यवस्थित पंक्तियाँ? सिस्टम क्रैश हो गया।
वैलिडेशन लॉजिक छोटे एरर के लिए काम कर रहा था। लेकिन जब इसका सामना कचरा डेटा (garbage data) के ढेर से हुआ, तो यह विफल हो गया।
हमने इसे डीबग करने में पाँच घंटे बिताए। हमने फ़ाइल, ब्राउज़र और डेटा को दोष दिया। हमने तो कॉफी को भी दोष दिया।
वे पाँच घंटे सस्ते थे। इसका विकल्प बहुत महंगा था। यदि कोई ग्राहक इस बग को पाता है, तो वह आपके उत्पाद पर भरोसा खो देता है। टेस्टिंग में बग के लिए आप समय देकर भुगतान करते हैं। प्रोडक्शन में बग के लिए आप ग्राहकों को खोकर भुगतान करते हैं।
मैं समय देकर भुगतान करना पसंद करता हूँ।
वास्तविक बग खोजने के लिए, आपको अपनी मानसिकता बदलनी होगी। यह न पूछें कि क्या सॉफ्टवेयर काम करता है। यह पूछें कि इसे कैसे तोड़ा जा सकता है।
डेवलपर की तरह सोचना बंद करें। इस तरह सोचना शुरू करें:
- वह आलसी उपयोगकर्ता जो गलत फ़ाइल फॉर्मेट अपलोड करता है।
- वह अव्यवस्थित उपयोगकर्ता जिसके पास मर्ज किए हुए सेल्स (merged cells) और खाली पंक्तियाँ हैं।
- वह बल्क यूजर जिसके पास 10 साफ़ रिकॉर्ड के बजाय 4,000 गंदे रिकॉर्ड हैं।
- वह समस्या पैदा करने वाला व्यक्ति जो बिल्कुल वही करता है जो उसे नहीं करना चाहिए।
सॉफ्टवेयर उन इनपुट्स पर टूटता है जिनकी आप अपेक्षा नहीं करते हैं।
"सरल" फीचर्स सबसे खतरनाक होते हैं। इम्पोर्ट बटन और सर्च बॉक्स हानिरहित लगते हैं। वे नहीं हैं।
अगली बार जब कोई फीचर 'हैप्पी पाथ' पास कर ले, तो वह व्यक्ति बनें जो पूछता है: "क्या होगा अगर मैं कल्पना करने योग्य सबसे खराब फ़ाइल अपलोड कर दूँ?"
फिर जाकर ऐसा ही करें।
