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