मैं औसत से 4-5x अधिक कहानी बिंदु बना रहा हूं, लेकिन आधे दर पर कीड़े पैदा कर रहा हूं। ग्राफ़ कहते हैं कि यह 2x अधिक बग है, इससे कैसे निपटें?


43

इसलिए यह आम तौर पर स्वीकार किया जाता है कि शीर्ष स्तरीय प्रोग्रामर अपने अधिक औसत साथियों की तुलना में अधिक / बेहतर कोड के परिमाण का उत्पादन कर सकते हैं

यह भी आमतौर पर स्वीकार किया जाता है कि कोड में की गई त्रुटियों की दर प्रोग्रामर के लिए अपेक्षाकृत स्थिर है।

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

  • ध्यान दें कि उपरोक्त दोनों दावे स्टीव मैककोनेल द्वारा कोड कम्प्लीट से आते हैं - इसलिए यह अलग-अलग दृष्टिकोणों का मामला नहीं है।

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

लेकिन मैं अभी भी क्यूए द्वारा अपनी टीम के अन्य डेवलपर्स के रूप में पाए जाने वाले कीड़े के बारे में दो बार उत्पादन कर रहा हूं । जैसा कि आप कल्पना कर सकते हैं, इससे गैर-तकनीकी लोगों को मीट्रिक माप करने में कुछ समस्याएं होती हैं (पढ़ें: मेरा बॉस)।

मैंने यह इंगित करने की कोशिश की है कि मैं अपने साथियों के आधे की दर पर कीड़े पैदा कर रहा हूं (और दो बार के रूप में कई बार ठीक करता हूं), लेकिन यह एक कठिन बिक्री है जब ग्राफ़ कहते हैं कि मैं दो बार कई कीड़े पैदा करता हूं।

तो, इस तथ्य से कैसे निपटें कि बढ़ी हुई उत्पादकता बग की बढ़ती संख्या को जन्म देगी?


27
या बस धीमा करें ताकि आप इसे सही कर सकें।
ब्रैंडन

29
व्यावहारिक दृष्टिकोण से, ऐसा लगता है कि आपको कोड पीढ़ी की तुलना में बग से बचने के लिए अधिक भुगतान किया जा रहा है। तो अपने कंपनी के लिए अपने दिन के लेखन कोड का 1/4 हिस्सा खर्च करें, और शेष दिन का कोड अपने स्वयं के साइड प्रोजेक्ट्स के लिए खर्च करें। वह जिस कसौटी पर खरा उतरता है, उसके अनुसार आपके बॉस को आपसे प्यार करना चाहिए।
रोब

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

9
जिस तरह से आप इसे ठीक करते हैं वह मेट्रिक्स को ठीक करके है।
रॉबर्ट हार्वे

24
@ मिचेल हेनरिक: यदि वह अपने साथियों के आधे दर पर कीड़े पैदा कर रहा है, तो गति समस्या नहीं है; प्रबंधन समस्या है। आप इन नासमझ मैट्रिक्स को उसी तरह पढ़ रहे हैं जैसे उसके मालिक हैं।
रॉबर्ट हार्वे

जवाबों:


41

मुझे लगता है कि आप अपनी चिंताओं को मिला रहे हैं। और आपकी ओर से ऐसा कुछ भी नहीं है जिसे आपको बदलने की आवश्यकता है।

उत्पादकता एक संकेत है कि कितनी जल्दी एक परियोजना पूरी हो जाएगी। प्रोजेक्ट मैनेजर और बाकी सभी लोग जानना चाहेंगे कि प्रोजेक्ट कब डिलीवर होगा। उच्च या तेज उत्पादकता का मतलब है कि हम जल्द ही परियोजना को वितरित करेंगे।

बग्स की दर उत्पादकता से जुड़ी नहीं है, बल्कि परियोजना के आकार की है। उदाहरण के लिए, आपके पास कोड की Nप्रति Yलाइनें बग हो सकती हैं । उस मीट्रिक के भीतर कुछ भी नहीं है जो कहता है (या परवाह करता है!) कितनी जल्दी कोड की उन पंक्तियों को लिखा जाता है।

