कई 2-पीढ़ी के स्रोत नियंत्रण प्रणाली एक जुड़े "चेकआउट" का उपयोग करके काम करते हैं जो सर्वर को सूचित करता है कि आप एक फ़ाइल को संशोधित करने का इरादा कर रहे हैं। उदाहरणों में टीएफएस, सोर्सगियर वॉल्ट और कई अन्य शामिल हैं। इस तरह, आप अपनी आवश्यकता को तकनीकी रूप से पूरा कर सकते हैं। जैसा कि एडम बटलर ने बताया कि, इस प्रकार के उपकरण अपने स्वयं के मुद्दों के साथ आते हैं (बिना लंबी बहस के - ऑफ़लाइन काम के लिए सीमित समर्थन, और आम तौर पर काउंटर-उत्पादक विकास वर्कफ़्लो)।
मैं निश्चित रूप से रिफैक्टरिंग कार्य को आवंटित करने के लिए किसी प्रकार के पदानुक्रमित दृष्टिकोण का सुझाव दूंगा। डेवलपर्स को तार्किक रूप से उप-टीमों में वर्गीकृत किया जा सकता है, प्रत्येक कोड के विशिष्ट क्षेत्रों के लिए जिम्मेदार है। आप टीमों को कैसे तैयार करना चाहते हैं, इस पर निर्भर करते हुए, प्रत्येक में एक "लीड" भूमिका हो सकती है जो टीम के क्षेत्र के उच्च-स्तरीय डिजाइन के लिए जिम्मेदार है। इस संरचना को डेवलपर्स के लिए अच्छी तरह से जाना जाना चाहिए, और इसे रिफैक्टिंग के लिए संचार को सरल बनाना चाहिए। मुझे यकीन है कि यह दृष्टिकोण बहुत औपचारिक और कुछ पीछे की ओर लगता है, लेकिन मुझे लगता है कि 20+ डेवलपर्स के लिए एक बड़ी प्रणाली को फिर से तैयार करने के लिए "सभी के लिए" मुफ़्त का उपयोग करना बहुत बेहतर है। कुछ रिफ्लेक्टरिंग उच्च-स्तर पर होगी (जैसे मॉड्यूल X मॉड्यूल Y के साथ संचार कैसे करेगा), किस मामले में आपको उन लोगों की आवश्यकता होगी जो उपयुक्त स्तर पर कॉल कर सकते हैं। टीम में प्रत्येक डेवलपर को वास्तुशिल्प निर्णय नहीं लेने चाहिए, इसलिए किसी भी मामले में एक पदानुक्रम लगभग लगाया जाता है, भले ही कोई इससे अनभिज्ञ हो।
तो मूल रूप से, आपके द्वारा डाली गई मूल आवश्यकता को पूरा करने के लिए उपकरण हैं, लेकिन कोई भी उपकरण उचित संचार को बदलने और आपकी परियोजना की सामान्य वास्तुकला को चलाने वाले लोगों की एक छोटी संख्या नहीं है।