विकास और क्यूए के बीच लंबे समय तक देरी की लागत


18

मेरी वर्तमान स्थिति में, QA एक अड़चन बन गया है। हमारे पास वर्तमान बिल्ड से बाहर की जा रही सुविधाओं की दुर्भाग्यपूर्ण घटना रही है ताकि QA परीक्षण समाप्त कर सके। इसका मतलब यह है कि विकसित किए जाने वाले फीचर्स डेवलपर द्वारा पहले ही स्थानांतरित किए जाने के बाद 2-3 सप्ताह तक परीक्षण नहीं कर सकते हैं। देव तेजी से बढ़ते क्यूए के साथ, यह समय अंतराल केवल बड़ा होने जा रहा है।

मैं कोड की अपनी प्रतिलिपि के माध्यम से फ़्लिप करता रहता हूं, एक "हार्ड डेटा" स्निपेट की तलाश करता हूं जो दोषों को ठीक करने की लागत को दिखाता है जो लंबे समय तक मौजूद है। क्या कोई मुझे इस अवधारणा का समर्थन करने वाले कुछ अध्ययनों की ओर संकेत कर सकता है? मैं उन शक्तियों को समझाने की कोशिश कर रहा हूं जो यह कहती हैं कि क्यूए अड़चन उनके विचार से बहुत अधिक महंगी है।


यह "तकनीकी ऋण" का एक रूप है।
ब्रायन

3
@Brian - कृपया मुझे सही करें अगर मैं गलत हूं, लेकिन IMO टीडी के लिए एक अच्छा फिट नहीं है क्योंकि प्रति ऋण कोई ऋण नहीं है। यह प्रक्रिया को धीमा करने वाली अड़चन है और "बाद में किए जाने के लिए नहीं"
पीएचडी

7
@ नुपुल: नील के बयान पर ध्यान दें, "क्यूए की तुलना में तेजी से आगे बढ़ने के साथ, यह समय अंतराल केवल बड़ा होने वाला है।" आखिरकार, नई सुविधाओं का निर्माण किया जाएगा जिनमें टूटे हुए व्यवहार पर छिपी निर्भरताएं शामिल हैं। इस प्रकार, न केवल सिस्टम बगियर होगा, बल्कि उन बगों को ठीक करने की लागत भी बढ़ेगी (बग को ठीक करने से कुछ टूट जाएगा)।
ब्रायन

@ ब्रायन - विधिवत नोट किया और मान लिया :)
PhD

1
मैं बोतल गर्दन के पीछे क्यों अधिक उत्सुक हूं? क्या पर्याप्त परीक्षक नहीं हैं? क्या क्यूए टीम परीक्षण मामलों को बनाने वाले गेट से बाहर धीमी थी? विकास को प्रभावित करने के लिए उन्हें इतना पीछे नहीं होना चाहिए, और यह कुछ ऐसा होना चाहिए जो कि निश्चित बी / सी हो और यह आपको किसी भी बेहतर तरीके से नहीं मिलेगा क्योंकि आप अधिक सुविधाओं पर जमा रहते हैं।
त्यान्ना

जवाबों:


10

आपको किसी भी संदर्भ की आवश्यकता नहीं है, IMHO। यहाँ आप क्या कर सकते हैं (बल्कि करना चाहिए ):

विलंब की लागत निर्धारित करें! मान लेते हैं कि सुविधा का परीक्षण करने में 1 सप्ताह का समय लगता है। 2-3 सप्ताह की देरी का अर्थ है कि यह सुविधा कम से कम 4 वें सप्ताह तक उपलब्ध नहीं होगी। और वह भी 100% सफलता मान रहा है। एक और सप्ताह का फिक्सिंग समय जोड़ें ताकि लगभग 5 सप्ताह की देरी हो।

अब, यदि संभव हो तो परियोजना / सुविधा की अपेक्षित समय सीमा तक पहुँच प्राप्त करें। क्लाइंट कब तक इसकी उम्मीद करता है? क्या यह फिसल जाएगा? यदि नहीं, तो क्या परिणाम के रूप में अन्य फिसलेंगे? तो परिणाम के रूप में 'रिलीज' में कितनी देरी होगी?

