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