कुल में: हम विरासत प्रणालियों को कैसे बनाए रखेंगे? [बन्द है]


15

न्यूयार्क - एक धमाके के साथ जिसने गगनचुंबी इमारतों को कांप दिया, एक 83 वर्षीय भाप पाइप ने एक शक्तिशाली संदेश भेजा कि न्यूयॉर्क और अन्य अमेरिकी शहरों के नीचे ट्यूब, तारों और लोहे के मील पुराने हो रहे हैं और खतरनाक रूप से अस्थिर हो सकते हैं।

मैनहट्टन में बर्स्ट स्टीम पाइप के बारे में जुलाई 2007 की कहानी


हमने सॉफ्टवेयर रोट और तकनीकी ऋण के बारे में सुना है ।

और हमने पसंद से सुना है:

तो निश्चित रूप से सॉफ्टवेयर इंजीनियरिंग समुदाय इन मुद्दों से अवगत है।


लेकिन मुझे ऐसा लगता है कि हमारा समग्र समाज इस बात की सराहना नहीं करता है कि ये मुद्दे कार्य प्रणालियों और अनुप्रयोगों को कैसे प्रभावित कर सकते हैं।

स्टीव मैककोनेल के रूप में नोट :

... वित्तीय ऋण के विपरीत, तकनीकी ऋण बहुत कम दिखाई देता है, और इसलिए लोगों के पास इसे अनदेखा करने का एक आसान समय होता है।

यदि यह सच है, और मुझे विश्वास है कि यह है, तो मुझे डर है कि सरकारें और व्यवसाय हैकर्स के खिलाफ नियमित रखरखाव और किलेबंदी को तब तक के लिए रोक सकते हैं जब तक कि बहुत देर न हो जाए। [एनवाईसी और स्टीम पाइप की तरह।]


मेरा प्रश्न:

  • क्या कोई ऐसा तरीका है जिससे हम NYC और स्टीम पाइप के बराबर सॉफ्टवेयर से बच सकते हैं?

जवाबों:


12

विरासत प्रणालियों के रखरखाव से संबंधित एक महत्वपूर्ण समस्या उन लोगों की कमी है जो क) उन प्रणालियों पर गति करने के लिए हैं और ख) उन्हें बनाए रखने के लिए जारी रखने के लिए तैयार हैं।

मैंने हाल ही में इसी तरह की लाइनों के साथ एक सवाल पूछा था कि क्या युवा प्रोग्रामर मेनफ्रेम में बिल्कुल भी रुचि रखते थे। आम सहमति नहीं की ओर झुकाव हुआ।

विरासत प्रणालियों को बनाए रखने को कैरियर आत्महत्या के रूप में देखा जाता है। बहुत सारी कंपनियों में जहां जड़ता के नियम हैं, उन प्रणालियों के शीर्ष पर बने रहने के लिए प्रशिक्षण कर्मचारियों में बहुत कम निवेश है, जिसके कारण कर्मियों की तरफ से विफलता के एकल बिंदु हैं। बहुत सारे लोग जानते हैं कि समान प्रणालियों पर काम करने वाले लोग बाहर के मार्गों की तलाश करते हैं क्योंकि वे सिस्टम में कोई दीर्घकालिक भविष्य नहीं देखते हैं और वे केवल कैरियर की गिरावट देखते हैं।

कुछ उद्योगों में, डेटामेनेरेन्स विनियम एक महत्वपूर्ण कारक हो सकता है जो यह सुनिश्चित करता है कि विरासत प्रणालियों को यथोचित रूप से देखा जाता है। मुझे लगता है कि विशेष रूप से वित्तीय उद्योग में यह मुद्दा है। वे नियम - जहाँ तक मुझे जानकारी है - आम तौर पर समय सीमित होता है।

हालाँकि, मैं सोचता हूं कि क्या होगा:

ग्राफ पर एक बिंदु आएगा जहां एक अधिक आधुनिक प्रणाली को काटने की लागत जो आपको विरासत प्रणाली के नुकसानों के आसपास की अनुमति देती है, विरासत प्रणाली को बनाए रखने की लागत से नीचे गिर जाएगी क्योंकि यह सस्ता है।

आईबीएम इस समय बहुत सारे मेनफ्रेम बेच रहा है, और वे यह सुनिश्चित करने के लिए बहुत मेहनत कर रहे हैं कि उनकी बड़ी मशीनें युवा पेशेवरों के स्वाथों को बंद न करें। लेकिन मुझे नहीं लगता कि यह इस स्तर पर पर्याप्त है। कार्बन पदचिह्न और वास्तविक प्रसंस्करण शक्ति के संदर्भ में उनके पास कुछ यूएसपी हैं।

