मैं एक ठेकेदार हूं जो हाल ही में एक फर्म के साथ शुरू हुआ है।
टीम 3 डेवलपर्स है जिसमें 2 जूनियर से लेकर मध्य स्तर के देवता शामिल हैं, एक ही स्तर पर दूसरे के साथ जल्द ही शुरू हो रहा है, और खुद (6 साल xx)। दोनों मौजूदा डेवलपर्स के लिए यह विश्वविद्यालय / कॉलेज से बाहर उनका पहला काम है, और उनके पास अपने काम की देखरेख करने वाले वरिष्ठ डेवलपर पहले कभी नहीं थे।
कोई स्पष्ट संस्करण नियंत्रण नीति नहीं है। डेवलपर्स ट्रंक पर सभी विकास करते हैं और फिर अपनी विकास मशीनों से सीधे उत्पादन के लिए तैनात करते हैं। मौजूदा टीम ब्रांचिंग से परिचित नहीं है।
मैं यह सब बदल रहा हूं और इस तारीफ के लिए एक संस्करण नियंत्रण नीति के साथ CI, TDD टेस्ट / स्टेजिंग / प्रोडक्शन सर्वर आदि पेश कर रहा हूं।
स्रोत नियंत्रण प्रणाली TFS है, जिसका मैंने पहले कभी उपयोग नहीं किया है। इसे एक विशाल भंडार के रूप में कॉन्फ़िगर किया गया है।
मैंने उनके लिए कुछ पॉइंटर्स लिखे हैं, लेकिन क्या मुझे टीम के अनुभव को ध्यान में रखते हुए कुछ और जोड़ना / जोड़ना, संशोधन करना चाहिए?
संस्करण नियंत्रण नीति
विकास ट्रंक पर किया जाता है
यदि किसी परिवर्तन में एक सप्ताह से अधिक समय लगने का अनुमान है, तो इसे एक शाखा पर किया जाना चाहिए, ट्रंक से नियमित रूप से विलय के साथ दो को सिंक से बाहर जाने से रोकने के लिए।
उत्पादन कोड के लिए बनाई गई रिलीज़ शाखाएँ। उस शाखा में केवल स्थिर कोड होना चाहिए। हमारे पास या तो एक रिलीज शाखा हो सकती है जो स्प्रिंट के अनुसार एक बार ट्रंक से अपडेट हो जाती है, या हम प्रत्येक सप्ताह के लिए एक अलग रिलीज शाखा बना सकते हैं।
यदि उत्पादन कोड को प्रभावित करने वाले एक तत्काल बग को ठीक करने की आवश्यकता है, तो यह रिलीज शाखा पर बन जाता है, और वापस ट्रंक में विलय हो जाता है।
यदि हम एक रिलीज शाखा की रणनीति अपनाते हैं तो ट्रंक स्प्रिंट के अंत में प्रति स्प्रिंट के अनुसार एक बार रिलीज शाखा में विलीन हो जाता है।
यदि हम प्रति रिलीज की रणनीति के अनुसार अलग शाखा को अपनाते हैं, तो ट्रंक कभी भी रिलीज़ शाखा में विलय नहीं होता है
कुछ परिदृश्यों में विभिन्न शाखाओं पर बग को दो बार ठीक करने के लिए आवश्यक हो सकता है, यदि शाखाओं ने बहुत अधिक विचलन किया है। यदि हम छोटे स्प्रिंट कर रहे हैं तो यह बहुत बार नहीं होना चाहिए।
मेरी तीन सर्वर रखने की योजना है। टेस्ट पर्यावरण जो हमेशा नवीनतम कोड को रेपो में चला रहा है। एक स्टेजिंग वातावरण जो स्टेजिंग / टेस्टिंग रिलीज़ कैंडिडेट कोड और यूएटी उद्देश्यों और उत्पादन वातावरण के लिए नवीनतम रिलीज़ उम्मीदवार चला रहा है।
ऐसा करने के लिए योजना बनाने का कारण यह है कि अभी तक ग्राहक ने केवल आंतरिक सॉफ्टवेयर किया है। नवीनतम परियोजना एक उच्च प्रोफ़ाइल मीडिया क्लाइंट के लिए है, और मेरी भावना यह है कि टीम को इस समय और अधिक पेशेवर विकास मॉडल अपनाने की आवश्यकता है जो वे करते हैं।
फिलहाल उदाहरण के लिए, एक उपयोगकर्ता बग रिपोर्ट के साथ टीम को फोन कर सकता है। देवता बग का पता लगाते हैं और उसे ठीक करते हैं, अपनी मशीनों पर एक त्वरित परीक्षण नेत्र परीक्षण करते हैं और फिर सीधे उत्पादन में तैनात करते हैं। कोई स्वचालित परीक्षण या कुछ भी नहीं।
मुझे लगता है कि सुविधा शाखा एक कदम बहुत दूर है और मैं इसे हटा दूँगा।
तो अनिवार्य रूप से यह नीचे आता है) ख) कोई शाखा नहीं) बी) एक रिलीज शाखा और ट्रंक, और सी) एक रिलीज शाखा प्रति रिलीज और ट्रंक।
मैं बाद की ओर झुक रहा था। मेरा प्रारंभिक विचार यह होगा कि मेरे पास एक रिलीज़ उम्मीदवार और एक ही समय में अलग-अलग सर्वर (UAT / प्रोडक्शन) पर लाइव होने के लिए रिलीज़ होगा, लेकिन प्रभावी रूप से ट्रंक किसी भी समय रिलीज़ उम्मीदवार है, इसलिए प्रति शाखा रिहाई पागल की ओर झुकाव है। मेरा एकमात्र विचार यह होगा कि यदि हम नहीं चाहते कि हमारे हितधारक विकास कोड देखें तो हमें एक अलग रिलीज़ उम्मीदवार शाखा की आवश्यकता हो सकती है, लेकिन YAGNI और वह सब .....