एक अकेले छूटे हुए विराम चिह्न ने लॉन्च के सेकंडों बाद लाखों डॉलर के एक रॉकेट को नष्ट कर दिया। एक राउंडिंग त्रुटि एक स्टॉक एक्सचेंज की शुरुआत को लगभग क्रैश कर गई। सॉफ़्टवेयर के इतिहास की सबसे महँगी बग लगभग कभी नाटकीय, जटिल ग़लतियाँ नहीं होतीं — वे छोटी और आसानी से नज़रअंदाज़ की जाने वाली होती हैं, जो संयोगवश बिल्कुल ग़लत जगह पर बैठी होती हैं।
मैरिनर 1: वह विराम चिह्न जिसने एक रॉकेट का नुक़सान किया
1962 में, नासा का मैरिनर 1 प्रोब लॉन्च के पाँच मिनट से भी कम समय बाद ग्राउंड कंट्रोल द्वारा नष्ट कर दिया गया, इसके गाइडेंस सॉफ़्टवेयर द्वारा बेहद ग़लत स्टीयरिंग कमांड जारी करना शुरू करने के बाद। मूल कारण एक हाथ से लिखे गए गाइडेंस समीकरण में एक छूटे हुए एकल अक्षर तक ट्रेस हुआ — एक स्मूथिंग सूत्र जिसे छोटे सेंसर बदलावों को औसत करना चाहिए था, इसके बजाय हर छोटे उतार-चढ़ाव को एक वास्तविक, तत्काल दिशा सुधार के रूप में माना, रॉकेट को इसके इच्छित रास्ते से भेजते हुए।
एक छूटे हुए अक्षर ने एक स्मूथिंग सूत्र को कुछ ऐसा बना दिया जो हर छोटे सेंसर उतार-चढ़ाव को एक वास्तविक स्टीयरिंग कमांड के रूप में पढ़ता है — एक विनाशकारी परिणाम के साथ एक मामूली अंतर।
छोटी बग सबसे बड़ी आपदाओं का कारण क्यों बनती हैं
एक बड़ी, स्पष्ट बग जल्दी पकड़ में आती है — प्रोग्राम तुरंत क्रैश हो जाता है, या परीक्षण में कोई ऐसा उत्तर देता है जो स्पष्ट रूप से ग़लत है जिसे कोई नोटिस कर लेता है। जो बग वास्तविक नुक़सान पहुँचाती हैं वे लगभग हमेशा वे होती हैं जो परीक्षण से बचकर प्रोडक्शन तक पहुँचने के लिए काफ़ी सूक्ष्म होती हैं: एक लूप में एक ऑफ़-बाय-वन त्रुटि, एक राउंडिंग धारणा जो केवल किसी असामान्य मान पर टूटती है, एक शर्त जो 99.9% समय सही और बाक़ी समय विनाशकारी रूप से ग़लत होती है। ग़लती जितनी छोटी और शांत होती है, उतनी ही अधिक जगहें होती हैं जहाँ यह छिप सकती है।
इन विफलताओं ने वास्तव में क्या बदला
मैरिनर 1 की विफलता सॉफ़्टवेयर इंजीनियरिंग शिक्षा में एक मानक केस स्टडी बन गई, और इसने सीधे प्रभावित किया कि मिशन-क्रिटिकल कोड की समीक्षा कैसे की जाती है — यह विचार कि एक एकल ट्रांसक्रिप्शन त्रुटि बिना दूसरी जाँच के किसी लाइव गाइडेंस सिस्टम तक कभी पहुँच सकती है, ठीक वही है जिसे आधुनिक कोड समीक्षा, स्वचालित परीक्षण, और औपचारिक सत्यापन रोकने के लिए मौजूद हैं। हर प्रसिद्ध ऐतिहासिक बग, एक वास्तविक अर्थ में, वह कारण है कि आज एक विशिष्ट इंजीनियरिंग सुरक्षा उपाय क्यों मौजूद है। यदि डीबगिंग, परीक्षण, या सॉफ़्टवेयर इंजीनियरिंग अभ्यास को केवल परीक्षा सामग्री के बजाय वास्तविक पेशेवर कौशल के रूप में समझाने की ज़रूरत है, तो यही ठीक वह है जिसके लिए हमारी GCSE कंप्यूटर विज्ञान ट्यूशन है — पूरा सीखने का रास्ता यहाँ देखें।
अक्सर पूछे जाने वाले प्रश्न
क्या मैरिनर 1 हाइफ़न बग वाकई सिर्फ़ एक अक्षर था?
कहानी का सबसे अधिक दोहराया गया संस्करण एक गाइडेंस समीकरण में एक छूटा हुआ हाइफ़न (या मूल FORTRAN नोटेशन में, एक ओवरबार) है, जिसके कारण रॉकेट के गाइडेंस सॉफ़्टवेयर ने एक सूत्र की ग़लत व्याख्या की और ग़लत स्टीयरिंग कमांड जारी किए — रॉकेट को लॉन्च के 5 मिनट से भी कम समय में जानबूझकर नष्ट कर दिया गया ताकि इसे किसी आबादी वाले क्षेत्र में दुर्घटनाग्रस्त होने से रोका जा सके। कुछ इतिहासकार सटीक तकनीकी विवरण पर बहस करते हैं, लेकिन मूल पाठ — एक छोटी, आसानी से चूक जाने वाली त्रुटि जो विनाशकारी विफलता का कारण बनती है — अच्छी तरह से दस्तावेज़ीकृत है।
"ऑफ़-बाय-वन" त्रुटियाँ इतनी बार क्यों होती हैं?
क्योंकि कोड में गिनती अक्सर 0 से शुरू होती है, 1 से नहीं — किसी सूची का पहला आइटम आमतौर पर स्थिति 0 पर होता है, स्थिति 1 पर नहीं — और किसी भी दिशा में बिल्कुल एक स्थिति से हटकर एक लूप या शर्त लिखना बेहद आसान है। यह सभी प्रोग्रामिंग में सबसे आम बग श्रेणियों में से एक है, ठीक इसलिए क्योंकि ग़लती इतनी छोटी और बिना ध्यान दिए करना इतना आसान है।
आज इस तरह की बग को प्रोडक्शन तक पहुँचने से वास्तव में क्या रोकता है?
स्वचालित परीक्षण (शिप करने से पहले कोड को ज्ञात अपेक्षित परिणामों के ख़िलाफ़ चलाना), कोड समीक्षा (कोड मर्ज होने से पहले एक दूसरा व्यक्ति तर्क की जाँच करता है), और अधिक सख़्ती से टाइप की गई भाषाएँ जो प्रोग्राम चलने से पहले ही कुछ प्रकार की त्रुटियाँ पकड़ लेती हैं। इनमें से कोई भी शून्य बग की गारंटी नहीं देता, लेकिन वे उस तरह की छोटी, आसानी से चूक जाने वाली ग़लतियों के विशाल बहुमत को पकड़ लेते हैं जिन्होंने सबसे प्रसिद्ध ऐतिहासिक विफलताओं का कारण बना।
क्या यह लेख उपयोगी था?
हमें अपनी राय बताएं — कोई सुधार, कोई सवाल जिसका जवाब नहीं मिला, या कोई विषय जिसे आप अगली बार कवर होते देखना चाहते हैं।

लेखक के बारे में
Sudershan Soni
मोस्तक सर्विसेज़ में संस्थापक व मुख्य शिक्षक — MSc-योग्य गणित, विज्ञान, कंप्यूटर साइंस और STEM शिक्षक, 20+ वर्षों के पेशेवर अनुभव के साथ, 11+ और GCSE से A-Level और उससे आगे तक के छात्रों को दुनिया भर में ऑनलाइन पढ़ाते हैं।
पूरी प्रोफ़ाइल पढ़ें