हालांकि, हर एक व्यक्ति के लिए जो आईबीएम मेनफ्रेम खरीदेगा क्योंकि आप इस पर लिनक्स चला सकते हैं, इसकी कीमत बिजली में कम है, और अत्यधिक कुशल है, आपके पास कई और लोग होंगे जो एक सर्वर फ़ार्म चुनेंगे क्योंकि वे उस दुनिया से अधिक परिचित हैं और भी कई प्रोग्रामर हैं।

अंतत: इसमें शामिल उद्योग पर बहुत कुछ निर्भर करता है। मैं एक विशेष उद्योग में काम करता हूं जो वर्षों और वर्षों के लिए मेनफ्रेम पर बहुत निर्भर रहा है और वे अभी भी व्यापक रूप से उपयोग में हैं। लेकिन होस्ट किए गए समाधान अधिक लोकप्रिय हो रहे हैं जो बड़ी कंपनियों में कौशल के समेकन की अनुमति देता है - यह विफलता के बिंदुओं के मामले में व्यक्तिगत कंपनियों द्वारा सामना किए गए कुछ मुद्दों को हटा देता है - और इसके अलावा, कुछ आपूर्तिकर्ता गैर-मेनफ्रेम आधारित समाधानों को बहुत दृढ़ता से देख रहे हैं। उस उद्योग में निहित समस्याओं के लिए।

इसलिए मैं सारांश में अनुमान लगाता हूं कि मैं जो कह रहा हूं, वह यह है कि बड़े पैमाने पर, विरासत प्रणालियों से प्रवास की ओर एक कदम होगा जैसे ही रखरखाव का एक आर्थिक बिंदु बनाम प्रवासन प्रवासन के पक्ष में पड़ता है। हालांकि, यह बहुत से लोगों के लिए अदृश्य हो सकता है क्योंकि यह नया और कायर नहीं है और इस तरह से एक बहुत ही सार्वजनिक चेहरा नहीं है जो एक अगले-बड़े-काम करता है। वह प्रवासन सेवा प्रदाताओं या नई तकनीक (विशेषकर जहां सेवा प्रदाता सीधे प्रभावित होते हैं) के लिए हो सकता है।

मेरा अनुभव - विशेष रूप से नेटवर्क में - यह है कि विरासत प्रणालियों पर निर्भरता को हटाने के लिए एक कदम है।


+1 केवल ईश्वरीय चीजों को त्यागने के लिए। एक निश्चित बिंदु पर 24/7 समर्थन के लिए 90k प्रति वर्ष का भुगतान, और 250k / y crusty पुराने प्रोग्रामर के लिए, सभी एक ऐसी प्रणाली को बनाए रखने के लिए जिसका चश्मा एक आधुनिक सर्वर की तुलना में एक पॉकेट कैलकुलेटर के अनुरूप है, व्यवसाय की समझ बनाने के लिए बंद हो जाता है। लोग बदलने से डरते हैं, लेकिन बदलाव अच्छा हो सकता है। मेनफ्रेम में एक आला है। यह एक अच्छा आला है। लेकिन यह ऐसी प्रक्रियाएं करना बंद कर देता है जो आसानी से समानांतर में नहीं की जा सकती हैं। मुझे लगता है कि कंपनियां अपने वित्तीय डेटा को नए मेनफ्रेम पर डाल रही हैं , सिर्फ इसलिए कि वे महंगे हैं, और उन्हें लगता है कि महंगा है, और यह सिर्फ सच नहीं है।
शैतानिकपुपी

1
30 वर्षीय कोबोल प्रणाली का रखरखाव करने वाला लड़का वास्तव में कैरियर आत्महत्या है। आपको किसी नए कौशल की आवश्यकता नहीं है, इसलिए कोई प्रशिक्षण बजट नहीं है क्योंकि यह केवल उन चीजों के लिए है जो आपको नौकरी के लिए आवश्यक हैं या प्रत्याशित हैं (और यह अनुमान है कि आप इसे हमेशा करते रहेंगे)। आपको नए उपकरणों और तकनीकों के साथ कभी भी संपर्क नहीं करना पड़ता है, क्योंकि इसके प्रासंगिक होने के लिए रखरखाव के तहत आपके सिस्टम के पास पर्याप्त विकास नहीं है। आदि आदि। यदि उसके 5 साल बाद आप अधिक आधुनिक तकनीक का उपयोग करके दूसरी नौकरी पाने की कोशिश करते हैं, तो आपको पुराने के रूप में देखा जाता है और पास कर दिया जाता है, इसलिए आप अटक जाते हैं।
jwenting

12

