रखरखाव पर खर्च किए गए समय के लिए उद्योग का औसत


17

एक प्रबंधक ने हाल ही में घोषणा की कि कीड़े को ठीक करने में बहुत अधिक समय खर्च कर रहे थे। मुझे लगता है कि उन्हें लगता है कि हमें हर समय सही कोड लिखना चाहिए (जबकि अभी भी उन असंभव समय सीमा को पूरा करना है!) और इससे मुझे आश्चर्य होता है कि समय का उद्योग औसत बग फिक्सिंग v नया कोड लिखने में क्या खर्च करता है।

तो क्या किसी के पास नए कोड विकास के खिलाफ बग फिक्सिंग पर समय पर कोई मैट्रिक्स है? या क्या एक पूरे के रूप में उद्योग के लिए बग फिक्सिंग समय का कोई अनुभवजन्य विश्लेषण है? क्या 50% बग फिक्सिंग के लिए बहुत अधिक है, या सही के बारे में है? लगभग 20% या 33% कैसे?

मुझे व्यक्तिगत अनुभव से महत्वपूर्ण प्रमाण स्वीकार करने में खुशी हो रही है, क्योंकि यहां कुछ आंकड़ों का हिस्सा होगा जिससे मैं अपने प्रदर्शन की तुलना कर सकता हूं।


9
आपका प्रबंधक बहुत अज्ञानी लगता है । इस तरह के मामलों के लिए सुझाव पढ़ना: रॉबर्ट एल ग्लास द्वारा सॉफ्टवेयर इंजीनियरिंग के तथ्य और पतन , विशेष रूप से "तथ्य 43। रखरखाव एक समाधान है, समस्या नहीं है।" विकिपीडिया लेख 80% प्रयासों सॉफ्टवेयर रखरखाव पर खर्च का उल्लेख है
कुटकी

3
असली समस्या क्या है ? क्या आपको गुणवत्ता की समस्या है? क्या आपकी प्रक्रिया वास्तव में अक्षम है? या क्या आपका प्रबंधक सिर्फ यह चाह रहा है कि सॉफ्टवेयर में इतनी लागत न आए?
केविन क्लाइन

@gnat: आपकी टिप्पणी का सबसे अच्छा जवाब है
केविनलाइन


रखरखाव केवल बग (दोष) को ठीक करने के बारे में नहीं है और इसकी राशि व्यक्तिगत परियोजनाओं (= कोई निश्चित उत्तर) के लिए बहुत भिन्न होती है। मेरे लिए ऐसा लगता है कि आपके पास गुणवत्ता के मुद्दे हैं।
17:

जवाबों:


13

एक प्रबंधक ने हाल ही में घोषणा की कि कीड़े को ठीक करने में बहुत अधिक समय खर्च कर रहे थे।

ऊपर से बहुत अनभिज्ञ लगता है । इस तरह के मामलों के लिए सुझाव पढ़ना: विशेष रूप से रॉबर्ट एल ग्लास द्वारा सॉफ्टवेयर इंजीनियरिंग के तथ्य और पतन "तथ्य 43। रखरखाव एक समाधान है, समस्या नहीं है।"

विकिपीडिया लेख में सॉफ्टवेयर रखरखाव पर खर्च किए गए 80% प्रयासों का उल्लेख है।

मेरा मैनेजर दिल्बर के PHB को एक जीनियस की तरह बनाता है :)

ऊपर दिया गया Hm मैं यह भी विश्लेषण करने में कुछ प्रयास करूँगा कि क्या आपके द्वारा किए गए सभी अनुरोध बग हैं वास्तव ।

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


2
बग फिक्सिंग! = रखरखाव बग फिक्सिंग का मतलब है कि आपने सिस्टम में दोषों को कोड किया है और सही कार्यक्षमता को बहाल करने के लिए उन्हें ठीक करने की आवश्यकता है । रखरखाव से मेरा मतलब होगा कि सभी कार्य जैसे बग फिक्स, स्केलेबिलिटी में सुधार, हार्डवेयर माइग्रेशन, और प्रदर्शन में सुधार आदि। मैं कहूंगा कि 25-30% से अधिक समय बस बग फिक्स पर खर्च होने के तुरंत बाद एक शासन कॉल की आवश्यकता है। कुल मिलाकर 40-50% तक रखरखाव पर खर्च किए गए प्रयास मध्यम आकार के उद्यम प्रणाली के लिए उचित लगते हैं।
अपूर्व खुरसिया

क्या आपके पास बग के विभिन्न वर्गों के लिए कोई आंकड़ा है? जाहिर है अगर आपको बड़ी संख्या में उच्च प्राथमिकता मिल रही है, तो "शो स्टॉपर" बग्स एक ऐसा मामला हो सकता है कि स्रोत को निर्धारित करने के लिए विकास प्रक्रिया को कुछ काम करने की आवश्यकता है, लेकिन अगर इसकी सभी छोटी चीजें इसकी इतनी बड़ी बात नहीं हैं। जैसा कि ज्ञानी कहते हैं, उनमें से कई वृद्धि अनुरोध हो सकते हैं।
स्टीवटेक