इसे एक साथ बाँधने के लिए, यदि आपके पास उच्च उत्पादकता है, तो हाँ, आप बग को और तेज़ी से लिखेंगे। लेकिन आप वैसे भी बग की संख्या के लिए जा रहे थे क्योंकि यह परियोजना के आकार से बंधा है।

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


अपने प्रश्न के अधिक व्यक्तिगत पहलुओं को संबोधित करने के लिए।

यदि आपका बॉस आपके द्वारा बनाए जाने वाले कीड़े की दर के विपरीत आपके द्वारा बनाए जाने वाले कीड़े की संख्या पर सख्ती से देख रहा है, तो एक शैक्षिक सत्र क्रम में है। बनाई गई बग की संख्या एक समर्थन दर के बिना अर्थहीन है।

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

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


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

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

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

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

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


43
"कोड की लाइनों द्वारा प्रोग्रामिंग प्रगति को मापना वजन द्वारा विमान निर्माण प्रगति को मापने के समान है।" -बिल गेट्स
नील

40
महान कार्यक्रम वास्तव में औसत प्रोग्रामर की तुलना में अधिक त्रुटियां पैदा कर सकते हैं - क्योंकि महान कार्यक्रम कठिन समस्याओं पर काम करते हैं।
hlovdal

4
कीड़े / के लाइनों या कीड़े / कहानी एक उचित दर होगी। मैं उतनी ही तेजी से दौड़ता जितना मैं कर सकता / सकती हूँ अगर बॉस दर के रूप में बग / घंटा का उपयोग करना चाहता है।
बार्ट वैन इनगेन शेनौ

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

4
"यदि कुछ भी हो, तो उच्च उत्पादकता का मतलब है कि आपके पास उन बगों का शिकार करने के लिए परियोजना के अंत में अधिक समय होगा या डेवलपर उन बगों को खोजने में तेज होगा।" - मुझे लगता है कि यह स्पुरियस है और इसे अधिक सावधानीपूर्वक एनायल्सिस की जरूरत है। इसे इस तरह से रखें: यदि वह प्रत्येक सुविधा पर अधिक समय बिताता है, तो हाँ, उसके पास बग को कम करने के लिए बहुत कम समय होगा। लेकिन स्क्वैश में कीड़े भी कम होंगे।
'23:06

21

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

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

लेकिन मैं वास्तव में आपके सवाल में अग्रणी आपके दावे को नहीं खोद रहा हूं। और शायद आपका बॉस भी नहीं है।

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

हालांकि अंत में, यदि बॉस को क्लीनर कोड चाहिए, तो उसे क्लीनर कोड दें।


4
+1। मुझे नहीं पता कि दूसरे उत्तर में इतने सारे बदलाव क्यों हैं। ऐसा लगता है कि आपने पहले ही अपने बॉस को अच्छे तर्क दिए हैं और वह नहीं सुन रहा है। इसलिए अधिक समय परीक्षण और कम समय "कोड जारी करना" पर खर्च करें। यदि यह ठीक नहीं है, तो नौकरी बदलें।
डुर्रोन 597

21

मैं एक अंग पर निकलूंगा और शैतान का वकील बनूंगा। यह कहना नहीं है कि मुझे आपकी दुर्दशा से सहानुभूति नहीं है लेकिन, मेरी सहानुभूति आपकी मदद नहीं करेगी। तो मुझे फिलिप के परिप्रेक्ष्य में जोड़ने की अनुमति दें :

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

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

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

वह परिप्रेक्ष्य के लिए है। अब, आप इस निराशाजनक स्थिति के बारे में कैसे तय करते हैं?

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

(*) एक अंतर है, एक तरफ, यह स्वीकार करते हुए कि आपके नाम में कीड़े हैं और आप उस राशि को कम करने की कोशिश करेंगे और दूसरी ओर, यह स्वीकार करते हुए कि आपके नाम में बहुत सारे कीड़े हैं और चाहिए कार्रवाई करें।

