১০০০টি এরর, একটি গুগল শিট এবং পাঁচটি ঘণ্টা যা আমি আর কখনোই ফিরে পাব না

প্রতিটি বাগের একটি গল্প আছে। এইটির শুরু হয়েছিল একটি মিথ্যা দিয়ে: "এটি আমার মেশিনে কাজ করছে।"

আমরা একটি লিড জেনারেশন (lead generation) কোম্পানির জন্য একটি ডেটা ইমপোর্ট ফিচার পরীক্ষা করেছিলাম। এটি সহজ মনে হয়েছিল। আপনি একটি বাটনে ক্লিক করবেন, একটি ফাইল আপলোড করবেন এবং ডেটা লোড হবে।

বেশিরভাগ মানুষ ধরে নেন যে এই ফিচারগুলো কাজ করে। সেই ধারণাটি ভুল প্রমাণ করার জন্যই টেস্টারদের অস্তিত্ব।

'হ্যাপি পাথ' (happy path) একটি ফাঁদ।

আপনি যদি একটি পরিচ্ছন্ন এক্সেল (Excel) ফাইল আপলোড করেন, তবে সিস্টেমটি সফলভাবে কাজ করবে। আপনি লাঞ্চ করতে যাবেন। আপনি ভাববেন কাজ শেষ। আপনি যদি সেখানেই থেমে যান, তবে আপনি ত্রুটিপূর্ণ কোড রিলিজ করে দেবেন। একজন গ্রাহক সোমবার সকালে প্রোডাকশনে (production) এই ত্রুটিটি খুঁজে পাবেন।

সমস্যাটি ছিল একটি গুগল শিটে (Google Sheet)।

প্রকৃত ব্যবহারকারীরা পরিচ্ছন্ন এক্সেল ফাইল ব্যবহার করেন না। তারা অগোছালো গুগল শিট ব্যবহার করেন। তারা স্প্রেডশিটে বিশৃঙ্খলা তৈরি করেন এবং আশা করেন যে সিস্টেম সেটি সামলে নেবে।

যখন আমরা একটি গুগল শিট আপলোড করলাম, সিস্টেমটি ব্যর্থ হলো। এটি ১,০০০-এরও বেশি এরর (error) তৈরি করল। একই ডেটা এবং একই বাটন ব্যবহারের ফলে পুরো সিস্টেমটি ভেঙে পড়ল কারণ ফরম্যাটটি পরিবর্তিত হয়েছিল।

তারপর আমরা ডেটার গুণমান পরীক্ষা করলাম।

  • কিছু ইনভ্যালিড রো (invalid rows)? সিস্টেম সেগুলো এড়িয়ে সামনে এগিয়ে গেল।
  • শত শত অগোছালো রো? সিস্টেমটি ভেঙে পড়ল।

ভ্যালিডেশন লজিক ছোটখাটো ত্রুটির ক্ষেত্রে কাজ করেছিল। কিন্তু যখন এটি আবর্জনার মতো বিশাল ডেটার সম্মুখীন হলো, তখন এটি ব্যর্থ হলো।

আমরা এটি ডিবাগ (debug) করতে পাঁচ ঘণ্টা ব্যয় করেছি। আমরা ফাইল, ব্রাউজার এবং ডেটাকে দোষারোপ করেছি। এমনকি আমরা কফিকেও দোষারোপ করেছি।

সেই পাঁচ ঘণ্টা ছিল খুবই সামান্য খরচ। এর বিকল্পটি ছিল অনেক বেশি ব্যয়বহুল। যদি কোনো গ্রাহক এই বাগটি খুঁজে পান, তবে তারা আপনার পণ্যের ওপর আস্থা হারাবেন। টেস্টিংয়ের সময় বাগ পাওয়া মানে আপনি সময় দিয়ে তার মূল্য দিচ্ছেন। প্রোডাকশনে বাগ পাওয়া মানে আপনি গ্রাহক হারিয়ে তার মূল্য দিচ্ছেন।

আমি সময়ের বিনিময়ে মূল্য দিতেই পছন্দ করি।

প্রকৃত বাগ খুঁজে পেতে হলে আপনাকে আপনার মানসিকতা পরিবর্তন করতে হবে। সফটওয়্যারটি কাজ করছে কি না তা জিজ্ঞাসা করবেন না। বরং এটি কীভাবে ভেঙে ফেলা যায় তা জিজ্ঞাসা করুন।

ডেভেলপারের মতো চিন্তা করা বন্ধ করুন। এভাবে চিন্তা করা শুরু করুন:

  • সেই অলস ব্যবহারকারী যে ভুল ফাইল ফরম্যাট আপলোড করে।
  • সেই বিশৃঙ্খল ব্যবহারকারী যার স্প্রেডশিটে মার্জ করা সেল (merged cells) এবং খালি রো রয়েছে।
  • সেই বাল্ক ব্যবহারকারী যার কাছে ১০টি পরিচ্ছন্ন রেকর্ডের পরিবর্তে ৪,০০০টি নোংরা রেকর্ড রয়েছে।
  • সেই সমস্যা সৃষ্টিকারী ব্যক্তি যে ঠিক সেটাই করে যা তার করা উচিত নয়।

সফটওয়্যার সেই ইনপুটগুলোর কারণেই ভেঙে পড়ে যা আপনি আশা করেননি।

"সহজ" ফিচারগুলোই সবচেয়ে বিপজ্জনক। ইমপোর্ট বাটন এবং সার্চ বক্স দেখতে নিরীহ মনে হতে পারে। কিন্তু তারা আসলে তা নয়।

পরের বার যখন কোনো ফিচার 'হ্যাপি পাথ' পার করবে, তখন আপনি সেই ব্যক্তি হোন যে প্রশ্ন করে: "যদি আমি কল্পনা করা যায় এমন সবচেয়ে খারাপ ফাইলটি আপলোড করি তবে কী হবে?"

তারপর সেটি করে দেখুন।

উৎস: https://dev.to/jaswanth_m_ab71bf22ec8b0/1000-errors-one-google-sheet-and-five-hours-i-will-never-get-back-4okl