૧૦૦૦ ભૂલો, એક Google Sheet, અને પાંચ કલાક જે મને ક્યારેય પાછા નહીં મળે
દરેક બગની એક વાર્તા હોય છે. આ વાર્તા એક જૂઠથી શરૂ થઈ: "તે મારા મશીન પર કામ કરે છે."
અમે એક લીડ જનરેશન કંપની માટે ડેટા ઇમ્પોર્ટ ફીચરનું પરીક્ષણ કર્યું. તે સરળ લાગતું હતું. તમે એક બટન પર ક્લિક કરો છો, ફાઇલ અપલોડ કરો છો, અને ડેટા લોડ થઈ જાય છે.
મોટાભાગના લોકો માની લે છે કે આ ફીચર્સ કામ કરે છે. ટેસ્ટર્સ તે ધારણા ખોટી સાબિત કરવા માટે અસ્તિત્વ ધરાવે છે.
'હેપ્પી પાથ' (happy path) એક જાળ છે.
જો તમે એક ચોખ્ખી Excel ફાઇલ અપલોડ કરો છો, તો સિસ્ટમ પાસ થઈ જાય છે. તમે લંચ માટે જાઓ છો. તમને લાગે છે કે કામ પૂરું થઈ ગયું છે. જો તમે ત્યાં જ અટકી જશો, તો તમે ખામીયુક્ત કોડ (broken code) મોકલી દેશો. ગ્રાહક પ્રોડક્શનમાં સોમવારની સવારે આ ભૂલ શોધી કાઢશે.
સમસ્યા એક Google Sheet ની હતી.
વાસ્તવિક વપરાશકર્તાઓ ચોખ્ખી Excel ફાઇલોનો ઉપયોગ કરતા નથી. તેઓ અસ્તવ્યસ્ત Google Sheets નો ઉપયોગ કરે છે. તેઓ સ્પ્રેડશીટ્સમાં અરાજતા પેદા કરે છે અને સિસ્ટમ તેને હેન્ડલ કરે તેવી અપેક્ષા રાખે છે.
જ્યારે અમે Google Sheet અપલોડ કરી, ત્યારે સિસ્ટમ નિષ્ફળ ગઈ. તેણે ૧,૦૦૦ થી વધુ ભૂલો દર્શાવી. સમાન ડેટા અને સમાન બટનથી સંપૂર્ણ પતન થયું કારણ કે ફોર્મેટ બદલાઈ ગયું હતું.
પછી અમે ડેટાની ગુણવત્તાનું પરીક્ષણ કર્યું.
- થોડી અમાન્ય (invalid) રો (rows)? સિસ્ટમે તેને છોડી દીધી અને આગળ વધી ગઈ.
- સેંકડો અસ્તવ્યસ્ત રો (rows)? સિસ્ટમ તૂટી પડી.
વેલિડેશન લોજિક નાની ભૂલો માટે કામ કરતું હતું. જ્યારે તે કચરા જેવા ડેટાના પહાડ સામે આવ્યું ત્યારે તે નિષ્ફળ ગયું.
અમે આને ડીબગ (debug) કરવામાં પાંચ કલાક વિતાવ્યા. અમે ફાઇલ, બ્રાઉઝર અને ડેટાને દોષ આપ્યો. અમે તો કોફીને પણ દોષ આપ્યો.
તે પાંચ કલાક સસ્તા હતા. તેના બદલે થતું નુકસાન ઘણું વધારે હોઈ શકે છે. જો ગ્રાહક આ બગ શોધી કાઢે છે, તો તેઓ તમારા ઉત્પાદન પરથી વિશ્વાસ ગુમાવે છે. ટેસ્ટિંગમાં બગ માટે તમે સમય ચૂકવો છો. પ્રોડક્શનમાં બગ માટે તમે ગ્રાહકો ગુમાવો છો.
હું સમય ચૂકવવાનું વધુ પસંદ કરું છું.
વાસ્તવિક બગ્સ શોધવા માટે, તમારે તમારી માનસિકતા બદલવી પડશે. સોફ્ટવેર કામ કરે છે કે નહીં તે ન પૂછો. તેને કેવી રીતે તોડવું તે પૂછો.
ડેવલપરની જેમ વિચારવાનું બંધ કરો. આ રીતે વિચારવાનું શરૂ કરો:
- આળસુ વપરાશકર્તા જે ખોટા ફાઇલ ફોર્મેટ અપલોડ કરે છે.
- મર્જ કરેલી સેલ્સ (merged cells) અને ખાલી રો (empty rows) ધરાવતો અસ્તવ્યસ્ત વપરાશકર્તા.
- ૧૦ ચોખ્ખા રેકોર્ડ્સને બદલે ૪,૦૦૦ ગંદા રેકોર્ડ્સ ધરાવતો બલ્ક વપરાશકર્તા.
- મુસીબત ઊભી કરનાર વપરાશકર્તા જે બરાબર તે જ કરે છે જે તેણે ન કરવું જોઈએ.
સોફ્ટવેર એવા ઇનપુટ્સ પર તૂટી જાય છે જેની તમે અપેક્ષા રાખતા નથી.
"સરળ" ફીચર્સ સૌથી વધુ જોખમી હોય છે. ઇમ્પોર્ટ બટન અને સર્ચ બોક્સ નિર્દોષ લાગે છે. પણ તે નથી.
આગલી વખતે જ્યારે કોઈ ફીચર 'હેપ્પી પાથ' પાસ કરે, ત્યારે એવા વ્યક્તિ બનો જે પૂછે: "જો હું કલ્પના કરી શકાય તેવી સૌથી ખરાબ ફાઇલ અપલોડ કરું તો શું થશે?"
પછી જઈને તે કરો.
