इसलिए, यह ध्यान में रखते हुए कि यह एक साक्षात्कार प्रश्न है और वास्तविक वास्तविक जीवन परिदृश्य नहीं है, मेरा मानना है कि सही दृष्टिकोण (और शायद साक्षात्कारकर्ता की तलाश है) एक स्पष्ट प्रश्न पूछना है, या यह लिखना नहीं है "यह नहीं कर सकता है। किया जाए ”और आगे बढ़ें। यहाँ पर क्यों।
साक्षात्कारकर्ता क्या पूछता है:
एक फ़ंक्शन लिखें जो दो बार एक ही मूल्य वापस न करने की गारंटी है। मान लें कि यह फ़ंक्शन कई मशीनों द्वारा समवर्ती रूप से एक्सेस किया जाएगा।
साक्षात्कारकर्ता को क्या चाहिए:
क्या यह उम्मीदवार आवश्यकताओं का प्रभावी ढंग से मूल्यांकन करता है और आवश्यकता होने पर अतिरिक्त इनपुट की तलाश करता है?
कभी ना माने।
जब एक इंजीनियर को एक आवश्यकता (एसओडब्ल्यू या विशिष्टता या कुछ अन्य आवश्यकताओं के दस्तावेज़ के माध्यम से) सौंपी जाती है, तो कुछ स्वयं स्पष्ट होते हैं, और अन्य पूरी तरह से अस्पष्ट होते हैं। यह उत्तरार्द्ध का एक आदर्श उदाहरण है। जैसा कि पिछले उत्तरों से पता चला है, इस आवश्यकता का जवाब देने का कोई तरीका नहीं है, ताकि (a) प्रश्न की प्रकृति के अनुसार या (b) प्रणाली की प्रकृति के अनुसार, (क्योंकि) आवश्यकता को पूरा नहीं किया जा सके। जैसा कि लिखा है (यह असंभव है)।
अधिकांश उत्तर मान्यताओं की एक श्रृंखला के माध्यम से समस्या को हल करने में एक या दूसरे प्रयास करते हैं। एक विशेष रूप से इसे जल्दी से पूरा करने की सलाह देता है और अगर यह गलत है तो ग्राहक को इसके बारे में चिंता करने दें।
यह वास्तव में एक बुरा दृष्टिकोण है। एक ग्राहक के रूप में, यदि मैं एक अस्पष्ट आवश्यकता देता हूं, और इंजीनियर बंद हो जाता है और मुझे एक समाधान बनाता है जो काम नहीं करता है, तो मैं परेशान होने जा रहा हूं कि वे काम पर चले गए और मुझे पूछने के लिए परेशान किए बिना मेरे पैसे खर्च किए। उस तरह के घुड़सवार निर्णय लेने से टीम वर्क की कमी, गंभीर रूप से सोचने में असमर्थता, और खराब निर्णय का प्रदर्शन होता है। यह किसी भी तरह के नकारात्मक परिणामों को जन्म दे सकता है, जिसमें सुरक्षा महत्वपूर्ण प्रणाली में हानि-जीवन भी शामिल है।
प्रश्न क्यों पूछें?
बिंदु अगर यह अभ्यास है कि अस्पष्ट आवश्यकताओं के निर्माण के लिए यह महंगा और समय लेने वाला है। ओपी के मामले में, आपको एक असंभव काम दिया गया है। स्पष्टीकरण के लिए पूछने के लिए आपकी पहली कार्रवाई होनी चाहिए - यह क्या है जो आवश्यक है? विशिष्टता की क्या डिग्री की आवश्यकता है? यदि कोई मूल्य गैर-अद्वितीय है तो क्या होगा? इन सवालों का जवाब कई हफ्तों के समय और कुछ मिनटों के बीच का अंतर हो सकता है। वास्तविक दुनिया में, कॉम्प्लेक्स सिस्टम (कई सॉफ्टवेयर सिस्टम सहित) में लागत के सबसे बड़े ड्राइवरों में से एक अस्पष्ट और खराब समझ वाली आवश्यकताएं हैं। यह महंगा और समय लेने वाली कीड़े, फिर से डिजाइन, ग्राहक और टीम की हताशा, और मीडिया कवरेज को शर्मसार करता है अगर परियोजना काफी बड़ी है।
जब आप मान लेते हैं तो क्या होता है?
एयरोस्पेस उद्योग में मेरी पृष्ठभूमि को देखते हुए, और एयरोस्पेस विफलताओं की अत्यधिक दिखाई देने वाली प्रकृति के कारण, मैं महत्वपूर्ण बिंदुओं को चित्रित करने के लिए इस डोमेन से उदाहरण लाना पसंद करता हूं। चलो मंगल ग्रह की असफल जलवायु मिशनों की एक जोड़ी की जाँच करें - मार्स क्लाइमेट ऑर्बिटर और मार्स पोलर लैंडर। सॉफ्टवेयर समस्याओं के कारण दोनों मिशन विफल हो गए - क्योंकि इंजीनियरों ने स्पष्ट रूप से और खराब संचार वाली आवश्यकताओं के कारण, आंशिक मान्यताओं को गलत माना।
मार्स क्लाइमेट ऑर्बिटर - इस मामले को आमतौर पर उद्धृत किया जाता है जब नासा अंग्रेजी को मीट्रिक इकाइयों में बदलने की कोशिश करता है। हालाँकि, यह एक बहुत ही सरल और खराब प्रतिनिधित्व है जो वास्तव में प्रसारित होता है। सच है, रूपांतरण की समस्या थी, लेकिन यह डिज़ाइन चरण में खराब-संचारित आवश्यकताओं और एक अनुचित सत्यापन / सत्यापन योजना के कारण था। इसके अलावा, जब दो अलग-अलग इंजीनियरों ने समस्या पर ध्यान दिया क्योंकि यह उड़ान प्रक्षेपवक्र डेटा से स्पष्ट था, तो उन्होंने इस मुद्दे को उचित स्तर तक नहीं उठाया क्योंकि उन्होंने माना कि यह एक संचरण त्रुटि थी। क्या मिशन ऑप्स टीम को इस मुद्दे के बारे में अवगत कराया गया है, इसे सही करने और मिशन को बचाने के लिए पर्याप्त समय था। इस मामले में, एक असंभव तार्किक स्थिति थी जिसे मान्यता नहीं थी कि यह महंगा मिशन विफलता के लिए क्या है।
मंगल पोलर लैंडर- यह मामला थोड़ा कम जाना-पहचाना है, लेकिन संभवतः मार्स क्लाइमेट ऑर्बिटर की विफलता के कारण इसकी अधिक निकटता शर्मनाक है। इस मिशन में, सॉफ्टवेयर ने रॉकेट की थ्रस्टर्ड असिस्टेड डिसेंट को मार्टियन सतह में नियंत्रित किया। सतह से 40 मीटर ऊपर एक बिंदु पर, लैंडर के पैर लैंडिंग की तैयारी में तैनात हैं। पैरों पर एक सेंसर भी था जो इंजन को बंद करने के लिए सॉफ्टवेयर को बताने के लिए गति (जब वे प्रभावित हुए थे) का पता लगाने के लिए पता लगाया था। नासा का सबसे अच्छा अनुमान है कि क्या हुआ (क्योंकि कई कब्जे की विफलताएं और अपूर्ण डेटा हैं) यह है कि एक साथ उनकी तैनाती के कारण पैरों में यादृच्छिक कंपन और अनुचित तरीके से सतह से 40 मीटर ऊपर शटडाउन तंत्र को ट्रिगर किया गया, जिसके परिणामस्वरूप दुर्घटना और $ 110 का विनाश हुआ। एम अंतरिक्ष यान। इस संभावना को विकास में उठाया गया था, लेकिन कभी संबोधित नहीं किया गया था। आखिरकार, सॉफ्टवेयर टीम ने अवैध धारणाएं बनाईं कि इस कोड को चलाने के लिए कैसे आवश्यक है (एक ऐसी धारणा यह है कि एक नकली संकेत बहुत कम समय तक उठाया जाएगा, इसके विपरीत परीक्षण के बावजूद), और उन मान्यताओं पर कभी सवाल नहीं उठाया गया। तथ्य।
अतिरिक्त मुद्दो पर विचार करना
लोगों का साक्षात्कार लेना और उनका मूल्यांकन करना एक मुश्किल काम है। एक उम्मीदवार के कई आयाम हैं जो एक साक्षात्कारकर्ता को तलाशने की इच्छा हो सकती है, लेकिन सबसे महत्वपूर्ण में से एक एक विचारधारात्मक रूप से सोचने की क्षमता है। विभिन्न कारणों से, जिनमें से कम से कम यह नहीं है कि महत्वपूर्ण सोच को खराब तरीके से परिभाषित किया गया है, हमारे पास महत्वपूर्ण सोच कौशल का मूल्यांकन करने में बहुत मुश्किल समय है।
एक इंजीनियरिंग प्रशिक्षक के रूप में, एक छात्र की गंभीर रूप से सोचने की क्षमता का मूल्यांकन करने के लिए मेरे पसंदीदा तरीकों में से एक कुछ अस्पष्ट प्रश्न पूछना था। तेज छात्र सवाल के दोषपूर्ण आधार पर उठाते हैं, इसे नोट करते हैं, और या तो उत्तर या उत्तर को अस्वीकार कर दिया जाता है। आमतौर पर, मैं निम्नलिखित के समान एक प्रश्न पूछूंगा:
आप अपने काम के ढेर से एक ड्राइंग उठाते हैं। ड्राइंग में विभिन्न कॉलआउट की एक किस्म शामिल है, लेकिन एक क्षैतिज सतह के लिए सबसे महत्वपूर्ण बिंदु और कहते हैं "परफेक्टली फ्लैट"। सतह 5 "16 से चौड़ी" लंबी है, और हिस्सा एल्यूमीनियम से बना है। आप इस सुविधा को बनाने के लिए कैसे मशीन को काम करेंगे?
(वैसे, आप इस बात से हैरान होंगे कि कार्यस्थल में ऐसा खराब विनिर्देश कितनी बार दिखाई देता है।)
मुझे उम्मीद है कि छात्र यह पहचानेंगे कि एक आदर्श विशेषता बनाना संभव नहीं है, और वे अपने उत्तर में यह बताएंगे। मैं आम तौर पर एक बोनस बिंदु प्रदान करता हूं अगर वे कहते हैं कि वे डिजाइनर के पास जाएंगे और भाग बनाने से पहले स्पष्टीकरण मांगेंगे। यदि कोई छात्र मुझे यह बताने के लिए आगे बढ़ता है कि वे कैसे .001 प्लांटरिटी या कुछ अन्य निर्मित मूल्य प्राप्त करने जा रहे हैं, तो मैं शून्य अंक प्रदान करता हूं। इससे मुझे अपने छात्रों को यह बताने में मदद मिलती है कि उन्हें बड़ी तस्वीर के बारे में सोचने की जरूरत है।
जमीनी स्तर
यदि मैं एक इंजीनियर (या इसी तरह के पेशे) का साक्षात्कार कर रहा हूं, तो मैं किसी ऐसे व्यक्ति की तलाश कर रहा हूं जो गंभीर रूप से सोच सके और सवाल कर सके कि उसके सामने क्या रखा गया है। मुझे कोई ऐसा व्यक्ति चाहिए जो सवाल पूछता है "क्या यह समझ में आता है?" ।
पूरी तरह से सपाट हिस्से के लिए पूछने का कोई मतलब नहीं है, क्योंकि परिपूर्ण जैसी कोई चीज नहीं है। एक फ़ंक्शन के लिए पूछने का कोई मतलब नहीं है जो कभी भी डुप्लिकेट मान नहीं लौटाता है, क्योंकि इस तरह की गारंटी देना असंभव है। प्रोग्रामिंग में, हम अक्सर वाक्यांश "कचरा में, कचरा बाहर" सुनते हैं। यदि आपको आवश्यकताओं के लिए कचरा सौंपा जाता है, तो यह आपकी नैतिक ज़िम्मेदारी है कि आप जो भी सवाल पूछें, उसे रोकें और पूछें, इससे आपको सही इरादे में मदद मिलती है। यदि मैं एक उम्मीदवार का साक्षात्कार कर रहा हूं, और मैं उन्हें एक स्पष्ट आवश्यकता देता हूं, तो मैं स्पष्टीकरण के प्रश्नों की अपेक्षा करने जा रहा हूं।