मेरे पास आपको देने के लिए कोई शोध पत्र या आँकड़े नहीं हैं, लेकिन मैं अपने अनुभव को एक टीम / संगठन में काम करने से संबंधित करूँगा जो ऐतिहासिक रूप से कम-से-औसत इकाई परीक्षण कवरेज और कोई अंत-से-अंत परीक्षण नहीं था, और धीरे-धीरे बार से आगे बढ़ते हुए अब हम ATDD (लेकिन, विडंबना यह है कि पारंपरिक TDD नहीं ) दृष्टिकोण के साथ।
विशेष रूप से, यह है कि प्रोजेक्ट टाइमलाइन का उपयोग कैसे किया जाता है (और अभी भी एक ही संगठन में अन्य टीमों / उत्पादों पर खेलते हैं):
- विश्लेषण और कार्यान्वयन के 4 सप्ताह तक
- प्रतिगमन परीक्षण, बग फिक्सिंग, स्थिरीकरण और रिलीज प्रीप के 2 सप्ताह
- ज्ञात दोषों को ठीक करने के 1-2 सप्ताह
- कोड सफाई और उत्पादन के बाद के मुद्दों / समर्थन (अज्ञात दोष / अनियोजित आउटेज) के 2-3 सप्ताह
यह हास्यास्पद ओवरहेड की तरह लगता है, लेकिन यह वास्तव में बहुत आम है, यह अक्सर गायब या अप्रभावी क्यूए द्वारा कई संगठनों में नकाबपोश होता है। हमारे पास अच्छे परीक्षक और गहन परीक्षण की संस्कृति है, इसलिए इन मुद्दों को जल्दी पकड़ा जाता है, और कई महीनों / वर्षों के दौरान धीरे-धीरे बाहर खेलने की अनुमति देने के बजाय फ्रंट (ज्यादातर समय) तय किया जाता है। 55-65% रखरखाव ओवरहेड डिबगिंग पर खर्च किए जा रहे 80% के सामान्य रूप से स्वीकृत मानदंड से कम है - जो उचित लगता है, क्योंकि हमारे पास कुछ यूनिट परीक्षण और क्रॉस-फ़ंक्शनल टीमें (क्यूए सहित) थीं।
हमारी नवीनतम उत्पाद की हमारी टीम की पहली रिलीज के दौरान, हमने स्वीकृति परीक्षणों का पुन: परीक्षण करना शुरू कर दिया था, लेकिन वे सूंघने के लिए काफी नहीं थे और हमें अभी भी बहुत सारे मैनुअल परीक्षण पर निर्भर रहना पड़ा। यह रिलीज दूसरों की तुलना में कुछ हद तक कम दर्दनाक थी, आंशिक रूप से हमारे अप्रत्यक्ष स्वीकृति परीक्षणों के कारण और आंशिक रूप से हमारी अन्य परियोजनाओं के सापेक्ष उच्च इकाई परीक्षण कवरेज के कारण। फिर भी, हमने प्रतिगमन / स्थिरीकरण पर लगभग 2 सप्ताह और उत्पादन के बाद के मुद्दों पर 2 सप्ताह बिताए।
इसके विपरीत, उस प्रारंभिक रिलीज के बाद से हर रिलीज में प्रारंभिक स्वीकृति मानदंड और स्वीकृति परीक्षण होते हैं, और हमारे वर्तमान पुनरावृत्तियों इस तरह दिखते हैं:
- विश्लेषण और कार्यान्वयन के 8 दिन
- स्थिरीकरण के 2 दिन
- उत्पादन के बाद समर्थन और सफाई के 0-2 संयुक्त दिन
दूसरे शब्दों में, हमने 55-65% रखरखाव ओवरहेड से 20-30% रखरखाव ओवरहेड तक प्रगति की। एक ही टीम, एक ही उत्पाद, मुख्य अंतर प्रगतिशील सुधार और हमारे स्वीकृति परीक्षणों को व्यवस्थित बनाने में है।
उन्हें बनाए रखने की लागत, प्रति स्प्रिंट, एक क्यूए विश्लेषक के लिए 3-5 दिन और एक डेवलपर के लिए 1-2 दिन है। हमारी टीम में 4 डेवलपर्स और 2 क्यूए विश्लेषक हैं, इसलिए (यूएक्स, प्रोजेक्ट मैनेजमेंट आदि की गिनती नहीं), जो कि 60 में से अधिकतम 7 मानव-दिन हैं, जिन्हें मैं सिर्फ 15% कार्यान्वयन ओवरहेड तक ले जाऊंगा सुरक्षित पक्ष।
हम प्रत्येक स्वीकृति अवधि का 15% स्वचालित स्वीकृति परीक्षणों को विकसित करने में खर्च करते हैं, और इस प्रक्रिया में प्रत्येक रिलीज़ के 70% को प्रतिगमन परीक्षण करने और पूर्व-उत्पादन और पोस्ट-प्रोडक्शन बग को ठीक करने में सक्षम होते हैं।
आपने देखा होगा कि दूसरी समयावधि बहुत अधिक सटीक है और पहले की तुलना में बहुत कम है। यह कुछ ऐसा है जिसे अप-फ्रंट स्वीकृति मानदंड और स्वीकृति परीक्षणों द्वारा संभव बनाया गया था, क्योंकि यह "काम की परिभाषा" को सरल बनाता है और हमें एक रिलीज की स्थिरता में बहुत अधिक आश्वस्त होने की अनुमति देता है। कोई अन्य टीमों ने (अभी तक) एक द्वि-साप्ताहिक रिलीज शेड्यूल के साथ सफल नहीं हुआ है, सिवाय इसके कि जब काफी तुच्छ रखरखाव रिलीज (बगफिक्स-ओनली, आदि) कर रहे हों।
एक और दिलचस्प दुष्परिणाम यह है कि हम अपनी रिलीज़ शेड्यूल को व्यावसायिक आवश्यकताओं के अनुकूल बनाने में सक्षम हैं। एक समय, हमें इसे दूसरी रिलीज़ के साथ मेल खाने के लिए लगभग 3 सप्ताह तक लंबा करना पड़ा, और अधिक कार्यक्षमता प्रदान करते हुए ऐसा करने में सक्षम थे, लेकिन परीक्षण या स्थिरीकरण पर कोई अतिरिक्त समय खर्च किए बिना। एक और समय, हमें छुट्टियों और संसाधन संघर्षों के कारण इसे लगभग 1, सप्ताह छोटा करना पड़ा; हमें कम देव कार्य करना था, लेकिन, जैसा कि अपेक्षित था, किसी भी नए दोषों को पेश किए बिना परीक्षण और स्थिरीकरण पर कम समय खर्च करने में सक्षम थे।
इसलिए मेरे अनुभव में, स्वीकृति परीक्षण, विशेष रूप से जब किसी परियोजना या स्प्रिंट में बहुत जल्दी किया जाता है, और जब उत्पाद स्वामी द्वारा लिखित स्वीकृति मानदंडों के साथ अच्छी तरह से बनाए रखा जाता है, तो आप सबसे अच्छे निवेशों में से एक हैं। पारंपरिक टीडीडी के विपरीत, जिसे अन्य लोग सही ढंग से इंगित करते हैं, दोष-मुक्त कोड की तुलना में परीक्षण योग्य कोड बनाने पर अधिक केंद्रित है - एटीडीडी वास्तव में बहुत तेजी से दोषों को पकड़ने में मदद करता है ; यह हर दिन एक पूर्ण प्रतिगमन परीक्षण कर रहे परीक्षकों की एक सेना होने के समान संगठनात्मक समकक्ष है, लेकिन सस्ता तरीका है।
क्या ATDD RUP या (ugh) वाटरफॉल स्टाइल, 3 महीने या उससे अधिक समय तक चलने वाली परियोजनाओं में आपकी लंबी अवधि की परियोजनाओं में मदद करेगा? मुझे लगता है कि जूरी अभी भी उस एक पर बाहर है। मेरे अनुभव में, लंबे समय से चल रही परियोजनाओं में सबसे बड़ा और बदसूरत जोखिम अवास्तविक समय सीमा और बदलती आवश्यकताएं हैं। अवास्तविक समय-सीमा लोगों को शॉर्टकट लेने का कारण बनेगी, जिसमें शॉर्टकट्स का परीक्षण भी शामिल है, और आवश्यकताओं में महत्वपूर्ण बदलाव बड़ी संख्या में परीक्षणों को अमान्य कर देगा, उन्हें फिर से लिखने और संभावित रूप से कार्यान्वयन ओवरहेड को फुलाए जाने की आवश्यकता होगी।
मुझे पूरा यकीन है कि ATDD में फुर्तीली मॉडल्स के लिए, या उन टीमों के लिए एक शानदार अदायगी है जो आधिकारिक तौर पर फुर्तीली नहीं हैं, लेकिन बहुत बार रिलीज़ शेड्यूल हैं। मैंने इसे एक लंबी अवधि की परियोजना पर कभी नहीं आजमाया है, मुख्यतः क्योंकि मैं कभी भी उस तरह की परियोजना पर प्रयास करने के लिए तैयार किसी संगठन के बारे में नहीं सुना या सुना है, इसलिए यहां मानक अस्वीकरण डालें। YMMV और वह सब।
PS हमारे मामले में, "ग्राहक" से कोई अतिरिक्त प्रयास की आवश्यकता नहीं है, लेकिन हमारे पास एक समर्पित, पूर्णकालिक उत्पाद स्वामी है जो वास्तव में स्वीकृति मानदंड लिखता है। यदि आप "कंसल्टिंग" व्यवसाय में हैं, तो मुझे संदेह है कि उपयोगी स्वीकृति मानदंड लिखने के लिए अंतिम उपयोगकर्ताओं को प्राप्त करना अधिक कठिन हो सकता है। एक उत्पाद स्वामी / उत्पाद प्रबंधक ATDD करने के लिए एक बहुत ही आवश्यक तत्व की तरह लगता है और हालाँकि मैं एक बार फिर से केवल अपने अनुभव से बोल सकता हूँ, मैंने कभी भी ATDD के बारे में नहीं सुना है कि उस भूमिका को पूरा करने के लिए किसी के बिना सफलतापूर्वक अभ्यास किया जाए।