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