अधिकांश व्यवसाय पहले से ही तकनीकी ऋण से अनभिज्ञ हैं , और यह भी महसूस नहीं करते हैं कि चीजें खराब हैं जब तक कि यह सचमुच उनके चारों ओर गिर जाता है और उन्हें दिवालियापन में भेज देता है (यदि यह कभी उस बिंदु पर पहुंच जाता है)। मैंने वास्तव में देखा हैऐसा होता है, और यह सुंदर नहीं था; इसने इसे और भी बदतर बना दिया था, मैं बार-बार व्यापार मालिकों को बढ़ते तकनीकी ऋण के बारे में जागरूक करने की कोशिश करता था और यह तय करना होगा, और हर बार इसे अनिच्छा के कारण अस्वीकार करने के लिए आवश्यक समय और संसाधनों को ठीक करने के लिए अस्वीकार कर दिया गया था। यह। अंतिम परिणाम 10+ वर्षों के बाद था, सिस्टम अंत में विनाशकारी रूप से विफल हो गया (मेरे जाने के बाद) और वे ठीक नहीं हो सके, और व्यापार से बाहर चले गए, क्योंकि वे उन दस वर्षों के दौरान महसूस करने के लिए बहुत बेवकूफ थे कि थोड़ा पैसा खर्च करना समस्या को ठीक करें इसे पूरी तरह से अनदेखा करने से बेहतर होगा। मैं उस कंपनी की बेतुकी मूर्खता के बारे में घंटों तक रेंट दे सकता था, और मुझे जो सबसे ज्यादा दर्द हुआ, वह यह कि अगर मालिक नहीं होते तो पूरी तरह से बचा जा सकता था। बस पूरी तरह से सब कुछ काटकर एक त्वरित हिरन बनाने के लिए।

यह मुश्किल है कि किसी व्यवसाय को यह बताने की कोशिश की जाए कि क्या उनके सिस्टम बुरी तरह से लिखे गए हैं और उन्हें कुछ भारी रिफैक्टिंग की आवश्यकता है (यदि कुल फिर से लिखना नहीं है जो सामान्य रूप से ऐसा है क्योंकि यह बहुत बुरा है)। अधिकांश समय वे सिर्फ आप नीचे गोली मार देंगे भले ही आप उन्हें चेतावनी दी है कि यह परिवर्तन करते हैं, या जोड़ने के लिए नई सुविधाओं मुश्किल है (सही तरीके से, मेरा मतलब है, सिर्फ ढेर पर अधिक बकवास लेयरिंग नहीं), या यहाँ तक पर विचार आप एक व्यवसाय के लिए बाधा क्योंकि आप इसकी वर्तमान स्थिति में सिस्टम के साथ समस्याओं को देखते हैं।

मैं ईमानदारी से इस निष्कर्ष पर पहुंचा हूं कि यह एक हारी हुई लड़ाई है, और एक जो लड़ने लायक नहीं है। तकनीकी ऋण के बारे में जानने के लिए स्मार्ट लोगों को इसके बारे में दो बार बताने की आवश्यकता नहीं है और वे शुरू से ही खतरों के बारे में जानते हैं, और हर कोई किसी भी तरह के कारण या चेतावनी को नहीं सुनता है जब तक कि यह बहुत देर हो चुकी है। सबसे अच्छा (और निश्चित रूप से, सबसे अवास्तविक) विकल्प प्राकृतिक चयन को किक करने में होगा और अज्ञानी लोगों को केवल बुद्धिमान लोगों को छोड़कर विलुप्त होने दें। मैं इसे संभालने के किसी भी अधिक डाउन-टू-अर्थ तरीके के बारे में नहीं जानता, क्योंकि मैंने जो कुछ भी व्यक्तिगत रूप से अतीत में आजमाया है, उसे या तो पूरी तरह से नजरअंदाज कर दिया गया है, कंपनी की नजरों में मेरी कीमत कम कर दी है ("शिकायत" करने के लिए) या मेरी समाप्ति के परिणामस्वरूप, क्योंकि मैं "क्या isn 'को ठीक करने पर" बहुत ध्यान केंद्रित "कर रहा था टूट गया और किसी और के पास देखने के लिए मन की उचित स्थिति नहीं थी।


3
+1 - पूरी तरह से सहमत हैं और एमजीएमटी को समझाने के लिए भी मुश्किल है, एक मुद्दा है जब बहुत सारे पुराने एमजीएमटी अपने करियर में शुरुआती डेवलपर्स थे। वे इसे व्यक्तिगत रूप से लेते हैं जब आप उन्हें बताते हैं कि 15 साल पहले लिखा कोड इसे और अधिक नहीं काट रहा है - समय परिवर्तन को स्वीकार करने के बजाय और पुराने कोड को संशोधित करने की आवश्यकता है - वे रेत में अपना सिर डालते हैं और आपको बताते हैं कि आपको ज़रूरत है एक टीम के खिलाड़ी, आदि का अधिक होना
एमडीवी

7

न्यू यॉर्क और अन्य अमेरिकी शहरों के नीचे मीलों तक ट्यूब, तार और लोहे के तार पुराने हो रहे हैं और खतरनाक रूप से अस्थिर हो सकते हैं।

उपाख्यान के लिए, 16-17वीं शताब्दी में पेरिस में भी यही तर्क दिया गया था। इतने सारे छेद और सुरंगों को इसके नीचे खोदा गया था (क्षेत्र के भूविज्ञान के कारण प्राकृतिक छेद के अलावा) कि एक सामयिक इमारत उखड़ जाएगी।