विकिपीडिया लेख का आपका उद्धरण गलत है! यह कहता है कि "रखरखाव के प्रयास का 80% गैर-सुधारात्मक कार्यों के लिए उपयोग किया जाता है" , लेकिन यह डिज़ाइन या कोडिंग या अन्य काम की तुलना में रखरखाव समय के बारे में कुछ नहीं कहता है।
टोबियास नक्षत्र

9

पूछने के लिए पहला सवाल यह है कि क्या आपका "बग फिक्सिंग" वास्तव में कोडिंग बग या कुछ और तय कर रहा है। वास्तविक कोड बग्स को ठीक करना ज्यादातर मामलों में अपेक्षाकृत छोटा होना चाहिए जब तक कि आपके पास एक अच्छा कोड आधार हो। यदि आप एक खराब कोड बेस के साथ काम कर रहे हैं, तो व्यापक बग फिक्सिंग अपरिहार्य है।

हालांकि, एक कार्यक्रम को उत्पादन में लगाने के दौरान, आपको ऐसी आवश्यकताएं मिलेंगी जो प्रलेखित नहीं थीं, अप्रत्याशित उपयोगकर्ता गतिविधि, डेटा विसंगतियां, हार्डवेयर असंगतताएं, स्थापना समस्याएं और अन्य समस्याएं जो कड़ाई से कोड बग नहीं हैं। अक्सर प्रबंधक और उपयोगकर्ता इन उत्पादन समर्थन / रखरखाव की समस्याओं के बारे में सोचते हैं क्योंकि उन्हें आमतौर पर कोड परिवर्तन की आवश्यकता होती है।

मैंने ऐसे प्रबंधकों का भी सामना किया है जो समूह को मामूली वृद्धि के अनुरोध के रूप में कीड़े के रूप में जाना चाहिए था। अक्सर ये एक बग ट्रैकिंग या समस्या रिपोर्टिंग प्रणाली में प्रवेश कर जाते हैं और यह आपके "बग" आँकड़े वास्तव में होने की तुलना में अधिक हो सकते हैं।


