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