जब तक पूरे शहर के ब्लॉक जमीन में गिर रहे थे, तब तक बजरी और हड्डियों के साथ अनावश्यक छेद और सुरंगों को भरने के निर्देश दिए गए थे (उन्हें भी अधिक भीड़भाड़ वाली कब्रिस्तान की समस्याएं थीं)। जब तक कंक्रीट का आविष्कार नहीं हुआ था, तब तक यह शहर बच गया।

मेरा कहना यह है कि कई संगठन किसी भी सॉफ्टवेयर के रखरखाव के लिए अंतिम समय तक प्रतीक्षा करते हैं, लेकिन कोडर (जैसे सिविल इंजीनियर) बहुत काम पाने के लिए, तेज और अच्छी तरह से करते हैं।

हम Y2k बग से बच गए। Y2036 बग कई संगठनों को अपने हार्डवेयर और सॉफ़्टवेयर को अपग्रेड करने के लिए बाध्य करेगा। 2012 में दुनिया खत्म हो सकती है। लेकिन कंप्यूटर वैज्ञानिक समाजशास्त्री या साहित्यिक आलोचक नहीं हैं

ओह, और जैसा कि इस बीच कहा जाता है: कोड लिखें जैसे कि अगले अनुचर एक शातिर मनोरोगी है जो जानता है कि आप कहाँ रहते हैं।


5
"कोड लिखें जैसे कि अगला अनुचर एक शातिर मनोरोगी है जो जानता है कि आप कहाँ रहते हैं।" - आप का मतलब है, इतना बुरा कि वे इसे देखने के बाद अपनी आँखें बंद कर लेंगे? सभी के बाद खुद की रक्षा करना होगा। यही कारण है कि होगा कोड मैंने देखा है में से कुछ की व्याख्या।
'14:55 पर MSalters

ऐसा कुछ, हाँ। : डी
डेनिस डे बर्नार्डी

4

मैं भूल जाता हूं कि हम इन दिनों विरासत कोड को क्या मानते हैं? पिछले साल का कोड, पिछले दशक का कोड या पिछली सदी का कोड?

पैसा विरासत प्रणालियों के रखरखाव के आसपास की बातचीत को संचालित करता है। तकनीकी ऋण प्रणाली को बदलने के लिए एक बढ़ी हुई लागत के रूप में अपना रूप लेता है।

मैंने खराब डिज़ाइन और समझदारी से डिज़ाइन किए गए सिस्टम के साथ काम किया है। मजे की बात यह है कि इन्हें बनाए रखने की लागत में इतना अंतर नहीं है। वर्तमान उपयोग के लिए सबसे बड़े मुद्दे गलत आर्किटेक्चर हैं, जो आमतौर पर स्केलिंग मुद्दों में या जब एक बड़ा बदलाव वांछित होता है। आप आसानी से एकल थ्रेड से बहु-थ्रेड में कोड के एक प्रमुख क्षेत्र को परिवर्तित नहीं करते हैं।

मेरे द्वारा अनुभव की जाने वाली सबसे महत्वपूर्ण समस्याएं हैं विकास की भाषाएं। पुरानी प्रणालियों को उन भाषाओं में लिखा जाता है जो आज कम लोकप्रिय हैं इसलिए आपको या तो अधिक प्रशिक्षित करना होगा या अधिक अनुभवी (महंगी) और दुर्लभ संसाधनों को किराए पर लेना होगा। या तो मामले में, छोटे पूल के कारण, आप कुशल व्यक्तियों को खोजने के लिए भी संघर्ष करते हैं जो समाधान के रूप में कई समस्याओं का नेतृत्व करते हैं।

जैसा कि फिर से वादा किया गया था, अधिकांश सिस्टम जिनके पास बहुत बड़ा निवेश था, वे फिर से लिखने का औचित्य नहीं रखते हैं। यह आश्चर्यजनक है कि कितने समय तक सॉफ्टवेयर को काम और बढ़ाया जा सकता है। हार्डवेयर परिवर्तन (कुछ सिस्टम मेरी कंपनी विशेष हार्डवेयर के उपयोग का समर्थन करती है) हमारी सबसे बड़ी समस्या है। बढ़ाने की क्षमता अक्सर केवल नई सुविधाओं के साथ विरासत कोड को एकीकृत करने के लिए तंत्र द्वारा सीमित है।


4

यह पहले से ही एक बड़ी समस्या है। और यह बदलने के कोई संकेत नहीं दिखाता है।

60 और 70 के दशक में सभी प्रकार के बड़े संस्थान कंप्यूटिंग सिस्टम पर लेखांकन करने के लिए कागज पर लेखांकन करने से चले गए। मोटे तौर पर उन्होंने कोबोल को चुना। अधिकांश अभी भी उन COBOL सिस्टम के अद्यतन संस्करणों का उपयोग कर रहे हैं। इस पर कुछ आंकड़ों के लिए http://cis.hfcc.edu/faq/cobol देखें

