1000 പിശകുകൾ, ഒരു Google Sheet, പിന്നെ എനിക്ക് ഒരിക്കലും തിരിച്ചു കിട്ടാത്ത അഞ്ച് മണിക്കൂറുകൾ
ഓരോ ബഗ്ഗിനും ഓരോ കഥയുണ്ട്. ഇതിന്റെ തുടക്കം ഒരു കള്ളത്തിൽ നിന്നായിരുന്നു: "എന്റെ കമ്പ്യൂട്ടറിൽ ഇത് കൃത്യമായി പ്രവർത്തിക്കുന്നുണ്ട്."
ഒരു ലീഡ് ജനറേഷൻ കമ്പനിക്ക് വേണ്ടിയുള്ള ഡാറ്റ ഇംപോർട്ട് ഫീച്ചറാണ് ഞങ്ങൾ ടെസ്റ്റ് ചെയ്തത്. അത് വളരെ ലളിതമായി തോന്നി. ഒരു ബട്ടൺ ക്ലിക്ക് ചെയ്യുക, ഒരു ഫയൽ അപ്ലോഡ് ചെയ്യുക, ഡാറ്റ ലോഡ് ആകുന്നു.
ഇത്തരം ഫീച്ചറുകൾ കൃത്യമായി പ്രവർത്തിക്കുമെന്ന് മിക്കവരും കരുതും. ആ ധാരണ തെറ്റാണെന്ന് തെളിയിക്കാനാണ് ടെസ്റ്റർമാർ ഉള്ളത്.
'ഹാപ്പി പാത്ത്' (Happy path) ഒരു കെണിയാണ്.
നിങ്ങൾ ഒരു വൃത്തിയുള്ള Excel ഫയൽ അപ്ലോഡ് ചെയ്താൽ സിസ്റ്റം ശരിയായി പ്രവർത്തിക്കും. നിങ്ങൾ ഉച്ചഭക്ഷണത്തിന് പോകും. ജോലി കഴിഞ്ഞു എന്ന് നിങ്ങൾ കരുതും. എന്നാൽ അവിടെ മാത്രം നിർത്തുകയാണെങ്കിൽ, നിങ്ങൾ നൽകുന്നത് തകരാറുള്ള കോഡായിരിക്കും. ഒരു തിങ്കളാഴ്ച രാവിലെ പ്രൊഡക്ഷനിൽ വെച്ച് ഒരു ഉപഭോക്താവ് ആ പിശക് കണ്ടെത്തും.
പ്രശ്നം ഒരു Google Sheet ആയിരുന്നു.
യഥാർത്ഥ ഉപഭോക്താക്കൾ വൃത്തിയുള്ള Excel ഫയലുകളല്ല ഉപയോഗിക്കുന്നത്. അവർ ഉപയോഗിക്കുന്നത് കുഴപ്പമുള്ള Google Sheets ആണ്. അവർ സ്പ്രെഡ്ഷീറ്റുകളിൽ കുഴപ്പങ്ങൾ ഉണ്ടാക്കും, സിസ്റ്റം അത് കൈകാര്യം ചെയ്യുമെന്ന് പ്രതീക്ഷിക്കും.
ഞങ്ങൾ ഒരു Google Sheet അപ്ലോഡ് ചെയ്തപ്പോൾ സിസ്റ്റം പരാജയപ്പെട്ടു. അത് 1,000-ലധികം പിശകുകൾ കാണിച്ചു. ഫോർമാറ്റിൽ വന്ന മാറ്റം കാരണം അതേ ഡാറ്റയും അതേ ബട്ടണും ഉപയോഗിച്ചപ്പോൾ സിസ്റ്റം പൂർണ്ണമായും തകർന്നുപോയി.
തുടർന്ന് ഞങ്ങൾ ഡാറ്റയുടെ ഗുണനിലവാരം പരിശോധിച്ചു.
- കുറച്ച് തെറ്റായ വരികൾ (invalid rows)? സിസ്റ്റം അവ ഒഴിവാക്കി മുന്നോട്ട് പോയി.
- നൂറുകണക്കിന് കുഴപ്പമുള്ള വരികൾ? സിസ്റ്റം തകർന്നുപോയി.
ചെറിയ പിശകുകൾ കൈകാര്യം ചെയ്യാൻ വാലിഡേഷൻ ലോജിക് (validation logic) സഹായിച്ചു. എന്നാൽ വലിയ തോതിലുള്ള തെറ്റായ ഡാറ്റ (garbage data) വന്നപ്പോൾ അത് പരാജയപ്പെട്ടു.
ഇത് ഡീബഗ് (debug) ചെയ്യാൻ ഞങ്ങൾ അഞ്ച് മണിക്കൂർ ചിലവഴിച്ചു. ഞങ്ങൾ ഫയലിനെയും ബ്രൗസറിനെയും ഡാറ്റയെയും കുറ്റപ്പെടുത്തി. കഫിയെപ്പോലും ഞങ്ങൾ കുറ്റപ്പെടുത്തി.
ആ അഞ്ച് മണിക്കൂർ ചിലവഴിച്ചത് ലാഭകരമായിരുന്നു. അല്ലെങ്കിൽ ഇതിന് വലിയ വില നൽകേണ്ടി വന്നേനെ. ഒരു ഉപഭോക്താവ് ഈ ബഗ്ഗ് കണ്ടെത്തിയാൽ, അവർക്ക് നിങ്ങളുടെ ഉൽപ്പന്നത്തിലുള്ള വിശ്വാസം നഷ്ടപ്പെടും. ടെസ്റ്റിംഗിലെ പിശകുകൾക്ക് നിങ്ങൾ സമയം നൽകി പരിഹരിക്കുന്നു. എന്നാൽ പ്രൊഡക്ഷനിലെ പിശകുകൾക്ക് നിങ്ങൾ ഉപഭോക്താക്കളെയാണ് നഷ്ടപ്പെടുത്തുന്നത്.
സമയം നൽകി പരിഹരിക്കുന്നതിനെ ഞാൻ തിരഞ്ഞെടുക്കുന്നു.
യഥാർത്ഥ ബഗ്ഗുകൾ കണ്ടെത്താൻ നിങ്ങൾ നിങ്ങളുടെ ചിന്താഗതി മാറ്റണം. സോഫ്റ്റ്വെയർ പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് ചോദിക്കരുത്. അത് എങ്ങനെ തകർക്കാം എന്നാണ് ചോദിക്കേണ്ടത്.
ഒരു ഡെവലപ്പറെപ്പോലെ ചിന്തിക്കുന്നത് നിർത്തുക. താഴെ പറയുന്നവരെപ്പോലെ ചിന്തിച്ചു തുടങ്ങുക:
- തെറ്റായ ഫയൽ ഫോർമാറ്റ് അപ്ലോഡ് ചെയ്യുന്ന മടിയനായ ഉപഭോക്താവ്.
- മെർജ് ചെയ്ത സെല്ലുകളും (merged cells) ശൂന്യമായ വരികളുമുള്ള കുഴപ്പക്കാരനായ ഉപഭോക്താവ്.
- 10 വൃത്തിയുള്ള റെക്കോർഡുകൾക്ക് പകരം 4,000 അഴുക്കുപിടിച്ച റെക്കോർഡുകൾ നൽകുന്ന ബൾക്ക് ഉപഭോക്താവ്.
- ചെയ്യാൻ പാടില്ലാത്ത കാര്യങ്ങൾ കൃത്യമായി തന്നെ ചെയ്യുന്ന കുഴപ്പക്കാരൻ.
നിങ്ങൾ പ്രതീക്ഷിക്കാത്ത ഇൻപുട്ടുകൾ വരുമ്പോഴാണ് സോഫ്റ്റ്വെയർ തകരാറിലാകുന്നത്.
"ലളിതമായ" ഫീച്ചറുകളാണ് ഏറ്റവും അപകടകാരികൾ. ഇംപോർട്ട് ബട്ടണും സെർച്ച് ബോക്സും നിരുപദ്രവകാരികളാണെന്ന് തോന്നാം. എന്നാൽ അവ അങ്ങനെയല്ല.
അടുത്ത തവണ ഒരു ഫീച്ചർ 'ഹാപ്പി പാത്ത്' കടന്നുകടന്നാൽ, "ഏറ്റവും മോശമായ ഒരു ഫയൽ ഞാൻ അപ്ലോഡ് ചെയ്താൽ എന്ത് സംഭവിക്കും?" എന്ന് ചോദിക്കുന്ന ആളാവുക.
എന്നിട്ട് അത് ചെയ്തു നോക്കുക.
