खराब software design युद्धपोतों को भी टकरा सकता है
(imseongkang.wordpress.com)21 अगस्त 2017 को, अमेरिकी नौसेना का 9,000-टन श्रेणी का Aegis destroyer John S. McCain (DDG-56) सिंगापुर के पास मलक्का जलडमरूमध्य में 30,000-टन श्रेणी के तेल टैंकर Alnic MC से टकरा गया, जिसमें 10 नौसैनिकों की मौत हुई और 5 घायल हुए। यह दुर्घटना व्यस्त समुद्री मार्ग में John S. McCain के नियंत्रण अधिकार सौंपने की प्रक्रिया लगभग 3 मिनट तक विलंबित होने के कारण हुई। इस जहाज़ से संबद्ध अमेरिकी नौसेना के 7th Fleet के कमांडर Vice Admiral Joseph P. Aucoin को दुर्घटना के तुरंत बाद पद से हटा दिया गया।
दुर्घटना की जांच करने वाली अमेरिकी NTSB (National Transportation Safety Board) की रिपोर्ट में कई कारण बताए गए, जिनमें दुर्घटना से 1 साल पहले John S. McCain पर लगाए गए IBNS (Integrated Bridge and Navigation System) का अनुपयुक्त design भी शामिल था। युद्धपोत के आधुनिकीकरण की प्रक्रिया में जहाज़ की steering और propulsion के control interface को touchscreen-आधारित software में बदल दिया गया था, लेकिन इस interface का समग्र UI अनुपयुक्त था, जिससे complexity बहुत बढ़ गई। इसके कारण मानवीय गलती करना आसान हो गया और गलती होने पर उसे तुरंत पहचानना कठिन हो गया, जिसने दुर्घटना में योगदान दिया। इसी वजह से अमेरिकी नौसेना ने touchscreen-आधारित control interface को हटाकर फिर से पारंपरिक mechanical control devices पर लौटने का फैसला किया।
पहली नज़र में इसे केवल touchscreen अपनाने की गलती माना जा सकता है, लेकिन वास्तव में मूल समस्या गलत UI के कारण बढ़ी हुई complexity थी। इससे संबंधित [Meltdown: Why Our Systems Fail and What We Can Do About It](क्रिस क्लियरफील्ड·आंद्रस टिलसिक, 2019) नाम की किताब में कई उदाहरणों के साथ बताया गया है कि system complexity या coupling का बढ़ना कितना खतरनाक हो सकता है। लिंक किए गए लेख में ऊपर उल्लेखित IBNS के user interface design पर केंद्रित होकर विस्तार से समझाया गया है कि कौन-कौन से हिस्से खराब थे।
5 टिप्पणियां
आधुनिक UI/UX की विफलता के कारण पुराने इंटरफ़ेस पर लौटने की विडंबना
ऊपर उल्लेखित किताब [Meltdown] में UI/UX से जुड़ी समस्याओं के कारण हुई त्रासदियों के उदाहरण भी दिए गए हैं। उदाहरण के लिए, 2009 में हुई [एयर फ्रांस 447 अटलांटिक महासागर दुर्घटना] एक ऐसी दुर्घटना थी जिसमें कम अनुभव वाले सह-पायलट ने अचानक आपात स्थिति आने पर घबराहट में कंट्रोल स्टिक को लगातार अपनी ओर खींचे रखा। दुर्घटना में योगदान देने वाले कारणों में यह भी शामिल था कि स्थिति की गंभीरता समझ चुके पायलट ने खुद कंट्रोल संभाल लिया था, लेकिन उसे यह बात बहुत देर से पता चली कि सह-पायलट अब भी कंट्रोल स्टिक को खींच रहा था। कप्तान और सह-पायलट के कंट्रोल से अलग-अलग आदेश दिए जाने पर चेतावनी ध्वनि बज रही थी, लेकिन उस समय कई तरह की चेतावनियां एक साथ बज रही थीं, इसलिए जब तक यह बात समझ में आई, तब तक बहुत देर हो चुकी थी।
एयर फ्रांस 447 अटलांटिक महासागर दुर्घटना :
https://rhfvm1111.blog.me/220275551718
हालांकि यह उदाहरण उस किताब में शामिल नहीं है, लेकिन गलत ऑपरेशन इंटरफेस या सॉफ्टवेयर के कारण दुर्घटनाएं होने के कई मामले, ऊपर बताए गए विमानन क्षेत्र में ही, और भी हैं। उदाहरण के लिए, 1994 में हुई [चाइना एयरलाइंस 140 नागोया एयरपोर्ट दुर्घटना] में ऐसी स्थिति बनी जहां पायलट ने गलती से आसानी से छू जाने वाले लीवर को गलत तरीके से संचालित कर दिया, और साथ ही गंभीर बग वाले autopilot software को अपडेट नहीं किया गया था; इन दोनों बातों के मिल जाने से बड़ी त्रासदी हुई। हाल के वर्षों में लगातार हुई [लायन एयर 610 दुर्घटना] और [इथियोपियन एयरलाइंस 302 दुर्घटना] के कारण चर्चा में आए Boeing 737 MAX मॉडल के मामले में भी दुर्घटनाओं का मूल कारण autopilot software की वजह से बना SPOF (single point of failure) था। Boeing 737 MAX में autopilot software में एक ऐसा फ़ंक्शन पर्याप्त विवरण के बिना जोड़ दिया गया था, जो कुछ परिस्थितियों में पायलट की मंशा के विपरीत horizontal stabilizer को नियंत्रित करता था। लेकिन यह फ़ंक्शन विमान में लगे 2 सेंसरों में से केवल एक सेंसर के मान का ही उपयोग करता था, इसलिए जैसे ही वह सेंसर खराब हुआ, विमान की दिशा ज़बरदस्ती क्रैश की ओर स्थिर हो गई और अंततः वह दुर्घटनाग्रस्त हो गया। इतना ही नहीं, जब दोनों सेंसर अलग-अलग मान दिखाएं तो चेतावनी देने वाला फ़ंक्शन मूल रूप से मौजूद था, लेकिन Boeing ने उसे अतिरिक्त विकल्प बनाकर बेचना शुरू कर दिया, जिसके कारण पायलटों को सही चेतावनी मिल ही नहीं सकी।
चाइना एयरलाइंस 140 नागोया एयरपोर्ट दुर्घटना :
https://rhfvm1111.blog.me/220226606257
Boeing 737 MAX मॉडल की खामियां :
https://namu.wiki/w/%EB%B3%B4%EC%9E%89%20737%20MAX/%EA%B2%B0%ED%95%A8
यूज़र इंटरफ़ेस की समस्या और मानवीय त्रुटि के मेल का एक और प्रतिनिधि उदाहरण 1988 में अमेरिकी नौसेना के Aegis cruiser Vincennes (CG-49) द्वारा ईरान के एक नागरिक विमान को लड़ाकू विमान समझकर मार गिराने की घटना भी है। अमेरिका और ईरान के बीच तनाव फिर से बढ़ता देख यह बात याद आ गई.
USS Vincennes द्वारा Iran Air Flight 655 को मार गिराने की घटना:
https://namu.wiki/w/…
ऐसे दुखद मामले बहुत हैं। जिन क्षेत्रों में लोगों की ज़िंदगी दांव पर होती है, वहाँ सबसे बढ़कर विश्वसनीयता और सहजता महत्वपूर्ण लगती है.
UI/UX में सुधार करते समय भी ऐसे क्षेत्रों में सौंदर्य या सुविधा से अधिक इन्हीं पहलुओं पर ज़ोर देना चाहिए.
हाल ही में China Airlines Flight 140 की Nagoya Airport दुर्घटना का एक पुनर्निर्माण वीडियो सामने आया है। इसमें दिखाया गया है कि गलती करने में आसान ऑपरेशन इंटरफ़ेस, दोषपूर्ण safety devices, खामियों को समय पर ठीक न करने में एयरलाइन की देरी, और पायलटों द्वारा automation features को सही तरह से न समझ पाना जैसे कई कारण एक साथ मिलकर कैसे महज़ गलती होने के 2 मिनट के भीतर ही एक बड़ी त्रासदी पैदा कर देते हैं.
https://www.youtube.com/watch?v=IN4Y7dWXY1s