हर बार जब हम अर्नोल्ड श्वार्ज़नेगर को कुछ साल पहले पता चलता है कि वह केवल 200,000 राज्य कर्मियों के वेतन में कटौती नहीं कर सकता है, तो पहले 6 महीने के विकास के बिना, ( http: //www.infoworld देखें)। com / d / डेवलपर-विश्व / कैलिफ़ोर्निया-कोबोल-कॉन्ड्रम -2016 सत्यापन के लिए)।

स्विचिंग के जोखिमों को देखते हुए, इन प्रणालियों को बदलने को सही ठहराना बहुत कठिन है। कभी। यह मेरे जीवनकाल के लिए वास्तविकता रही है। लेकिन मैं अपने बच्चों के जीवनकाल में उस तथ्य को बदलने का कोई कारण नहीं देखता हूं। या उनके बच्चों का जीवनकाल भी।

मेरे पास ऐसे दोस्त हैं जिन्होंने कोड बनाए रखा है जो कि वे पुराने हैं। मेरा एक दोस्त है जो किसी कंपनी में 30 साल बाद लौटा था, जब उसने पहली बार वहाँ काम किया था, यह जानने के लिए कि उसके कार्यक्रम अभी भी चल रहे थे, अपरिवर्तित थे, एक ऐसी भाषा में जिसे उसने याद भी नहीं किया था!

मुझे एक सच्ची कहानी के साथ बताइए कि दोनों क्या हो सकती हैं।

1970 के दशक में, एक कंपनीव्यापारियों के लिए एक ऑनलाइन बाजार प्रदान करने के लिए स्थापित किया गया था। पीडीपी -11 उनके लिए एक अच्छी कीमत / प्रदर्शन था, इसलिए उन्होंने इसे चुना। वे एक मशीन की प्रदर्शन सीमाओं को आगे बढ़ा रहे थे, इसलिए उन्होंने अपने सिस्टम को अत्यधिक अनुकूलित पीडीपी -11 विधानसभा में लिखा। कुछ साल बाद पीडीपी -11 की बिक्री बंद हो गई। हालांकि, व्यापार बहुत अच्छा था, मशीनें चली गईं, और दूसरे हाथ से प्रतिस्थापन द्वारा आना आसान था। उन्होंने अपना मंच रखा। इसके कुछ वर्षों बाद प्रतिस्थापनों का आना कठिन हो गया। ट्रेडिंग प्लेटफॉर्म को बदलने के लिए एक प्रमुख परियोजना बनाई गई थी। यह विफल हुआ। उन्होंने फिर कोशिश की। और फिर से असफल रहा। विफलता का एक प्रमुख कारण यह था कि किसी को नहीं पता था कि वे कैसे व्यापार प्रणाली पर काम करते हैं, और कोई भी पीडीपी -11 विधानसभा को और अधिक नहीं पढ़ सकता है। फिर मोक्ष हिट हुआ। किसी ने एक पीडीपी -11 कोडांतरक बनाया जो लिनक्स पर चलता था।

इस प्रकार यह था कि 2000 में, एक बिलियन डॉलर / वर्ष के कारोबार में आने वाले ट्रेडों को ईथरनेट मशीनों पर, एक ईथरनेट-डेनेट पुल पर, पीडीपी -11 मशीनों का अनुकरण करने के लिए गया, जिन्होंने एक सॉफ्टवेयर सिस्टम पर व्यापार को निष्पादित किया जो कि अत्यधिक अनुकूलित पीडीपी- में लिखा गया था। 11 विधानसभा। गति के लिए।

पिछले एक दशक में उक्त कंपनी से मेरा कोई संबंध नहीं है। इसलिए मैं आपको यह नहीं बता सकता कि क्या वे अभी भी पीडीपी -11 के अनुकरण पर चल रहे हैं। मुझे पता है कि दशमलव उनके मार्जिन को दर्दनाक तरीके से निचोड़ रहा था, इसलिए उनके पास प्रवास करने का एक और प्रयास था। (मैंने केवल कहानी सीखी क्योंकि मैंने कई लोगों का साक्षात्कार लिया था, जिन्हें वहां से हटा दिया गया था, और मैंने पूछा कि क्या हुआ था।) हालांकि पिछली असफलताओं को देखते हुए, मैं इसे उन बाधाओं से भी बेहतर बताता हूं कि उन्होंने उस प्रणाली को सफलतापूर्वक प्रतिस्थापित नहीं किया है।


सिस्टम सिमुलेटर में चलते हैं, और (सिमुलेटर की परतें) आज जीवन महत्वपूर्ण अनुप्रयोगों को चलाते हैं। यह 100% कार्यात्मक कार्यात्मक गारंटी के साथ विरासत कोडांतरक कार्यक्रम की पुनर्लेखन की तुलना में पीडीपी -11 या 6805 सिम्युलेटर को मान्य करने के लिए बहुत आसान है। यह इस विशेष समस्या को हल करने के लिए एक पूरी तरह से वैध तरीका है।
मटनज

@ मट्टनज़: मेरा मानना ​​है कि 2000 में उनका न्यूनतम लेन-देन का समय 1 सेकंड था। साथ ही उनकी लागत उनके प्रतिद्वंद्वियों की तुलना में काफी अधिक थी। दशमलव ने उनके मार्जिन को कम कर दिया, इसलिए छंटनी का दौर जिसके परिणामस्वरूप कंपनी से कई लोगों का साक्षात्कार हुआ। वे केवल इसलिए बच गए क्योंकि उन्हें कुछ प्रकार के अनुप्रयोगों में से एक में पहला प्रस्तावक लाभ मिला था जहां मेटकाफ्स लॉ (नीलामी) रखती है। जबकि व्यक्तिगत रूप से निर्णय उचित थे, अंतिम परिणाम निश्चित रूप से उप-अनुकूल था।
btilly

3

उपयोगकर्ता के दृष्टिकोण से बहुत वास्तविक चिंता की तरह लगता है। सड़ने में देरी हो, या बेहतर, टाल दिया जाए, प्रश्न में सॉफ्टवेयर को इसके झोंपड़ियों से मुक्त होने की आवश्यकता है। इसके प्रकाशकों को स्रोत कोड को मुफ्त में सेट करना चाहिए, या स्रोतों को बनाए रखने और उन्नत करने के व्यवसाय में होना चाहिए जब तक कि इसका अंतिम उपयोगकर्ता इसका उपयोग करना बंद न कर दे। अन्यथा, इस बात की बहुत अच्छी संभावना है कि वे व्यवसाय की दुनिया में समान रो के कारण व्यवसाय से बाहर जा सकते हैं, इस प्रकार, सॉफ्टवेयर पूरी तरह से खुला छोड़ देता है।

कहने का तात्पर्य यह है कि, सॉफ़्टवेयर कॉपिराइट्स और प्रतिबंधित लाइसेंस की अवधि बहुत कम होनी चाहिए, जिसके अंत में, सॉफ़्टवेयर और इसका कोड आधार सार्वजनिक डोमेन में प्रवेश करता है और वहीं रहता है। इस प्रकार, उपयोगकर्ता के लिए स्रोतों को अपग्रेड करते रहना संभव है, या, ऐसा करने के लिए किसी को काम पर रखें, जिससे, देरी हो रही है और / या रॉट से बचा जा सके।

या, यदि आप मुफ्त सॉफ्टवेयर के विचार के लिए थोड़ा खुले हैं, तो आप अपने प्रोग्राम को एक मुफ्त लाइसेंस जैसे कि एजीपीएल या जीपीएल या अन्य मुफ्त सॉफ्टवेयर लाइसेंस के तहत लिख सकते हैं। मैंने जो देखा है, जब किसी सॉफ़्टवेयर के स्रोत किसी भी कारण से इसे सुधारने के लिए डेवलपर्स में अधिक रुचि नहीं रखते हैं, तो स्रोत का आधार नरभक्षण हो जाता है और नए जीवन को ले जाता है। डेबियन ऑपरेटिंग सिस्टम के पैकेज इस जीवन चक्र का अनुसरण करते हैं, जहाँ तक मैंने देखा है।


1
+1 एक निश्चित समय के बाद सॉफ्टवेयर को मुफ्त में बनाकर समस्या को कैसे हल किया जा सकता है और कम से कम एक विजन यह उम्मीद करता है कि समुदाय समस्याओं को हल करता है। हालाँकि मुझे संदेह है कि वित्तीय मुद्दों के कारण यह वास्तविक बन सकता है
k3b

मुफ्त सॉफ्टवेयर या नहीं, कैसे rots को रोकने के बारे में हमेशा काम किया जा सकता है। यह सब के बाद इंजीनियरिंग का डोमेन है। रोजा बंद हो जाएगा या नहीं, यह हमेशा व्यापार का सवाल है।
vpit3833

2

विभिन्न सरकारी और निजी उद्योग अनुप्रयोगों का समर्थन करने के बाद, मैं कहूंगा कि अधिकांश कंपनियां और कम से कम अमेरिकी सरकार कोड के सड़ने और नवीनतम सुरक्षा रुझानों के शीर्ष पर नहीं रहने के खतरों से अच्छी तरह परिचित है।

हमें नियमित रूप से अपने सॉफ़्टवेयर को विभिन्न संवेदनशीलता और अधिकांश सरकारी इलेक्ट्रॉनिक प्रणालियों, यहां तक ​​कि पुराने लोगों के लिए प्रमाणित करना होगा, उन्हें सुरक्षित रखने के लिए नियमित रूप से अपडेट प्राप्त करना होगा।

बेशक, कुछ अपवाद हैं, और हैकर्स हमेशा आगे बढ़ रहे हैं, लेकिन पूरे पर मुझे लगता है कि लोग बहुत जागरूक हैं आप बस वहां कुछ फेंक नहीं सकते हैं और इसे फिर से कभी नहीं छू सकते हैं।


1

चेतावनी: यह थोड़ा मुक्त रूप होने जा रहा है ...

मुझे लगता है कि आपकी चिंता को देखने के 2 तरीके हैं।

यदि आप इसके बारे में सोचते हैं, तो कुछ अंतरिक्ष शटल और उपग्रह एक ही कोड चला रहे हैं जो मूल रूप से उन्हें लॉन्च किया था। दूसरी ओर, कुछ को डिज़ाइन किया गया है भले ही वे (बहुत) दूरस्थ हों।

पर्यावरण क्या मायने रखता है। जाहिर है, जब तक आप पर्यावरण को संशोधित नहीं करते, आपका कोड अप्रचलित नहीं होगा। इस उदाहरण में, कोड रोट वास्तव में मौजूद नहीं है: कोड स्वयं (या उत्पादित बाइनरी) सड़ नहीं सकता है। यह टूट सकता है यदि आप इसे पूरी तरह से अलग कोण से हमला करना शुरू करते हैं। ऐसा नहीं है कि यह सड़ रहा है, यह है कि यह अपने पर्यावरण के अनुकूल नहीं है। इसे एक विकासवादी समस्या के रूप में सोचें।

लेकिन हमारा वातावरण बदल जाता है। और किसी तरह, आपकी समस्या की कुंजी क्या है, इसका भी समाधान है। हमारा पर्यावरण इतनी तेजी से बदलता है, कि आजकल हम एक सॉफ्टवेयर समाधान की अपेक्षा नहीं करेंगे कि वह समय के साथ विकसित न हो। हम ऐसे सॉफ्टवेयर प्रोजेक्ट्स को नजरअंदाज करते हैं जो पिछले एक साल में अपडेट नहीं हुए हैं, और ऐसे उत्पाद और ग्राहक सहायता के बारे में विलाप करेंगे जो स्पष्ट रोडमैप का उत्पादन नहीं करते हैं। और यहां तक ​​कि जब यह अच्छी तरह से काम करता है - आपको एक स्पष्ट रोडमैप, अच्छा समर्थन, नियमित अपडेट मिलता है ... - अब हमेशा एक मौका है जो एक चुनौतीपूर्ण सतह पर होगा, घातीय वृद्धि के साथ। हम अक्सर यह सोचने की गलती करते हैं कि बड़ी स्थापित कंपनियाँ हमेशा हावी रहेंगी, ठीक इसलिए कि वे हावी हैं। हालाँकि, उसी तरह झुंड में प्रमुख तत्व पुराना हो जाता है, सुपर-बड़े सॉफ्टवेयर / हार्डवेयर / जो भी विक्रेता पुराना हो जाता है। या अभी थोड़ा आलसी है। और एक चैलेंजर अंदर आता है और चीजों को घुमाता है, इससे पहले कि स्थापित प्रमुख ने 5 या 10 साल पहले किया हो। या प्रमुख सिर्फ एक अच्छी धड़कन लेगा, बमुश्किल जीवित रहने के दौरान जब हम बाजार में एक व्यवधान (आर्थिक रूप से बोलने, विभिन्न क्षेत्रों पर प्रभाव के साथ) देखेंगे, और तब चीजें चलेंगी। शायद यह अपूर्ण लगता है, लेकिन अपने आप में यह एक जैविक प्रक्रिया है।

इसलिए, उपयोगकर्ता के दृष्टिकोण से, मुझे लगता है कि मुद्दा इतना बड़ा नहीं है। कोड रोट उपयोगकर्ता के दृष्टिकोण से नहीं होगा, क्योंकि वह एक विकल्प का उपयोग करने के लिए मिलेगा (संभवतः एक सहज संक्रमण / प्रवास के साथ ... उम्मीद है)।

अब यह मानते हुए कि हम उपयोगकर्ता के दृष्टिकोण से चीजों को नहीं देख रहे हैं, या हम एक ऐसी प्रणाली के बारे में बात कर रहे हैं जो प्रतिरक्षा है - अज्ञात, सरकारी विकास, स्पेस यात्रा, आदि कारणों के लिए ... - प्रतिस्पर्धा करने के लिए और वास्तव में माना जाता है बहुत लंबे समय तक जीवित रहने / जीवित रहने के लिए निर्मित होने के लिए, हमें आपके द्वारा संदर्भित ग्रंथों को देखना होगा। और शायद भरोसेमंद प्रणालियों और दोष-सहिष्णु प्रणाली पर कुछ और साहित्य। हालांकि हम शायद आगे धकेलना चाहते हैं। हम सिर्फ दोष-सहिष्णुता नहीं चाहते हैं, हम विकासवादी व्यवस्था चाहते हैं।

विकासवाद के साथ समस्या यह है कि यह परिवर्तनों का परिचय देता है, और परिवर्तन विफलताओं के बिंदुओं का परिचय देते हैं। आइए अब इन पर ध्यान दें और इन्हें संबोधित करने के लिए हम क्या कर सकते हैं।

हम अभी भी इन्फ्रास्ट्रक्चर / आर्किटेक्चर / एमिगेंसिंग रूपक पर भरोसा कर सकते हैं जबकि हम ऐसा करते हैं (आखिरकार, हम सभी खुद सॉफ्टवेयर इंजीनियर हैं, हालांकि यकीनन सॉफ्टवेयर इंजीनियरिंग जैसी कोई चीज नहीं है ... अभी के लिए)। ट्यूब सिस्टम अभी भी सक्रिय है (कुछ ग्लिट्स के साथ), जबकि बिग बेन अभी भी काम करता है (कुछ ग्लिच के साथ) या एफिल टॉवर अभी भी एक कारण है। ऐसा इसलिए है क्योंकि हम एक बुनियादी ढांचे के महत्वपूर्ण (या इतना महत्वपूर्ण नहीं) तत्वों के साथ करते हैं कि हमें सॉफ्टवेयर के साथ क्या करना चाहिए: निरंतर निरीक्षण। इन संस्थाओं को लंबे समय तक चलने के लिए जरूरी नहीं बनाया गया था, लेकिन जब जरूरत थी तब स्थायी निरीक्षण और समय पर सुधार और मरम्मत से लाभ हुआ है। अगर आपको लगता है कि अपने हॉटफिक्सेस को कॉल करें।

दूसरी ओर, कुछ डिजाइनों को अंतिम रूप देना था, और बिना किसी रुकावट के साथ चलना, यहां तक ​​कि यह भी जानना कि निरंतर निरीक्षण संभव नहीं होगा। इस मामले में हम अच्छे डिजाइन और औपचारिक मॉडल की ओर मुड़ते हैं। निर्भरता के तत्व (उपलब्धता, विश्वसनीयता, सुरक्षा, अखंडता, रखरखाव) को एक दिए गए वातावरण के लिए निर्धारित किया जा सकता है। बाकी और भविष्य की योजना बनाने के लिए आँकड़े करते हैं। जो प्रश्न लाता है: क्या यह हमारे लिए वास्तविक अर्थों में विकासवादी व्यवस्था बनाने के लिए भी संभव है?


0

क्लीन कोड में जेफ लैंगर से एक समान सवाल ... स्टीम पाइप के संदर्भ के बिना:)