अपने बॉस को समझाने की कोशिश मत करो, क्योंकि यह काम नहीं करेगा। फिर, इसका मतलब यह नहीं है कि आपको अपनी बात मनानी होगी ; आप उसकी चिंताओं को खारिज किए बिना एक प्रतिवाद प्रस्तुत कर सकते हैं और अपनी राय रख सकते हैं। क्योंकि अगर आप इस बिंदु पर बहस करते हैं और संतोषजनक ढंग से अपनी श्रेष्ठ उत्पादकता साबित नहीं कर सकते (और भले ही आप कर सकते हैं), तो आप अपने सहयोगियों का अपमान करने, या उन्हें खारिज करने का जोखिम उठाने जा रहे हैं। आप उस आदमी नहीं बनना चाहते हैं ।


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

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

1
@ नोमान ओह, लेकिन मैं सहमत हूं: लोगों को बिल्कुल इसे ध्यान में रखना चाहिए। लेकिन वे करते हैं?
JvR

20

यह मानते हुए कि आप अपने सहयोगियों की तरह कोड की समान "राशि" का उत्पादन उनके समय के 20% में करेंगे, आप 4 बार खर्च कर सकते हैं क्योंकि यह वास्तव में कोड को डिबग करने और इसे सही बनाने में है, जो आपके बग दर को और भी कम कर देगा। तब आप खुद को एक अच्छा प्रोग्रामर कह सकते हैं।

सबसे बड़ा सवाल यह है कि आप गुणवत्ता के लक्ष्य के बजाय दूसरों की तुलना में 5 गुना अधिक कोडिंग क्यों कर रहे हैं। क्या यह कुछ है जो आपका अहंकार आपको निर्देशित करता है या आपका बॉस आपको मजबूर करता है?

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

आपको लगता है कि कोड तैयार करने का कौशल है, और अगर आप अपना ध्यान स्पीड के बजाय गुणवत्ता पर लगाते हैं तो आप इसे कमाल कर सकते हैं। यह थोड़ी देर की कोशिश करो, मेरा अनुमान है कि आप इसे पसंद करेंगे।

फिर अगली समस्या आपके बेहतर प्रदर्शन के लिए पावती (पैसा बोलना) प्राप्त करना है। अपने बॉस से बात करें और उससे पूछें कि कैसे आगे बढ़ना है, यह उसकी कंपनी और पैसा है, और अगर वह चाहता है कि आप कम बग पैदा करें, तो उसे यह भी तय करना चाहिए कि यह किस तरीके से होता है।


11
ओपी प्रति टीम बिंदु के 60% कम दोषों के साथ अन्य टीम के सदस्यों के कहानी बिंदुओं का 500% वितरित कर रहा है, और आप अपने काम करने के तरीके को बदलना चाहते हैं?
जस्टिन

6
" सबसे बड़ा सवाल यह है कि आप गुणवत्ता के लिए लक्ष्य के बजाय 5 गुना अधिक क्यों कोडिंग कर रहे हैं [...] ने अपना ध्यान गति के बजाय गुणवत्ता पर केंद्रित किया " - आपने मेरा दिन बनाया, यार। जो किसी ने इसे उकेरा है: कृपया अपने मूल गणित के होमवर्क करें। इसे स्पष्ट रूप से बताने के लिए: मैं तुरंत ओपी को काम पर रखूंगा और आपको नौकरी देने से मना करूंगा।
जेन्सजी

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

1
मैं किसी ऐसे व्यक्ति को किराए पर लेना चाहता हूं जो इंटरनेट पर इसके बारे में शिकायत करने के बजाय, उसके बॉस उसे क्या करने के लिए कहता है। कभी-कभी, बॉस सबसे अच्छा जानता है।
दाऊद का कहना है कि मोनिका

8

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

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

जो चीज मैं उससे चाहता था, वह धीमी हो गई थी, और अधिक समय बिताना था: 1) कोडबेस की गुणवत्ता में सुधार करना 2) टीम के साथ संवाद करना 3) उन चीजों पर काम करना जो दूसरों की मदद करने के साथ-साथ उन्हें सुविधाओं / कहानियों को खत्म करने में मदद करती हैं 4) फिक्सिंग कीड़े

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


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

