क्या इंजीनियर की प्रक्रिया का विश्लेषण करने का कोई सुंदर तरीका है?


12

बहुत सारी भावनाएं मौजूद हैं कि कमिटमेंट मापना अनुचित है।

क्या कोई अध्ययन किया गया है जो कमिट्स की तुलना में अधिक स्रोतों में आकर्षित करने की कोशिश करता है - जैसे:

  • ब्राउज़िंग पैटर्न
  • आईडीई कार्य (पूर्व-कमेटी)
  • खाली समय
  • बहु कार्यण

मैं इन उपायों को करने का एक आसान तरीका नहीं सोच सकता, लेकिन मुझे आश्चर्य है कि अगर कोई अध्ययन किया गया है।


एक व्यक्तिगत टिप्पणी पर, मेरा मानना ​​है कि प्रदर्शन निष्कासन के लिए इनका उपयोग करते हुए (या अनुपस्थिति में) किसी की 'मेट्रिक्स' पर प्रतिबिंब मूल्यवान हो सकता है। IE अपनी आदतों को प्रतिबिंबित करने के लिए एक गैर-पक्षपाती तरीका है। लेकिन यह प्रश्नोत्तर से परे एक चर्चा का विषय है।

जवाबों:


6

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

http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm

यदि आप एक डेवलपर कोड की गुणवत्ता की तरह कुछ देखना चाहते हैं, तो चिदंबर और केमेरर ने ऑब्जेक्ट ओरिएंटेड कोड के लिए कई मेट्रिक्स प्रस्तावित किए।

ऑब्जेक्ट ओरिएंटेड कोड के लिए मेट्रिक्स

  • वंशानुक्रम वृक्ष की गहराई,
  • तरीकों की भारित संख्या,
  • सदस्य कार्यों की संख्या,
  • बच्चों की संख्या, और
  • वस्तुओं के बीच युग्मन।

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

कोड समीक्षा के संदर्भ में उत्पन्न होने वाले मेट्रिक्स

दोषों को कई मानदंडों द्वारा वर्गीकृत किया जा सकता है:

  • गंभीरता: (प्रमुख, मामूली, कॉस्मेटिक, जांच / अज्ञात),
  • प्रकार (तर्क, टाइपो, वर्तनी, मानक उल्लंघन, आदि),
  • उत्पत्ति / चरण नियंत्रण (आवश्यकताएँ, डिज़ाइन, कोड इत्यादि)।

निरीक्षण और निरीक्षक / समीक्षक समय के अनुसार तैयारी और निरीक्षण दरें (समीक्षक प्रति समय, कोड प्रति पंक्ति का समय) और दोष घनत्व (प्रति KLOC (कोड की हजार लाइनें)) हैं।

नियंत्रण चार्ट के खिलाफ इन मूल्यों को प्लॉट करना हमें दिखा सकता है कि क्या हम प्रक्रिया के लिए सीमा के भीतर हैं (उदाहरण के लिए, एक टीम जो कोड की 200 पंक्तियों का निरीक्षण करती है जो एक समूह में कोई दोष नहीं ढूंढती है जो कि KLOC प्रति पच्चीस दोषों का औसत खराबी हो सकती है)।

अन्य मेट्रिक्स

अन्य मेट्रिक्स जो मदद कर सकते हैं उनमें शामिल हैं

  • अनुमान लगाने में मदद करने के लिए अर्जित मूल्य
  • Scrum या Kanban का उपयोग करने वालों के लिए वेग
  • के काम परेटो , Juran , Demming , इशिकावा गुणवत्ता और औद्योगिक इंजीनियरिंग से, और दूसरों को कुछ हद तक कल्पना का एक छोटा सा के साथ सॉफ्टवेयर विकास के लिए पोर्टेबल है।

विश्लेषण की सीमाएँ

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

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

      Sweet is the lore which Nature brings;
      Our meddling intellect
      Mis-shapes the beauteous forms of things:--
      We murder to dissect.

जबकि सॉफ्टवेयर बिल्कुल प्रकृति नहीं है, मुझे कुछ अक्षांश दें क्योंकि मैंने सोचा था कि मुझे हाई स्कूल अंग्रेजी साहित्य वर्ग से कुछ भी उपयोग करने के लिए कभी नहीं मिलेगा।

चंचल को केंद्रीकृत, बड़ी प्रक्रिया की प्रतिक्रिया माना जा सकता है। कभी-कभी उस कार्य मोड में इतने अधिक विश्लेषणात्मक प्रयास की आवश्यकता होती है कि सॉफ्टवेयर बनाते समय प्रवाह तक पहुंचने की क्षमता सभी गायब हो जाती है।


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

मुझे आपकी समझ में नहीं आता कि "डेवलपर्स जो एजाइल के लिए संक्रमण नहीं बना है" के लिए अर्जित मूल्य के बारे में आपकी टिप्पणी। बस "चुस्त में अर्जित मूल्य" और "चुस्त अर्जित मूल्य" बहुत से लोगों को लाने के जो चुस्त वातावरण के लिए पारंपरिक EVM तकनीक आवेदन किया है ... के लिए खोज
थॉमस ओवेन्स

अनुमानित मूल्य अनुमान के संबंध में एक अच्छी अनुकूली तकनीक की तरह लगता है। मुझे लगा कि चंचल आकलन के अपने दृष्टिकोण हैं जो मुख्य रूप से अंकों से संबंधित हैं। मैं देखूंगा कि क्या मैं समावेशी होने के लिए चीजों को पुन: प्रस्तुत कर सकता हूं।
DeveloperDon

चुस्त आकलन पर पूरी किताबें हैं, इसलिए यह बहुत व्यापक है। हालाँकि, मैंने चुस्त वातावरण में काम किया है, जो रिपोर्ट करने की प्रकृति के आधार पर, EVMS को लागू करने की आवश्यकता है।
थॉमस ओवेन्स

2

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

http://en.wikipedia.org/wiki/Seven_Basic_Tools_of_Quality

मुझे कंट्रोल चार्ट पसंद है।

http://en.wikipedia.org/wiki/Control_chart

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

व्यक्तिगत मेट्रिक्स कुछ ऐसा हो सकता है जिसे आप अपने लिए एक प्रश्न के साथ शुरू करने के लिए सहसंबंधित कर सकते हैं, जैसे "मैं सबसे अधिक उत्पादक महसूस करता हूं जब मैं ..."

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

बूढ़े ने देखा कि हम क्या मापते हैं जो हो सकता है कि आपको उस समस्या पर हमला करने के लिए प्रेरित करे जो आप सीमित कारक हो

या Pareto आरेख के आधार पर प्राथमिकता के क्रम में कई कारक।

http://en.wikipedia.org/wiki/Pareto_chart

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