क्या होगा अगर चार सरल नियम थे जिनका आप पालन कर सकते थे जो आपके काम करने के दौरान अच्छे डिजाइन बनाने में मदद करेंगे? क्या होगा यदि इन नियमों का पालन करके आपने अपने कोड की संरचना और डिजाइन में अंतर्दृष्टि प्राप्त की, जिससे SRP और DIP जैसे सिद्धांतों को लागू करना आसान हो गया? क्या होगा अगर ये चार नियम अच्छे डिजाइन के उद्भव की सुविधा प्रदान करते हैं?

हममें से कई लोग महसूस करते हैं कि केंट बेक के सिंपल डिज़ाइन के चार नियम सिगनी के हैं, जो अच्छी तरह से डिज़ाइन किए गए सॉफ़्टवेयर बनाने में मदद करते हैं।

केंट के अनुसार (एक्सट्रीम प्रोग्रामिंग एक्सप्लेन में), एक डिज़ाइन "सरल" है यदि वह इन नियमों का पालन करता है:

  • सभी परीक्षण चलाती है
  • कोई दोहराव नहीं है
  • प्रोग्रामर का इरादा व्यक्त करता है
  • कक्षाओं और विधियों की संख्या को कम करता है

सभी परीक्षणों को चलाने के लिए ... हमें चलाने के लिए परीक्षणों की आवश्यकता है और यह तकनीकी ऋण का एक बहुत बड़ा संकेतक है। उदाहरण के लिए, यदि मर्करी क्वालिटी सेंटर जैसी प्रणाली में 10,000 परीक्षण मामले हैं और उन परीक्षणों में से कोई भी स्वचालित नहीं है, तो यह तकनीकी ऋण का एक स्पष्ट संकेतक है जिसे बनाया गया है।

और यहीं से पंख और उनकी पुस्तक "वर्किंग इफेक्टिवली विथ लेगेसी कोड" आती है।


5
यहां तक ​​कि अगर परीक्षण स्वचालित हैं, तो वह अभी भी तकनीकी ऋण है - उन परीक्षणों में थीम को बनाए नहीं रखा जाता है!
gbjbaanb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.