मैं एक सॉफ्टवेयर परियोजना पर काम कर रहा हूँ जो 5 साल से अधिक समय से अकेली है। यह शुरू करने के लिए एक गड़बड़ी थी (मैं इस पर काम करने वाला तीसरा या चौथा डेवलपर हूं), और हालांकि यह एक गड़बड़ से कम है अब भी यह अविश्वसनीय रूप से अव्यवस्थित है। नियंत्रण में इसे प्राप्त करने में प्रगति की दर हिमनद है और मैं राज्य के प्रति उदासीन महसूस करने लगा हूं कि यह किस प्रकार है। मैं वास्तव में इसे कैसे ठीक करना शुरू करूं?
प्रोजेक्ट बारीकियाँ: यह एक बिक्री कार्यक्रम है जो लगभग पूरी तरह से विज़ुअल बेसिक क्लासिक (VB6) में MySQL बैक एंड और रिपोर्टिंग इंजन C # में लिखा गया है। C # रिपोर्टिंग मॉड्यूल काम करने के लिए एक खुशी है, यह केवल पिछले कुछ वर्षों में लिखा गया था और इससे पहले सभी रिपोर्ट क्रिस्टल रिपोर्ट 9 में की गई थीं (हाँ, हमारे पास अभी भी कुछ रिपोर्टें हैं जो इस पर भरोसा करती हैं)।
हालांकि, वास्तविक कार्यक्रम ही पूर्ण आपदा है। कुल 90k LOC कुल नहीं है, और टिप्पणियों के बारे में 10k लाइनें (ज्यादातर दस्तावेज नहीं हैं, लेकिन पुराने कोड जो टिप्पणी की गई हैं)। 158 फॉर्म फाइलें, और 80 मॉड्यूल फाइलें। मुझे पता नहीं है कि उनमें से कितने वास्तव में उपयोग किए जाते हैं, क्योंकि कार्यक्रम की कुछ विशेषताएं बस पदावनत की जाती हैं और (उह, कभी-कभी) कार्यक्रम से हटाए गए संबंधित कोड के बिना इस तरह के रूप में नोट किया जाता है। मुझे लगता है कि कोड का केवल 50% वास्तविक उत्पादक उपयोग में है।
मैं बहुत सारे कोड को छूने से डरता हूं क्योंकि मुझे यकीन नहीं है कि अगर मैं कुछ तोड़ रहा हूं जो एक अस्पष्ट ग्राहक पर निर्भर करता है, तो यह अधिक मौकों पर हुआ है जितना मैं गिन सकता हूं। यह ऐसा है जैसे पूरे कोड में बारूदी सुरंगें हैं।
परियोजना के लिए वास्तव में कोई संरचना नहीं है। यह उन कुछ स्थानों को छोड़कर वस्तु उन्मुख नहीं है जहां मुझे अब तक सुधार करने का धैर्य था। यदि आपको किसी फ़ॉर्म पर डेटा प्राप्त करने की आवश्यकता है, तो आप एक डेटाबेस ऑब्जेक्ट को त्वरित करते हैं, फ़ंक्शन में अपनी क्वेरी को वहीं घोषित करते हैं, इसे निष्पादित करते हैं और जो आप डेटासेट के साथ करते हैं वह करेंगे।
जब मैंने इस परियोजना पर काम करना शुरू किया तो उपयोग में कोई स्रोत नियंत्रण नहीं था। मैंने उन अन्य लोगों को प्रोत्साहित करने की कोशिश की जिन पर मैं काम कर रहा था, लेकिन इसका उपयोग करने के लिए मैं नया आदमी था और मेरी कोशिश थी कि लोग सब तोड़फोड़ का इस्तेमाल करें लेकिन असफल रहे। कंपनी के प्रमुख डेवलपर ने अंत में पिछले कुछ वर्षों में एक शानदार बग पकड़ा और उन्होंने यह सुनिश्चित किया कि सभी डेवलपर्स अब सभी परियोजनाओं पर स्रोत नियंत्रण का उपयोग करते हैं, इसलिए कम से कम यह कुछ प्रगति है।
मुझे लगता है कि अगर मैं परियोजना को सुधारने पर काम करने में सक्षम था, तो मैं पूरे समय के लिए अच्छी प्रगति कर सकता हूं और शायद यह भी अनुमान है कि परियोजना को पूरी तरह से पूरा करने में मुझे कितना समय लगेगा, लेकिन यह सक्रिय उपयोग में है और मैं हूं लगातार बाहर आग लगाने, कीड़े ठीक करने, सुविधाएँ जोड़ने आदि के लिए कहा जा रहा है।
तो मैं वास्तव में इस परियोजना को कैसे शुरू करूं? किसी अन्य भाषा के साथ VB6 टूल करने का प्रयास करें? मेरे खाली समय में कार्यक्रम को आज़माएं और फिर से लिखें? या यह पूरी तरह से निराशाजनक है?
अद्यतन करें
इस पोस्ट के बाद मैं नए जोश के साथ प्रोजेक्ट पर वापस गया, लेकिन प्रगति की इतनी धीमी दर को देखकर कुछ ही महीनों में निराशा में लौट आया। मैंने इस चक्र को अगले वर्ष 2 या 3 बार दोहराया।
मैं तब से एक अलग काम पर चला गया हूं। हालांकि vb6 के इतने वर्षों के बाद, और अन्य तकनीकों के साथ केवल परिधीय अनुभव खोज मुश्किल था और मुझे रास्ते में कई अस्वीकृति का सामना करना पड़ा (लगभग एक वर्ष के दौरान एक दर्जन से अधिक साक्षात्कार)। इस स्थिति में दूसरों को मेरी सलाह है कि इस कारक को अकेले छोड़ने पर विचार करें। इस तरह की मृत अंत स्थिति में रहकर आप अपने करियर को होने वाले नुकसान पर विचार कर सकते हैं।