1
मेरा मतलब फुल / बॉयलरप्लेट टिप्पणी जोड़ना नहीं है। मैंने सिर्फ एक धारणा बनाई कि आप हम में से अधिकांश की तरह हैं, और पर्याप्त टिप्पणी नहीं करते हैं। हां, बेकार टिप्पणियों से दूर रहें, विशेष रूप से फैंसी
असिसी

4
मेरे अनुभव में, टिप्पणियों में अक्सर बग होते हैं।
दाऊद का कहना है कि मोनिका

कार्यात्मक नहीं, औसत दर्जे का ...
कोडेनहेम

6
@DavidWallace, मेरे अनुभव कोड में अक्सर बग होते हैं। इसका मतलब यह नहीं है कि आप इसे लिखना बंद कर दें।
चार्ल्स ई। ग्रांट

4

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

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

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

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

इसमें दोष-दर को कम करने के लिए बड़े पैमाने पर उत्पादन में उपयोग की जाने वाली समान तकनीकें शामिल हैं: बग्स क्यों बनाए गए हैं, यह निर्धारित करने के लिए मूल कारण विश्लेषण, और प्रक्रिया को बदल दें ताकि वे न हों। या कम से कम आप क्यूए करने से पहले पकड़ लेते हैं।

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

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

  3. यह जानते हुए कि उन बग्स को कोड में कहां प्रस्तुत किया गया है, उस चरण (और पहले) में परिवर्तन करने पर गौर करें जो उन बगों को होने से रोकता है, और उस चरण में उन्हें आसान बनाने के तरीके।

  4. गैर-प्रोग्रामिंग से संबंधित घटनाओं को देखना सुनिश्चित करें और साथ ही वे आपके काम की गुणवत्ता में अंतर कर सकते हैं। पृष्ठभूमि संगीत, रुकावटें, भोजन, बिना ब्रेक, भूख आदि के बहुत लंबे समय तक काम करना।

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


3

कंपनी को सबसे आगे ले जाने में मदद करने के लिए सबसे अधिक कोड बनाने से अपने उद्देश्य को बदलें।

चूंकि ऐसा लगता है कि आपके पास कई सहकर्मी हैं और अतिरिक्त समय उपलब्ध है, इसलिए आपके द्वारा सुविधाओं और बग फिक्स के त्वरित वितरण पर सबसे अधिक प्रभाव आपके सहयोगियों की मदद करना है।

अपने सहयोगियों की मदद करें

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

1

तो, इस तथ्य से कैसे निपटें कि बढ़ी हुई उत्पादकता बग की बढ़ती संख्या को जन्म देगी?

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

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

आपको इन बिंदुओं पर भी विचार करने की आवश्यकता है:

  • कहानियों की जटिलता, उदाहरण के लिए साधारण गेट्टर / सेटर रैपर बनाम सांख्यिकीय गणना या वास्तविक समय प्रोग्रामिंग या यहां तक ​​कि वास्तविक समय सांख्यिकीय ...
  • बग की गंभीरता, क्या यह पाठ क्षेत्र या गलत गणना परिणाम, प्रोग्राम क्रैश पर छोटे टाइपोस है
  • बग को ठीक करने की लागत, यदि आप इसे अभी करते हैं, तो बाद में या किसी और को आपके कोड को समझना होगा क्योंकि आपने छोड़ दिया है

0

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

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

कुछ बॉस ऐसे होते हैं जो समय के साथ गलतियों की "भत्ता" मानसिकता के साथ काम नहीं करते हैं। फिर आप अपनी कार्य गति को धीमा कर सकते हैं, TWICE को दिए गए समय के भीतर औसत रूप से अधिक काम कर सकते हैं, और वही (या कम) गलतियाँ कर सकते हैं क्योंकि आपके पास अपने काम की जांच करने के लिए अधिक समय है।


0

यदि आपका बॉस चाहता है कि आप अपने काम की गुणवत्ता में सुधार करें, तो अपने काम की गुणवत्ता में सुधार करें।

आपको शून्य बग का लक्ष्य होना चाहिए, न कि अगले सर्वश्रेष्ठ प्रोग्रामर के रूप में केवल दो बार उत्पादन करने का लक्ष्य।


6
शून्य बग एक अप्राप्य लक्ष्य है जो अक्सर प्रभावी नहीं होता है।
तेलस्तीन

