खराब कोड की लागत की गणना करें


13

मैं प्रबंधन को प्रयास करने के लिए तर्क देने की कोशिश कर रहा हूं ताकि रिफक्टिंग में निवेश किया जा सके।

हम जीरा का उपयोग करते हुए काम करते हैं और हर svn-प्रतिबद्ध को जीरा कॉल से संबंधित करते हैं।

मेरा विचार निम्न कार्य करना है:

  • मैन्युअल रूप से कोड का एक क्षेत्र है, जो बेहद खराब है, लेकिन अक्सर उपयोग किया जाता है: उपयोगकर्ता-पीओवी और डेवलपर-पीओवी (बगफिक्स) दोनों से
  • उन svn-commits को प्राप्त करें जिनमें JIRA- मुद्दे हैं
  • कुछ मानदंडों के अनुसार मुद्दों को फ़िल्टर करें (समस्या का प्रकार, संस्करण, बेशकीमती। आदि ...)
  • इन कीड़ों पर खर्च किए गए समय / प्रयास की गणना करें
  • रिफैक्टरिंग के प्रयासों और जोखिमों का अनुमान लगाएं
  • संख्याओं को प्रस्तुत करें और इसे ठीक करने के प्रयास के लिए कहें।

आप इस बारे में क्या सोचते है? क्या ऐसा माप उपयोगी और / या ठोस होगा? पक्ष और विपक्ष क्या होते हैं?

जवाबों:


5

मैंने पाया है कि यदि आप वैध संख्या प्रदान कर सकते हैं, तो प्रबंधकों को कार्य करने की अधिक संभावना है। (यदि वे तर्क और लागत / लाभ को समझ सकते हैं।)

IMHO, एक ठोस मामला बनाने के लिए, आपको यह दिखाने के लिए निम्न की आवश्यकता होगी कि यह कितना बुरा है:

  • मुद्दों के लिए लॉग इन समर्थन घटनाओं की संख्या
  • खराब कोड / सपोर्ट फिक्स करने / बनाए रखने में घंटों का समय
  • रखरखाव / बैंड एड्स / सहायता करने वाले लोगों की प्रति घंटा की दर के आधार पर समय की लागत
  • यह प्रदर्शित करने का कोई तरीका है कि ये आइटम व्यवसाय के लिए कितने महत्वपूर्ण हैं

और मामले को फिर से तैयार करने के लिए, आपको आवश्यकता होगी:

  • रिफ्लेक्टर और इन बुरी चीजों में से प्रत्येक शीर्ष 3 को लागू करने के लिए समय का अनुमान
  • कार्यान्वयन के लिए लागत अनुमान (ऊपर उपयोग की गई समान प्रति घंटा दरें)

इनके साथ, आप समय की बचत के लिए मामला बना सकते हैं यदि रिफैक्टिंग उन शीर्ष 3 वस्तुओं में से प्रत्येक के लिए 3 घटनाओं के लिए समर्थन समय से बहुत कम लेता है। आप तर्क दे सकते हैं कि इस समय की छोटी राशि खर्च होगी

  • n अधिक समर्थन घटनाओं से कम होना
  • इन चीजों के लिए इनमें से कोई भी घटना नहीं होगी (EVEN BETTER!)

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

जब आप एक्स के साथ इन मुद्दों पर काम करने में समय बिता रहे हैं, तो मुझे वर्तमान परियोजना वाई के लिए इंतजार करने में कितना समय लगेगा? ????? (वर्तमान समर्थन टाइमिंक्स के बावजूद, जिसका अनुमान नहीं लगाया जा सकता है और गैंट चार्ट में निर्धारित किया गया है)

यह बहुत कुछ इस बात पर निर्भर करता है कि आप निर्णय निर्माताओं के साथ कितनी अच्छी तरह से संवाद करते हैं, और वे स्थिति को कैसे समझते हैं।

मुझे लगता है कि यह ऐसा करने के लायक है, इसलिए आप मेट्रिक्स के साथ मामला बनाने का अभ्यास करें, और अपने समय को बचाने के लिए, भले ही वे इसके लिए न जाएं। दुर्भाग्य से, डेटा के बावजूद हर किसी को समझाना आसान नहीं है। सौभाग्य!


2

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

क्या मैं सार्वजनिक इंटरफ़ेस बदल रहा हूँ?

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

यह एक मुश्किल मामला है, क्योंकि कोई भी कभी नहीं जानता है कि एक साल पहले किए गए रिफ्लेक्टर के साथ या उसके बिना एक्स कितना खर्च होगा। मेरे अनुभव में व्यावहारिक प्रबंधकों ने हमेशा इस तरह की बात को नीचे रखा है क्योंकि:

  1. कोई प्रत्यक्ष राजस्व धारा प्रयास से नहीं आती है (वित्तीय लागत, बिल योग्य नहीं)
  2. बदसूरत काम कोड अभी भी काम कर रहा है कोड, आप उन्हें (संभावित गुणवत्ता लागत) को ठीक करने के बजाय समस्याएं पैदा करने का जोखिम उठाते हैं
  3. आपके रिफ्लेक्टर (समय लागत) के दौरान अन्य परियोजनाओं में देरी होगी

सामान्य विकास के दौरान रीफैक्टरिंग करने के सुझाव के लिए +1।
Kwebble

0

इस तरह के सभी नंबरों को अंततः राशि आप अनुमान लगा यह लागत आएगी की तुलना अनुमान पर आधारित हैं, आपके मामले में नहीं बनाम तुम क्या लगता है कि यह खर्च आएगा refactor करने के लिए करने के लिए refactor। सबसे अच्छा आप कर सकते हैं दिखाने के लिए आप अनुमानों के लिए कुछ प्रकार के संख्यात्मक, तथ्यात्मक आधार है, और आप एक बहुत अच्छा है।

अभिप्राय यह है कि यह संभवतः आपको प्रतिफलित करने के लिए उन्हें समझाने में प्रभावी होगा, और यह अच्छी तरह से हो सकता है और बग की संख्या को कम कर सकता है।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.