आप जो वर्णन करते हैं, वह हमारे पास है, लेकिन वह कुछ भी नहीं बदलता है :(
gbjbaanb

8

यह इस बात पर निर्भर करता है कि आपके पास कितना कोड है, कितने समय के लिए बाहर है, आदि।

सॉफ़्टवेयर में फ़िक्सिंग बग को बिताए गए समय को रिलीज़ के पहले 6-12 महीनों के लिए सामने-लोड किया जाना चाहिए, हालांकि जैसे-जैसे समय अनंत तक पहुंचता है, रखरखाव पर खर्च होने वाला समय बनाम प्रारंभिक विकास पर खर्च होने वाला समय 100% से अधिक हो जाएगा - बस यही तरीका है काम।

हालांकि मेरे पास कोई कठिन आँकड़े नहीं हैं (कोड पूरा करता है, लेकिन मैं आपको बिल्कुल नहीं बता सकता कि कौन सा पृष्ठ / अनुभाग), मेरे अनुभव में लगभग 40% विकास (कभी-कभी 60% तक उच्च) रखरखाव पर खर्च होता है। यह स्पष्ट है कि आप जितना अधिक कोड जारी करेंगे, उतना अधिक रखरखाव समय आपके पास होगा। कीड़े हमेशा कार्यात्मक नहीं होते हैं, और अनिश्चितता का एक परिणाम के रूप में वे प्रोग्राम दोष हैं।


0

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

पिछले प्रोजेक्ट पर, हमने अपनी बग / टास्क / टूडू सूचियों को प्रबंधित करने के लिए जीरा का उपयोग किया, और अंत में यह वास्तव में हमें दिखा कि देरी और समस्याओं का सबसे बड़ा कारण अक्षम प्रबंधन प्रथाओं से निकला।

अजीब तरह से, जब वह जानकारी सामने आई, तो हमने अचानक बताया कि हम अब जीरा का उपयोग नहीं करेंगे, और इसे बदलने के लिए एक नया उत्पाद लाया जाएगा।

इस बीच, जीरा के माध्यम से पारित किए जाने वाले डेटा के सभी अनुरोधों को प्रबंधन टीम को भेजा जाना था, और हमारी प्रत्यक्ष पहुंच हटा दी गई थी।

इस बात पर ध्यान नहीं दिया गया था कि आँकड़ों की गणना के हिस्से के रूप में, देव टीम के पास एक वेब हुक के लिए जिरा पोकिंग डेटा था, और इस वेब हुक का उपयोग कुछ आंतरिक सर्वरों पर डेटा को समाप्त करने के लिए किया जाता था, जहाँ हमने कोड बनाया था। ये रिपोर्ट स्वचालित रूप से

हमने वेब हुक की निगरानी शुरू कर दी, और पाया कि जहां हमने बताया कि जीरा का अब उपयोग नहीं किया जाता था, यह काफी समय तक जीवित रहा (6+ महीने सटीक रहने के लिए) और ऊपरी प्रबंधन द्वारा थोक दुरुपयोग था गलत उपयोग के साथ सीधे सादे।

बेशक, यह जीरा के रूप में जटिल के रूप में कुछ होना जरूरी नहीं है।

यदि आप कम उपज समाधान चाहते हैं, तो आप कार्यों / टिकटों / बग्स / सुविधा अनुरोधों आदि को ट्रैक करने के लिए एक Google-डॉक्स स्प्रेड शीट और GDocs अधिसूचना API का उपयोग कर सकते हैं।

GDocs अब वेब-हुक और सभी प्रकार की चीजें जारी कर सकती है।

युगल जो कि Git और / या Github के साथ है और कुछ हुक जो ट्रिगर करते हैं जब कोड आपके रिपॉजिटरी के लिए प्रतिबद्ध होता है, और आपको एक उचित रूप से कुशल होम ब्रू सिस्टम मिला है, जो डेटा की एक आश्चर्यजनक मात्रा रिकॉर्ड कर सकता है।

हालांकि, आमतौर पर प्राकृतिक जीवनकाल के 100% उत्पादों में से, ग्रीनफील्ड देव और रखरखाव के बीच का विभाजन आम तौर पर 20/80 होता है, ALM (एप्लिकेशन लाइफटाइम मैनेजमेंट) चक्र में अधिकांश लागत रखरखाव और समर्थन लागत पर ली जाती है।

कीड़े को ठीक करने में बहुत अधिक समय बिताने जैसी कोई बात नहीं है, क्योंकि यह बग-मुक्त कोड लिखना संभव नहीं है।

अच्छा परीक्षण और निरंतर एकीकरण नीतियां कमी को कम कर देंगी, लेकिन आप इसे पूरी तरह से कभी नहीं मिटा पाएंगे।

जो कोई भी अन्यथा विश्वास करता है (आईएमएचओ) के पास एक न्यायपूर्ण निर्णय लेने के लिए पर्याप्त ज्ञान नहीं है, या केवल सॉफ्टवेयर लिखने के लिए वास्तव में कितना कठिन है (अधिक सामान्य मामला) अंधा है।

यदि आपका प्रबंधक इसके लिए तैयार है, और उनमें से कुछ हैं, तो आप यह सुझाव देना चाह सकते हैं कि वह आपको एक दिन के लिए छाया देता है, इसलिए वह ठीक से देख सकता है कि आप क्या करते हैं और कैसे करते हैं।

Iv'e ने कुछ कंपनियों में काम किया जहां इस तरह के काम को सक्रिय रूप से प्रोत्साहित किया गया, ऊपरी स्तर के कर्मचारियों को निचले स्तर के कर्मचारियों को छाया देने के साथ, और इसके विपरीत, यह दोनों शामिल पक्षों के लिए वास्तव में अच्छा सीखने का अनुभव हो सकता है।


2
"कीड़े को ठीक करने में बहुत समय बिताने जैसी कोई चीज नहीं है" - बकवास का भार क्या है। यदि आप बग को ठीक करने के लिए पर्याप्त समय बिताते हैं, जो आपकी कंपनी के अंतर्गत आता है, क्योंकि यह बाज़ार में प्रतिस्पर्धात्मक नहीं रह सकता है (क्योंकि आप सामान करने के बजाय कीड़े को ठीक कर रहे थे ), तो आपने कीड़े को ठीक करने में बहुत अधिक समय बिताया ...
Telastyn

और विकल्प? - आप बग फिक्सिंग के लिए पर्याप्त समय नहीं बिताते हैं, और आपका ऐप क्रैश हो जाता है, जलता है और आपका प्रतियोगी आपके सभी कस्टम लेता है, प्रभावी रूप से आपको बाजार की जगह से बाहर धकेल देता है। चाल (और इस सब का सबसे कठिन हिस्सा) वास्तव में एक स्वीकार्य संतुलन ढूंढना है।
शाट्टी

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

2
यूनिट परीक्षण और डिबगिंग अलग-अलग कला हैं जिनका उपयोग विभिन्न समस्याओं के लिए किया जाता है। हालांकि "हमारा कोड सही है" समस्या को हल करना बेहतर है "मेरे कोड को क्यों तोड़ा गया" समस्या को रोकता है। सभी चीजें समान हैं, मुझे लगता है कि लोग मूल कारणों की पहचान करने की तुलना में सही कोड बनाने में अच्छे होंगे।
तेलस्टीन

1
अब उस बिंदु पर आपने मेरा पूरा समझौता कर लिया है। यह एक दुख की बात है कि आज के उद्योग में कई प्रोग्रामर इसे केवल 9 के रूप में 5 नौकरी तक मानते हैं, जहां वे घड़ी में, घर के समय तक कोड बाहर धमाका करते हैं। दिन में, देवों ने अच्छा, ठोस, अच्छी तरह से परीक्षण किए गए कोड लिखने में बहुत गर्व किया और एक कीबोर्ड के पास कहीं भी जाने से पहले इसके बारे में सोचने में समय बिताया, आप इस दिन और उम्र में बहुत कम देखते हैं।
शॉल्टी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.