उस रिलीज़ के लिए 'कंपनी को लागत' क्या है यानी ग्राहक उस रिलीज़ से लाभ की कितनी उम्मीद करता है? यदि वे उस रिलीज से $ 5200 / yr लाभ की उम्मीद करते हैं तो हर हफ्ते फिसल जाता है उन्हें खोए हुए राजस्व में $ 100 की लागत आती है। यही क्लाइंट व्यू है। आपके पास इस डेटा तक पहुंच हो सकती है या नहीं हो सकती है, लेकिन यह ध्यान में रखने योग्य है और यह बताते हुए कि विलंब रिश्ते को कैसे प्रभावित कर सकता है।

अब, डेवलपर्स को क्या नुकसान है? एक बार जब डेवलपर अन्य विशेषताओं पर चला जाता है, तो आप उसे / उसके चक्र को तोड़ने और पिछली विशेषता को 'ठीक' करने के लिए कहते हैं। समय / प्रयास हानि क्या है? एक परिणाम के रूप में बर्बाद हर घंटे के लिए एक से अधिक के रूप में वेतन का उपयोग करके कंपनी को लागत में परिवर्तित करें। आप इसका उपयोग "लाभ / राजस्व" की राशि को कहने के लिए कर सकते हैं जो अपशिष्ट "खाने में" है।

क्या आप पर ठोकर खाई है, "लागत की देरी" का उपयोग करके आसानी से मात्रा निर्धारित की जा सकती है - उत्पाद विकास प्रवाह के सिद्धांतों में डॉन रेबिनस्टीन द्वारा और साथ ही एजाइल सॉफ्टवेयर आवश्यकताओं में डीन लेफिंगवेल द्वारा वकालत की गई। आप उच्च शक्तियों 'अन्य भाषा-भाषी है $$ को समझाने के लिए आर्थिक कारकों से हर तरह के दावे वापस करने के लिए सक्षम होना चाहिए - आप चाहिए उन्हें समझाने के लिए उनकी भाषा में बात :)

भाग्य का जानवर! (जानबूझ का मजाक :)


6

मैं वास्तव में यह नहीं सोचता कि कोड पूरा आपके लिए यहाँ सही संसाधन है। यह एक कोड समस्या नहीं है, यह एक प्रक्रिया समस्या है, और शायद एक प्रबंधन समस्या है।

