हम लगभग 200 डेवलपर्स से जुड़े एक संगठन हैं जो एक एकल उत्पाद (संशोधन नियंत्रण Git का उपयोग करके) पर लगातार काम कर रहे हैं जिसे एक निश्चित तिथि पर जारी करने की योजना है।
डेवलपर्स की भारी संख्या के कारण, हम प्रत्येक टीम में लगभग 10 डेवलपर्स के साथ "क्रॉस फंक्शनल" टीम बनाने की कोशिश कर रहे हैं, जिसके परिणामस्वरूप संगठन में लगभग 20 विकास दल हैं।
चूंकि हम मुख्य रिपॉजिटरी में उत्पाद के निरंतर "उच्च मानक" (जिसका अर्थ है कि जब डेवलपर एक पुल बनाता है, तो उत्पाद को कम से कम संकलित किया जाना चाहिए, आदि) होना चाहिए, हम कुछ प्रकार के गुणवत्ता वाले फाटकों का उपयोग करना चाहते हैं।
मैं थोड़ा अनिश्चित हूं कि प्रश्न का वाक्यांश कैसे बनाया जाए, लेकिन मैं सोच रहा हूं कि क्या मैं किसी एकल उत्पाद पर काम करने वाले डेवलपर्स के इतने बड़े समूह के लिए विकास के तरीकों की कुछ सलाह प्राप्त कर सकता हूं।
हमारी राय में, स्पेक्ट्रम का एक छोर प्रत्येक डेवलपर को मुख्य रिपॉजिटरी को सीधे प्रतिबद्ध करने की अनुमति देता है, हालांकि हमें डर है कि डेवलपर्स की उच्च संख्या के कारण / यह कहता है कि "मुख्य रिपॉजिटरी" लगातार टूटे हुए चरण में हो सकती है, कारण हम प्रत्येक कमिटमेंट के लिए "क्वालिटी गेट" की मांग नहीं कर सकते।
स्पेक्ट्रम के दूसरे छोर की तरह हो सकता है (हम सोचते हैं कि लिनुस टॉर्वाल्ड्स / लिनक्स यह करता है) एक पेड़ या पिरामिड संरचना है, जहां "मुख्य भंडार" में केवल तीन पुल स्रोत हैं, इन तीनों में केवल विश्वसनीय पुल स्रोतों आदि का एक मुट्ठी भर है। हालांकि, हमें लगता है कि परिवर्तन जैसी संरचना के साथ "मुख्य भंडार" में आने के लिए चढ़ाई करने के लिए एक लंबी श्रृंखला है। प्लस कि अगर एक मर्ज संघर्ष होता है, तो समस्या "मूल डेवलपर" की तुलना में किसी अन्य डेवलपर पर आ जाती है।
इस सभी पृष्ठभूमि की जानकारी और राय के साथ, हम इतने सारे डेवलपर्स के लिए अनुशंसित विकास विधियों को कैसे सीख और पढ़ सकते हैं? बड़े संगठन (Microsoft, Facebook, Ubuntu, इत्यादि) अपने विकास को कैसे बनाते हैं?