1000 غلطیاں، ایک گوگل شیٹ، اور پانچ گھنٹے جو مجھے کبھی واپس نہیں ملیں گے

ہر بگ (bug) کی ایک کہانی ہوتی ہے۔ زیادہ تر اس جملے سے شروع ہوتی ہیں: "یہ میرے کمپیوٹر پر تو ٹھیک چل رہا ہے۔"

ہم ایک لیڈ جنریشن کمپنی کے لیے ڈیٹا امپورٹ فیچر کی ٹیسٹنگ کر رہے تھے۔ یہ فیچر سادہ معلوم ہوتا تھا۔ آپ امپورٹ بٹن پر کلک کرتے ہیں، ایک اسپریڈ شیٹ اپ لوڈ کرتے ہیں، اور سسٹم کانٹیکٹس لوڈ کر دیتا ہے۔ ہر کسی نے سمجھا کہ یہ کام کر رہا ہے۔

یہ مفروضہ ایک جال ہے۔

ٹیسٹرز کا مقصد اسی مفروضے کو غلط ثابت کرنا ہے۔ "ہیپی پاتھ" (happy path) ہمیشہ آپ سے جھوٹ بولتا ہے۔

اگر ہم ایک صاف ستھری ایکسل (Excel) فائل استعمال کرتے، تو امپورٹ کامیاب ہو جاتا۔ ہم لنچ کے لیے جا سکتے تھے۔ ہم فیچر کو ریلیز کر سکتے تھے۔ لیکن کوئی گاہک پروڈکشن (production) میں پیر کی صبح اس بگ کو ڈھونڈ لیتا۔

مسئلہ ایک گوگل شیٹ (Google Sheet) تھا۔

اصل صارفین صاف ستھری ایکسل فائلیں استعمال نہیں کرتے۔ وہ بکھری ہوئی گوگل شیٹس استعمال کرتے ہیں۔ وہ توقع کرتے ہیں کہ سسٹم ان کے اس انتشار کو سنبھال لے۔

جب ہم نے گوگل شیٹ کا ڈیٹا اپ لوڈ کیا، تو سسٹم فیل ہو گیا۔ ہمیں 1,000 سے زیادہ غلطیاں (errors) نظر آئیں۔ اسکرین غلطیوں سے بھر گئی۔ وہی بٹن اور وہی ڈیٹا ٹائپ مکمل طور پر ناکام ہو گئی، صرف اس لیے کہ ڈیٹا کا فارمیٹ بدل گیا تھا۔

ہم نے مزید ٹیسٹنگ کے لیے دوبارہ ایکسل کا سہارا لیا۔ ہم نے درست اور غلط روز (rows) کا مجموعہ استعمال کیا۔ سسٹم نے اسے اچھے طریقے سے سنبھال لیا۔ اس نے غلط روز کو چھوڑ دیا اور آگے بڑھ گیا۔

پھر ہم نے حقیقی دنیا کے انتشار کو آزمانے کا فیصلہ کیا۔ ہم نے سینکڑوں روز والی ایک بڑی فائل (bulk file) اپ لوڈ کی۔ زیادہ تر ڈیٹا بیکار تھا۔ صرف چند ہی درست تھے۔

سسٹم مکمل طور پر ٹوٹ گیا۔ ویلیڈیشن لاجک (validation logic) چند غلط روز کے لیے تو کام کر گئی، لیکن خراب ڈیٹا کے ڈھیر کے نیچے دب کر ختم ہو گئی۔

ہم نے اصل وجہ تلاش کرنے میں پانچ گھنٹے صرف کیے۔ ہم اسکرینوں کو گھورتے رہے، ٹیسٹ دوبارہ چلائے، اور فائلوں، براؤزر اور کافی کو قصوروار ٹھہراتے رہے۔

وہ پانچ گھنٹے تو سستے تھے۔ اس کا متبادل یہ تھا کہ ایک گاہک اپنی دوپہر ضائع کرتا اور ہمارے پروڈکٹ پر سے اس کا اعتماد اٹھ جاتا۔ ٹیسٹنگ میں بگ کی قیمت آپ وقت دے کر ادا کرتے ہیں۔ پروڈکشن میں بگ کی قیمت آپ گاہکوں کی صورت میں ادا کرتے ہیں۔

میں ہر بار ان پانچ گھنٹوں کو ہی چنوں گا۔

ایک اچھا ٹیسٹر یہ نہیں پوچھتا کہ کیا کوئی فیچر کام کر رہا ہے۔ ایک اچھا ٹیسٹر یہ پوچھتا ہے کہ اسے کیسے توڑا جا سکتا ہے۔

ایک ڈویلپر کی طرح سوچنا بند کریں۔ ان لوگوں کی طرح سوچنا شروع کریں:

  • وہ سست صارف جو غلط فائل فارمیٹ اپ لوڈ کرتا ہے۔
  • وہ بے ترتیب صارف جس کے پاس مرج شدہ سیلز (merged cells) اور خالی روز (empty rows) ہیں۔
  • وہ بلک صارف جس کے پاس 10 صاف ستھرے ریکارڈز کے بجائے 4,000 گندے ریکارڈز ہیں۔
  • وہ شرارتی صارف جو بالکل وہی کرتا ہے جو اسے نہیں کرنا چاہیے۔

سافٹ ویئر ان ان پٹس (inputs) پر ٹوٹتا ہے جن کی آپ کو توقع نہیں ہوتی۔

سب سے زیادہ "سادہ" فیچرز اکثر سب سے زیادہ خطرناک ہوتے ہیں۔ امپورٹ بٹن، سرچ باکس، اور کانٹیکٹ فارم بے ضرر لگتے ہیں۔ لیکن وہ نہیں ہیں۔

اگر کوئی فیچر "ہیپی پاتھ" سے گزر جائے، تو آگے نہ بڑھیں۔ وہ انسان بنیں جو پوچھے: "کیا ہوگا اگر میں تصور کے قابل بدترین فائل اپ لوڈ کر دوں؟"

پھر جا کر ایسا ہی کریں۔

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

Optional learning community: https://t.me/GyaanSetuAi