यदि आपकी प्रक्रिया का हिस्सा विशेष रूप से कमजोर है, तो यह बाधाओं के सिद्धांत का भंडाफोड़ करने का समय है :

  1. अड़चन की पहचान करें।

    इसका अर्थ है समग्र प्रक्रिया का सबसे धीमा या सबसे अक्षम हिस्सा। आपके मामले में, यह परीक्षण कर रहा है। लेकिन परीक्षण का क्या हिस्सा है? क्या यह:

    • परीक्षण का माहौल तैयार करना?
    • निर्धारित करना है कि क्या परीक्षण करना है?
    • कार्यात्मक (स्वीकृति) परीक्षण?
    • प्रतिगमन परीक्षण?
    • खोजी परीक्षण?
    • परीक्षण से बग / दोषों की रिपोर्ट करना?
    • बग को पुन: उत्पन्न करने के लिए चरणों का निर्धारण?
    • डेवलपर्स या परियोजना प्रबंधकों से स्पष्टीकरण प्राप्त करना?
    • क्यूए चरण में पाए गए मुद्दों को ठीक करना?

    ये सभी बहुत अलग समस्याएं हैं और विभिन्न समाधानों के लिए कहते हैं। आपको यह तय करने की आवश्यकता है कि सबसे महंगा / महत्वपूर्ण कौन सा है। प्रबंधन के लिए इसे सही ठहराना कठिन नहीं होना चाहिए, क्योंकि उपरोक्त सभी गतिविधियां लागत समय (AKA मनी) और उनमें से केवल एक-दो का मूल्य-वर्धित समय है।

  2. अड़चन को बाहर करो।

    दूसरे शब्दों में, विवश प्रक्रिया के चारों ओर अनुकूलन करें । कभी भी परीक्षकों को निष्क्रिय न होने दें। यह अनिवार्य रूप से राशि:

    • यदि वे पहले से ही नहीं हैं, तो विकास टीमों के अंदर परीक्षक डालते हैं, इसलिए डेवलपर्स के साथ एक सतत प्रतिक्रिया पाश है।
    • बार-बार परीक्षण परिनियोजन, इसलिए परीक्षण करने के लिए हमेशा कुछ नया / निश्चित होता है।
    • संचार को तेज और अधिक लगातार करना। उदाहरण के लिए, ईमेल थ्रेड पर त्वरित संदेश भेजने का पक्ष लें।
    • यह सुनिश्चित करना कि परीक्षकों के पास सबसे अच्छे उपकरण उपलब्ध हैं (फास्ट मशीन, कई मॉनिटर, सुव्यवस्थित बग ट्रैकिंग, आदि)

    यह चरण परीक्षण प्रक्रिया के अनुकूलन के बारे में नहीं है (अभी तक), यह ओवरहेड को कम करने के बारे में अधिक है। परीक्षकों का समय बर्बाद मत करो। समय को नष्ट करना जो वास्तव में व्यर्थ है, प्रबंधन के लिए एक आसान बिक्री भी होनी चाहिए।

  3. अन्य गतिविधियों को बाधा के अधीन करें।

    इस बिंदु पर, परीक्षक उतने ही उत्पादक होते हैं जितने वे संभवतः स्वयं के द्वारा हो सकते हैं, इसलिए हमें अन्य क्षेत्रों से उत्पादकता उधार लेने की आवश्यकता है:

    • डेवलपर्स और संचालन कर्मचारियों को निर्देश दें कि वे परीक्षकों को पहली प्राथमिकता दें, इससे कोई फर्क नहीं पड़ता कि वे और क्या काम कर रहे हैं।
    • यदि आपके पास क्रॉस-फ़ंक्शनल टीमें नहीं हैं, तो हर दिन एक बैठक कक्ष को पूर्व निर्धारित समय पर आरक्षित करें ताकि परीक्षकों को कभी भी एक बुक करने की कोशिश में समय बर्बाद न करना पड़े।
    • डेवलपर (और संभवतः संचालन) के कुछ बड़े प्रतिशत को फीचर कार्य से दूर रखें; उदाहरण के लिए, बग फिक्स, टेक डेट / रिफैक्टिंग, कोड रिव्यू और यूनिट टेस्टिंग पर ध्यान दें।
    • लगातार और वृद्धिशील रूप से परीक्षण करें - 3 सप्ताह तक विकसित न हों और फिर इसे परीक्षकों को दें। डेवलपर्स अपने कोड को तुरंत परीक्षण योग्य बनाने के लिए काम करते हैं, उदाहरण के लिए मचान या प्रोटोटाइप UI के साथ।
  4. बाधा को ऊपर उठाएं।

    यदि परीक्षक पूरी क्षमता से काम कर रहे हैं - उत्पादकता और न्यूनतम ओवरहेड दोनों के संदर्भ में - और यह अभी भी पर्याप्त तेजी से नहीं है, तो आपको परीक्षण में अधिक निवेश शुरू करने की आवश्यकता है।

    • यदि आप मैन्युअल परीक्षण तैनाती पर भरोसा करते हैं, तो इसे निरंतर एकीकरण और कॉन्फ़िगरेशन प्रबंधन स्क्रिप्ट के उपयोग के माध्यम से स्वचालित करें।
    • यदि परीक्षण योजनाओं को बनाने में लंबा समय लगता है, तो बेहतर स्वीकृति मानदंड (यानी निवेश ) प्राप्त करने पर काम करना चाहिए । अधिकांश संगठनों को शुरू में इस पर बहुत बुरा लगता है।
    • यदि स्वीकृति परीक्षण बहुत लंबा हो रहा है, तो उन्हें स्वचालित करना शुरू करें। ककड़ी या FitNesse जैसे उपकरण का उपयोग करें, या यदि आवश्यक हो तो xUnit- प्रकार परीक्षण लिखें। यदि यूआई परीक्षण में लंबा समय लगता है तो सेलेनियम, वाटीज और अन्य ब्राउज़र ऑटोमेशन टूल भी हैं।
    • यदि प्रतिगमन परीक्षण बहुत लंबा हो रहा है, तो उसे भी स्वचालित करें। यदि इसे स्वचालित नहीं किया जा सकता है, तो गेट की गुणवत्ता को सुधारने पर ध्यान केंद्रित करें, यानी कोड समीक्षा, यूनिट परीक्षण, स्थैतिक विश्लेषण उपकरण आदि पर अधिक जोर देने के साथ, डेवलपर्स को पूरी तरह आश्वस्त होना चाहिए कि इसे पारित करने से पहले बहुत कम वास्तविक कीड़े हैं। से QA (उत्पाद दोष एक अलग कहानी है)।
    • यदि खोजपूर्ण परीक्षण अड़चन है, तो आप संभावित रूप से रिलीज़ होने के बाद तक कुछ को स्थगित कर सकते हैं, या एक परीक्षण फर्म से अनुबंध कर सकते हैं जो कई ब्राउज़रों में समान वर्कफ़्लो का परीक्षण करने जैसी अत्यधिक समानांतर चीजें करने के लिए करते हैं।
    • यदि परीक्षक बहुत सारे बगों को पुन: उत्पन्न करने में असमर्थ हैं, तो एक क्षमता-परीक्षण वातावरण बनाने पर विचार करें जो आंतरायिक त्रुटियों को पुन: उत्पन्न करने में सक्षम हो। या, विस्तृत लॉग्स को ध्यान में रखते हुए, पूरे दिन और समानांतर, लगातार अपने स्वचालित स्वीकृति परीक्षणों को चलाने का प्रयास करें।
    • यदि बग को ठीक करने में बहुत लंबा समय लगता है, तो अपनी परियोजनाओं को विभाजित करना शुरू करें और / या गंभीरता से अपने समाधानों की खोज करने पर विचार करें। या, वैकल्पिक, उनमें से कुछ को ठीक नहीं करते; प्रत्येक बग महत्वपूर्ण नहीं है, आपको फीचर कार्य के साथ उन्हें प्राथमिकता देने में सक्षम होना चाहिए।
    • यदि अन्य सभी विफल हो जाते हैं, तो अधिक परीक्षकों को किराए पर लें।
  5. चरण 1 पर वापस जाएं।

