सॉफ्टवेयर डेवलपमेंट इंजीनियरिंग है? यदि नहीं, तो इस प्रकार योग्य होने के लिए किन चीजों का अभाव है?
हाँ, सॉफ्टवेयर इंजीनियरिंग एक इंजीनियरिंग अनुशासन है।
विकिपीडिया इंजीनियरिंग को गणित के अनुप्रयोग के साथ-साथ वैज्ञानिक, आर्थिक, सामाजिक, और व्यावहारिक ज्ञान के रूप में परिभाषित करता है ताकि संरचना, मशीनों, औजारों, प्रणालियों, घटकों, सामग्रियों में सुधार, आविष्कार, डिजाइन, निर्माण, अनुसंधान, और सुधार हो सके , प्रक्रिया, समाधान और संगठन। " सॉफ्टवेयर इंजीनियरिंग का परिणाम एक सॉफ्टवेयर सिस्टम है जो लोगों के जीवन को बेहतर बना सकता है, और इसमें वैज्ञानिक, गणितीय, आर्थिक, सामाजिक, या व्यावहारिक ज्ञान के कुछ संयोजन शामिल हो सकते हैं।
अकादमिक और पेशेवर रूप से इसे कैसे देखा जाता है, इसके संदर्भ में, यह भिन्न होता है। सॉफ्टवेयर इंजीनियरिंग कार्यक्रमों को इंजीनियरिंग कार्यक्रमों के रूप में एबीईटी द्वारा मान्यता प्राप्त किया जा सकता है । सॉफ्टवेयर इंजीनियर IEEE के सदस्य हो सकते हैं। कुछ कंपनियां सॉफ्टवेयर इंजीनियरिंग को एक इंजीनियरिंग अनुशासन मानती हैं, जबकि अन्य नहीं - यह वास्तव में एक टॉस है।
इस विषय पर सबसे अच्छी पुस्तक स्टीव मैककोनेल के व्यावसायिक सॉफ्टवेयर विकास: शोर्ट शेड्यूल, उच्च गुणवत्ता वाले उत्पाद, अधिक सफल परियोजनाएं, संवर्धित करियर हैं । यह सॉफ्टवेयर इंजीनियरिंग को एक पेशे के रूप में देखता है, एक शिल्प से एक पेशे को विकास, सॉफ्टवेयर विकास का विज्ञान, सॉफ्टवेयर इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग के बीच का अंतर (सॉफ्टवेयर के लिए इंजीनियरिंग प्रथाओं को लागू करने वाले इंजीनियर जो सॉफ्टवेयर बनाने के लिए होता है, एक केस स्टडी के साथ) मेरे अल्मा मेटर शामिल हैं ), प्रमाणन और लाइसेंसिंग, और नैतिकता।
ग्लेन वेंडरबर्ग के पास "रियल सॉफ्टवेयर इंजीनियरिंग" नामक वार्ता की एक श्रृंखला है, जो 2010 और 2015 के बीच कई सम्मेलनों में दो संबंधित वार्ता, "क्राफ्ट, इंजीनियरिंग और प्रोग्रामिंग के सार" के साथ दिया गया है (2011 में एक के रूप में दिया गया) RailsConf में मुख्य) और "क्राफ्ट एंड सॉफ्टवेयर इंजीनियरिंग" (2011 में QCon लंदन में दिया गया)। मुझे लगता है कि ये वार्ता एक बहुत व्यापक तर्क है कि सॉफ्टवेयर इंजीनियरिंग एक इंजीनियरिंग अनुशासन क्यों है।
एक तर्क, जो वेंडरबर्ग अपनी वार्ता में संक्षिप्त रूप से लाता है, वह है जो 1992 में जैक डब्लू रीव्स द्वारा किया गया था (और 2005 में फिर से परिकल्पित किया गया था) जो सॉफ्टवेयर डिजाइन है और कैसे कोड सॉफ्टवेयर इंजीनियरिंग डिजाइन गतिविधियों का आउटपुट है ( यह भी है) सी 2 विकी पर चर्चा की)। एक बार जब आप सोच के पुराने स्कूलों से दूर हो जाते हैं, जहां विनिर्देशन और मॉडलिंग सॉफ्टवेयर डिजाइन होता है और कोड में सॉफ्टवेयर डिजाइन होता है, तो सॉफ्टवेयर इंजीनियरिंग और अन्य इंजीनियरिंग विषयों के बीच के कुछ संबंध अधिक आसानी से स्पष्ट हो जाते हैं। कुछ अंतर और उन मतभेदों के कारण और भी स्पष्ट हो जाते हैं जब आप देखते हैं कि सॉफ्टवेयर विकास का अर्थशास्त्र कई अन्य विषयों की तुलना में काफी अलग है - निर्माण सस्ता है (लगभग कई मामलों में), जबकि डिजाइन महंगा हिस्सा है।
क्या वह [CMMI] कुछ है जो विकास को इंजीनियरिंग में बदल देगा?
सीएमएमआई एक प्रक्रिया सुधार ढांचा है जो संगठनों को मार्गदर्शन प्रदान करता है कि सॉफ्टवेयर बनाते समय किस तरह की गतिविधियाँ उपयोगी हैं। इंजीनियरिंग विषयों में आमतौर पर एक इंजीनियरिंग प्रक्रिया होती है। उच्च गुणवत्ता वाली परियोजनाओं के सफल समापन के लिए ऐसी प्रक्रिया का होना महत्वपूर्ण है। उस ने कहा, CMMI (या किसी अन्य प्रक्रिया ढांचे या कार्यप्रणाली) सिर्फ एक उपकरण है - इसका उपयोग करने से आप एक डेवलपर से इंजीनियर तक जादुई रूप से आगे नहीं बढ़ पाएंगे। हालांकि, किसी प्रकार की प्रक्रिया का पालन नहीं करना, मेरी राय में, एक ऐसी परियोजना का संकेत है जो इंजीनियरिंग परियोजना नहीं है।
इसके अलावा, सॉफ्टवेयर इंजीनियरिंग पाठ्यक्रम / प्रमाण पत्र पर आपकी क्या राय है?
यह केवल उतना ही मूल्य है जितना अन्य लोग इसमें डालते हैं। उपयोगी पाठ्यक्रम हैं और बेकार पाठ्यक्रम हैं। मूल्यवान प्रमाण पत्र हैं, और प्रमाण पत्र जो उस कागज के लायक नहीं हैं, जिस पर वे मुद्रित हैं। बहुत सारे कारक हैं, जो पाठ्यक्रम को समर्थन या मान्यता दे रहे हैं या जो आपके वर्तमान रोजगार के प्रमाण पत्र को आपकी वर्तमान नौकरी के लिए जारी कर रहे हैं और आप कहाँ जाना चाहते हैं।