मैं 5 टीमों के साथ एक विकास समूह का हिस्सा हूं, कुल लगभग 40 डेवलपर्स। हम 3-सप्ताह के स्प्रिंट के साथ स्क्रम पद्धति का अनुसरण कर रहे हैं। हमारे पास एक निरंतर एकीकरण सेटअप (जेनकिंस) है, जिसमें एक निर्माण पाइपलाइन कई घंटों (व्यापक स्वचालित परीक्षणों के कारण) के साथ है। मूल रूप से, विकास प्रक्रिया अच्छी तरह से काम करती है।
हालाँकि, हम देखते हैं कि एक नए स्प्रिंट में कुछ दिनों के बाद, हमारा निर्माण अक्सर अस्थिर हो जाता है, और स्प्रिंट-एंड "प्रतिबद्ध स्टॉप" तक अस्थिर रहता है। इसका दुष्परिणाम यह है कि पाइपलाइन से दूर कदमों का निर्माण करें, विशेषकर UI- / वेबस्टेस को कई दिनों तक निष्पादित नहीं किया जाता है (क्योंकि केवल 'ग्रीन' बिल्ड पर ट्रिगर होता है)। नतीजतन, नए शुरू किए गए बग अक्सर स्प्रिंट में बहुत देर से ही पाए जाते हैं।
- प्रत्येक प्रतिबद्ध को परीक्षणों के एक मूल सेट के खिलाफ सत्यापित किया जाता है। एक बार सत्यापित हो जाने के बाद, परिवर्तन को कोड समीक्षा (गुरिट) के बाद मास्टर करने के लिए धकेल दिया जाता है
- मूल इकाई परीक्षण हर 30 मिनट में चलते हैं, जिसकी अवधि 10 मिनट से कम है
- एकीकरण परीक्षण हर 2 एच, अवधि 1 एच
- UI- / वेबटेस्ट सफल एकीकरण परीक्षणों पर चलते हैं, कई घंटे की अवधि
स्प्रिंट के दौरान बिल्ड स्थिरता के लिए कौन जिम्मेदार है (यह जिम्मेदारी स्प्रिंट के आसपास पारित की गई है) के आधार पर, बिल्ड को वापस स्थिर करने के लिए मध्यवर्ती, तदर्थ "स्टॉप स्टॉप" हो सकता है।
तो, हम चाहते हैं:
- हमारी देव टीमें एक स्प्रिंट के दौरान परिवर्तन विकसित और प्रतिबद्ध करने के लिए
- यदि बिल्ड निर्माण विफल हो जाता है, तो बाद की बिल्ड परिणामों के बहुत कम अर्थ होने पर हमारी निर्माण प्रक्रिया को छोड़ देना चाहिए
- डेवलपर्स को समय पर आधार पर गुणवत्ता प्रतिक्रिया देने के लिए हमारी निर्माण प्रक्रिया
दिए गए (2), अंक (1) और (3) एक-दूसरे के विपरीत प्रतीत होते हैं। क्या किसी के पास इससे निपटने का अच्छा अभ्यास है?
( हम वर्तमान में बिंदु ढीला कर रहे हैं (2), और असफल निर्माण चरणों पर भी निर्माण जारी रखने की अनुमति दे रहे हैं। मेरे पास अभी तक कोई प्रतिक्रिया नहीं है कि यह हमारी गुणवत्ता को कैसे प्रभावित करता है )
धन्यवाद, साइमन
several hours
तो वह असली समस्या है। यह दर्शाता है कि संयुक्त समाधान बहुत बड़ा है और बहुत व्यापक है। आपको समाधान को संक्षिप्त करने के लिए देखना चाहिए और फिर पैकेज के रूप में कोड के छोटे हिस्से होंगे (सभी प्लेटफार्मों पर सभी प्रमुख भाषाओं में एक तरह से या किसी अन्य में उपलब्ध)। इस प्रकार कोई भी परिवर्तन केवल घटकों में जाएगा और बहुत तेजी से पता लगाया जाएगा। पूर्ण निर्माण अनिवार्य रूप से बस पहले से ही संयुक्त घटकों को एक साथ रखा जाएगा, और तेजी से भी होगा। आप तब सही घटकों को हल करने के लिए केवल कुछ परीक्षण चला सकते हैं।