मैं कहना चाहूंगा कि यह सब सामान्य ज्ञान है, लेकिन दुर्भाग्य से यह नहीं है, कम से कम अधिकांश संगठनों में नहीं। यदि आपको प्रबंधन से बहुत अधिक प्रतिरोध मिल रहा है, तो एक अमूल्य तकनीक वैल्यू स्ट्रीम मैपिंग (लीन मैन्युफैक्चरिंग की एक तकनीक) है, जिसका उपयोग आप यह दिखाने के लिए कर सकते हैं कि वास्तव में कितना पैसा बर्बाद हो रहा है और एक रिलीज उम्मीदवार द्वारा हर दिन पैसे बर्बाद किए जा रहे हैं। अगले चरण में जाने के लिए। अवसर लागत को समझना मुश्किल है, लेकिन यह सबसे अच्छा तरीका है जो मैंने इसे कल्पना और प्रदर्शित करने के लिए पाया है।

और अगर कोई भी काम नहीं करता है ... तो शायद आप एक बेकार कंपनी में हैं, इससे पहले कि बहुत देर हो जाए!

लेकिन आप प्रबंधक के डेस्क पर कुछ कागजों को छोड़ने और समस्या पर पैसा फेंकने के लिए कहकर इस समस्या को हल नहीं करेंगे, क्योंकि वे मान लेंगे (सही ढंग से) कि इस पर पैसा फेंकना वास्तव में इसे हल नहीं कर सकता है, और यहां तक ​​कि बना सकता है यह बदतर है। आपको समाधान प्रदान करने की आवश्यकता है , और यही इसका उत्तर है। यदि आप इस मुद्दे को "यहां एक तरीके की सूची के रूप में पेश करते हैं, जिसे हम" इस समस्या को हल करना शुरू कर सकते हैं, "हमें अधिक परीक्षकों की आवश्यकता है" के बजाय लागत / लाभ के अवरोही क्रम में है, तो आपको बहुत अधिक सफलता मिलेगी।