7
यह आपकी त्रुटि दर को कम नहीं करने का बहाना नहीं है। यदि आपका बॉस चाहता है कि आप बेहतर कोड का उत्पादन करें, तो यह बेहतर कोड तैयार करने का समय है, न कि इसके बारे में बहाने बनाने का।
दाऊद का कहना है कि मोनिका

4
मैंने केवल यह कहा था कि आपको शून्य बग का लक्ष्य बनाना चाहिए , न कि यह कि आपको इसे हासिल करना चाहिए। तीरंदाजी के बारे में सोचो। मैं तीरंदाजी में अच्छा नहीं हूं - मैंने लक्ष्य के केंद्र में "10" को कभी नहीं मारा। क्या मुझे "7" रिंग में निशाना लगाना चाहिए, क्योंकि "10" बहुत मुश्किल होगा?
दाऊद का कहना है कि मोनिका

6
हां, लेकिन आपका बॉस कह रहा है कि आपका काम "बहुत अच्छा" नहीं है। दूसरे शब्दों में, आपको बेहतर करना चाहिए। आपने एक अच्छा कारण नहीं दिया है कि आप बेहतर क्यों नहीं कर सकते हैं। यह पूरी चर्चा मुझे ऐसी लगती है जैसे कोई बग-कोड कोड के उत्पादन का बहाना बनाने की कोशिश कर रहा हो। "मैं बहुत धीमे डेवलपर्स की टीम में हूं, और इसलिए मुझे हर किसी से दोगुनी गलतियां करनी हैं"। कृप्या!
दाऊद का कहना है कि मोनिका

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

0

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

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

मुझे नहीं लगता कि आपको जो करना चाहिए वह धीमा है।


0

माप मूल्य जोड़ा गया

तर्क दें कि जो वास्तव में मायने रखता है वह वह मूल्य है जिसे आप जोड़ते हैं। फिर जाओ और उस का माप (मैनुअल) माप शुरू करें:

  • आपके द्वारा उत्पादित कार्यक्षमता के मूल्य का अनुमान लगाएं
  • अपना वेतन घटाओ
  • अपने कीड़े की अनुमानित लागत को घटाएं (उन्हें ठीक करने के लिए कम से कम लागत)
  • आपके द्वारा उत्पादित अन्य सभी तकनीकी ऋण की अनुमानित लागत को घटाएं

शेष आपका मूल्य जोड़ा गया है। इसी तरह बाकी सबके लिए भी।

ये अनुमान कठिन हैं, लेकिन यहां तक ​​कि किसी न किसी तरह बात कर सकते हैं। और इन अनुमानों पर चर्चा करने की मात्र प्रक्रिया टीम और परियोजना के लिए उपयोगी है।


-1

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

इसलिए जबकि प्रति पंक्ति समस्याओं की प्रारंभिक मात्रा समान है, समस्याओं का तेजी से निराकरण किया जाता है।


प्रश्न बताते हैं कि यह मदद नहीं करता है: "मैंने यह इंगित करने की कोशिश की है कि मैं अपने साथियों के आधे दर पर कीड़े पैदा कर रहा हूं (और दो बार कई को ठीक कर सकता हूं), लेकिन यह एक कठिन बिक्री है जब ग्राफ़ कह रहा है कि मैं उत्पादन करता हूं दो बार के रूप में कई कीड़े ... "
gnat

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

आईएमएचओ, महानता को लंबे समय के ट्रैक रिकॉर्ड से परिभाषित किया गया है और 90% जीवित सॉफ्टवेयर इंजीनियरों को महान लोगों से मिलने का मौका कभी नहीं मिला। मैंने उन दो महान प्रोग्रामर से अपने इंप्रेशन को संक्षेप में बताने की कोशिश की जिनके साथ मैं काम करता हूं। "नियमित" कोड का अर्थ है: (ए) सभी उत्पादित कोड के समान तरीके से किया जाता है, (बी) एक संशोधित व्याख्या करना आसान है, और (सी) यह निश्चित रूप से विपरीत है "अन्य उच्च द्वारा समझने में आसान कार्यशील प्रोग्रामर ... "।
zzz777
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.