बहुत बढ़िया जवाब। बस (4) के तहत एक और विकल्प से निपटने के लिए, डेवलपर्स को परीक्षण स्वचालन, प्रक्रिया स्वचालन आदि की सहायता से क्यूए की सहायता करने में सक्षम होना चाहिए, क्यूए को पकड़ने में मदद करने के लिए कुछ अतिरिक्त विकास क्षमता का उपयोग करें।
क्रिस पिटमैन

4

पृष्ठ 29 और 30 में वह डेटा हो सकता है जिसकी आप तलाश कर रहे हैं, हालांकि एक अनुवर्ती की आवश्यकता हो सकती है।

मैं इस वाक्य में उल्लिखित शोध को ३० पृष्ठ पर देखूंगा:

दर्जनों कंपनियों ने पाया है कि किसी परियोजना में बाद के बजाय पहले के दोषों को ठीक करने पर ध्यान केंद्रित करने से विकास लागत और अनुसूची में दो या दो से अधिक कारकों में कटौती हो सकती है (मैककोनेल 2004)।

BTW, यह आपका प्रश्न था जिसने मुझे पुस्तक को फिर से ताज़ा करने के लिए फिर से बना दिया :-)


3
नहीं, यह डेटा केवल दिखाता है कि विकास के बाद के चरण (वास्तुकला, निर्माण, परीक्षण, आदि) में पता लगाने के लिए बग को अधिक महंगा है । यह इस बात के बारे में कुछ नहीं कहता है कि फीचर के तुरंत बाद टेस्टिंग फेज में पता चलने के बाद बग को तय करना ज्यादा महंगा है या नहीं। (हालांकि कोई सोचता होगा कि मामला होगा)
वेरोनिका

1
यह खंड उस चरण से संबंधित बग को ठीक करने की लागत पर केंद्रित है जिसे इसे पेश किया गया था और ठीक किया गया था, लेकिन उल्लिखित कुछ डेटा अधिक सामान्य आधार ले जाने वाले प्रतीत होते हैं। मैंने अपने उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया।
Krzysztof Kozielczyk

आप सही हैं, आपके द्वारा संपादित में जोड़ा गया डेटा प्रासंगिक हो सकता है।
वेरोनिका

3

आप जो वर्णन कर रहे हैं वह एक प्रक्रिया में एक अड़चन है। लीन सिद्धांत कहता है कि एक प्रक्रिया में हमेशा एक अड़चन होगी, लेकिन इसकी गंभीरता व्यापक रूप से भिन्न हो सकती है। यदि QA ने एक अतिरिक्त काम पर रखा है, तो विकास अड़चन बन सकता है।

लागत को समझने के लिए, निम्नलिखित स्थिति की कल्पना करें। आपने डेवलपर्स में से एक को चुना। उनका काम कभी भी गुणवत्ता आश्वासन नहीं होगा, लेकिन हमेशा अनिश्चित काल तक कतार में रहें। कल्पना कीजिए कि, इसका मतलब यह होगा कि क्यूए समय-समय पर बाकी डेवलपर्स के काम का गुणवत्ता आश्वासन दे सकता है और इसमें देरी की कोई कीमत नहीं होगी।

उस परिदृश्य में, देरी की लागत डेवलपर के वेतन की लागत है, क्योंकि उसका काम बर्बाद हो जाएगा।

कारण कि मैं लागत के संदर्भ में तर्क देता हूं और प्रक्रिया द्वारा निर्मित मूल्य नहीं है, बस इसलिए कि किसी प्रक्रिया के मूल्य का दस्तावेजीकरण करना कठिन है, भले ही यह कहीं बेहतर हो।


3

मैं कोड की अपनी प्रतिलिपि के माध्यम से फ़्लिप करता रहता हूं, एक "हार्ड डेटा" स्निपेट की तलाश करता हूं जो दोषों को ठीक करने की लागत को दिखाता है जो लंबे समय तक मौजूद है। क्या कोई मुझे इस अवधारणा का समर्थन करने वाले कुछ अध्ययनों की ओर संकेत कर सकता है?

बग को खोजने की संभावित लागत NIST के अध्ययन पर आधारित प्रतीत होती है । अध्ययन एक सर्वेक्षण था जिसमें अलग-अलग झरने थे:

Software Development Stage         | Cost
-----------------------------------+------
Requirements and Design            | 1X
Code and Unit Testing              | 5X
Integration and System Testing     | 10X
Beta Testing                       | 15X
Post Release                       | 30X

( यहाँ से तालिका यहाँ )

चुस्त सॉफ्टवेयर विकास के तरीकों में से एक उद्देश्य इन विशिष्ट चरणों को हटाने और इन लागतों को कम करना है। झरने के लिए अन्य तरीकों का उपयोग करते समय आंकड़े लागू नहीं होते हैं।


2

आपका प्रोबेलम QA के साथ नहीं है, वास्तव में, यदि आपका QA परीक्षण कर रहा है, तो विलंब आपकी चिंताओं से बहुत कम है। कृपया मुझे एक्सप्लेन करें (फिर, जैसा कि प्रोग्रामिंग उद्योग में आम गलतफहमी है) ... क्यूए विकास, सत्यापन, रिलीज और समर्थन के माध्यम से आवश्यकताओं (शायद पहले) से पूरे एसडीएलसी की देखरेख करके उत्पाद की गुणवत्ता का आश्वासन देता है। परीक्षण यह सुनिश्चित करता है कि कोड में कोई स्पष्ट दोष मौजूद नहीं है। बहुत बड़ा और महत्वपूर्ण अंतर है। यदि आपके पास सही QA था, तो वे सभी टेस्ट / वी एंड वी विभाग से पूछेंगे कि वे व्यवसाय के समय (और इसलिए पैसा) को रिलीज करने में देरी कर रहे थे, या परियोजना प्रबंधन में यह सुनिश्चित करने में देरी हो रही थी कि वे परियोजना के शेड्यूल को ठीक से प्रबंधित कर रहे हैं, या सभी प्रबंधन बना रहे हैं यकीन है कि कोड आदि के लिए पर्याप्त परीक्षक थे ...

तो क्यूए द्वारा मान लेने से आप वास्तव में टेस्ट करते हैं, मूल प्रश्न पर वापस। कोड कंप्लीट इसे सही मिला - एक खराबी की लागत सम्मिलन से सुधार तक का समय है। प्रारंभिक पहचान केवल तभी उपयोगी होती है जब आप इसे जल्दी ठीक कर लेते हैं, लेकिन अधिकांश लोगों की व्याख्या गलत है।

(ध्यान दें: मैं यहां डेविल्स एडवोकेट का किरदार निभा रहा हूं, इसका कोई भी मतलब नहीं है क्योंकि मुझे आपके बारे में कुछ भी पता नहीं है) आपके टेस्ट डिपार्टमेंट द्वारा देरी का कारण एक लागत है, बिल्कुल, हालांकि, मुझे पूछना होगा, यदि आप हैं अपने दोषों को खोजने के लिए उनका इंतजार कर रहे हैं, आप क्या कर रहे हैं - क्या आपको खुद के दोष नहीं खोजने चाहिए? शायद अगर उनके पास कम काम था (आप से कम दोषों के साथ उच्च गुणवत्ता वाले इनपुट के माध्यम से), तो देरी उतनी महत्वपूर्ण और लागत कम नहीं होगी - एक प्रबंधक के रूप में मैं आपसे पूछूंगा कि आप उस कोड में दोषों को कम करने की योजना बनाते हैं जिसे आप वितरित करते हैं। परीक्षण, (आपके तर्क के आधार पर) उन दोषों की लागत अधिक होती है यदि परीक्षण द्वारा पाया जाता है तो स्वयं।

आपके प्रबंधक के रूप में, मैं कह सकता हूं कि टेस्ट में जॉब आपके दोषों का पता लगाने के लिए नहीं है, उनका काम यह है कि कोई दोष नहीं है - यदि आप उनसे दोषों की खोज करने की उम्मीद कर रहे हैं, तो शायद आपने अपना काम अच्छी तरह से नहीं किया है।

सावधान रहें कि आप इसे कैसे अपनाते हैं। यदि आपके पास समस्या का समाधान नहीं है, तो आपके पास दूसरा सबसे अच्छा आने की संभावना है।


'' "परीक्षण विभाग का काम दोषों का पता लगाना नहीं है। उनका काम यह है कि कोई दोष न हो।" '' यह एक अच्छा स्निपेट है। क्या मैं आपको इसके साथ उद्धृत कर सकता हूं?
sleske
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.