महान प्रोग्रामर उत्पादकता - 10,000 गुना अंतर के लिए लेखांकन? [बन्द है]


19

एक महान खराद ऑपरेटर कई बार एक औसत खराद ऑपरेटर के वेतन का आदेश देता है, लेकिन सॉफ्टवेयर कोड के एक महान लेखक की कीमत औसत सॉफ्टवेयर लेखक से 10,000 गुना अधिक होती है। - बिल गेट्स

कहते हैं कि एक "महान" सॉफ्टवेयर इंजीनियर है और एक ही टीम में एक "औसत" सॉफ्टवेयर इंजीनियर है। आप एक इंजीनियर के 10,000 गुना अधिक उत्पादक होने का हिसाब कैसे दे सकते हैं? मैं इसे काफी थाह नहीं दे सकता, यह देखते हुए कि वे दोनों अपने हिस्से सुविधाओं, बगों और जांचों को ले रहे हैं, और लगातार गुणवत्ता प्रदान करते हैं। क्या मेरा वर्णन संभवतः उन्हें "औसत" से ऊपर होने के लिए उचित ठहराएगा? "महान"?


2
मुझे यकीन नहीं है कि अगर यह सवाल स्टैकओवरफ्लो के लिए अनुकूल है, लेकिन साथ ही प्रतिक्रियाओं में भी दिलचस्पी है।
ऑस्टिन हेनले

18
बोली का कहना है एक महान एक है लायक 10k बार कीमत औसतन एक की, "उत्पादकता" वहाँ बारे में कुछ नहीं।
ऊदबिलाव

4
वास्तव में, एक महान प्रोग्रामर औसत से कम उत्पादक हो सकता है। अपनी "नौकरी" करने के बजाय, उसने कुछ बेहतर किया जो रडार से दूर था, और शायद एक पूरी नई उत्पाद लाइन भी बनाई जिसने उत्पादक प्रोग्रामर की नौकरी को बाधित किया।
हॉटपावर 2

2
एक बात जो मैं निश्चित हूं, वह यह है कि यदि आप दोनों को नया करना चाहते हैं, तो आपको दोनों की आवश्यकता है! @ # $ किया।
एरिक रिपेन

6
अबे लिंकन ने एक बार कहा था "अगर मेरे पास एक पेड़ को काटने के लिए आठ घंटे थे, तो मैं अपनी कुल्हाड़ी को तेज करने में छह घंटे लगाऊंगा", यह प्रोग्रामिंग में कभी भी अधिक सच नहीं है, जहां "अच्छा" काम करना एक त्वरित नौकरी से बहुत आगे निकल जाता है। अच्छा प्रोग्रामर कम उत्पादक प्रतीत हो सकता है, लेकिन वह उन सभी समस्याओं की तैयारी कर रहा है जो आगे झूठ हैं।
दाढ़ी वाले

जवाबों:


57

बोली की बात यह नहीं है कि एक 10K गुना अधिक उत्पादक है, यह है कि एक दूसरे के लायक 10K गुना है। सॉफ़्टवेयर में एक ऐसी अनूठी स्थिति होती है, जहाँ एक ख़राब डिज़ाइन या कार्यान्वयन वर्षों तक निष्क्रिय रह सकता है (एक हिस्सा जो गलत तरीके से लगाया जाता है, आमतौर पर सिर्फ "काम नहीं करेगा" और इसे क्षेत्र में नहीं बनाया जाएगा), उत्पाद के जीवन-चक्र में एक तक। एक दिन यह एक अव्यवस्थित स्थिति में अपने सिर पर उगता है।

हर किसी को दोष को ठीक करने की घातीय लागत से परिचित होना चाहिए क्योंकि यह डिजाइन से चलती है, कार्यान्वयन से परीक्षण से लेकर रखरखाव तक।

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

संपादित करें (वसंत 2014): "हार्दिक"


1
सूक्ष्म कि यह दायित्व की कमी होगी जो एक प्रोग्रामर को दूसरे की तुलना में 10,000 गुना अधिक कीमत देता है। मूल रूप से ऐसा नहीं सोचा था, धन्यवाद। यह हालांकि मापने के लिए एक अविश्वसनीय रूप से मुश्किल चीज की तरह लगता है।
द इम्पैक्ट

2
@ TheImpact: "मापना" मुश्किल है क्योंकि यह आमतौर पर कोडिंग के बाद ही अच्छी तरह से स्पष्ट हो जाता है और परियोजना दुनिया में बाहर हो जाती है। प्रदर्शन और विश्वसनीयता और आम तौर पर "औसत" प्रोग्रामर के विचारों के बाद; जबकि वे एक महान प्रोग्रामर से आने वाले डिज़ाइन के बहुत कपड़े में निर्मित होते हैं।
NotMe

10
+1। यदि एक अच्छे सॉफ्टवेयर डेवलपर की कीमत 100 है, तो -10 की तुलना में कितनी गुना अधिक है?
निकोल

3
आपूर्ति और मांग का मुद्दा भी है। रेमंड चेन: "मुझे दुनिया में केवल पांच लोगों पर कोड लिखने का भरोसा है जो यह उन्नत है, और मैं उनमें से नहीं हूं। - blogs.msdn.com/b/oldnewthing/archive/2011/04/15/10154245 .aspx । " यह सुरक्षा-संबंधी कोडिंग के बारे में विशेष रूप से सच है, क्योंकि यह समस्या वर्षों के लिए किसी का ध्यान नहीं (या कम से कम, सफेद टोपी द्वारा किसी का ध्यान नहीं) हो सकती है। श्नाइयर की टिप्पणी है कि अधिकांश प्रोग्रामर एक एन्क्रिप्शन एल्गोरिथ्म लिख सकते हैं जिसे प्रोग्रामर खुद नहीं तोड़ सकता। मैं ध्यान देता हूं कि इसका मतलब यह नहीं है कि कोई व्यक्ति बेहतर नहीं कर सकता ... जब तक कि लेखक सबसे अच्छा न हो।
ब्रायन

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

44

औसत ओलंपिक तैराक लगभग 2.5 मील प्रति घंटे की दूरी पर तैर सकता है।

औसत व्यक्ति (जो तैर ​​सकता है) लगभग 1.5 मील प्रति घंटे की अता दूरी पर तैर सकता है।

इसका मतलब है कि औसत ओलंपिक तैराक लगभग 8 घंटे में अंग्रेजी चैनल तैर सकता है।

यह तर्क के लिए खड़ा होगा कि ओलंपिक तैराक औसत से 60% तेज है और औसत तैराक को दौड़ पूरी करने में लगभग 13 घंटे लगेंगे ...

सिवाय इसके कि अगर मैं, एक औसत तैराक, इंग्लिश चैनल को तैरने का प्रयास कर रहा था, तो जिस तरह से मैं पार करने जा रहा हूं, वह एक हफ्ते बाद किनारे पर धोया जाता है।

प्रोग्रामिंग के कई पहलू इंग्लिश चैनल को तैरने जैसा है। यह डूबना या तैरना है। मुझे यह भी नहीं पता है कि 10,000x बेहतर काम करने वाले सॉफ्टवेयर के बीच अंतर का वर्णन करने के लिए वास्तव में भी सटीक तरीका है जो काम करता है और अधूरा सॉफ्टवेयर जो काम नहीं करता है।


31

कहते हैं कि एक "महान" सॉफ्टवेयर इंजीनियर है और एक ही टीम में एक "औसत" सॉफ्टवेयर इंजीनियर है। आप एक इंजीनियर के 10,000 गुना अधिक उत्पादक होने का हिसाब कैसे दे सकते हैं? मैं इसे काफी थाह नहीं दे सकता, यह देखते हुए कि वे दोनों अपने हिस्से सुविधाओं, बगों और जांचों को ले रहे हैं, और लगातार गुणवत्ता प्रदान करते हैं। क्या मेरा वर्णन संभवतः उन्हें "औसत" से ऊपर होने के लिए उचित ठहराएगा? "महान"?

यह एक "औसत" सॉफ्टवेयर इंजीनियर के लिए बहुत सारे "givens" है। वास्तव में, महान सॉफ्टवेयर इंजीनियर घंटों में समस्याओं को हल करता है जो औसत इंजीनियर कभी भी सही तरीके से हल नहीं करेगा । महान सॉफ्टवेयर इंजीनियर एक-तिहाई के साथ साधारण समस्याओं को हल करता है जबकि एक-पांचवें को ज्यादा कोड और दसवें के रूप में कई बग होते हैं। महान सॉफ्टवेयर इंजीनियर का कोड O (n) में चलता है जबकि औसत सॉफ्टवेयर इंजीनियर का कोड O (n ^ 3) समय में चलता है। महान सॉफ्टवेयर इंजीनियर आपके इंतजार के दौरान अपने समाधान को अनुकूलित कर सकता है, जबकि औसत सॉफ्टवेयर इंजीनियर कल्पना में देर से बदलाव के बारे में शिकायत करता है और कहता है कि अब नई आवश्यकताओं को पूरा करने के लिए सप्ताह लगेंगे। ये सभी वास्तविक अंतर हैं जिन्हें मैंने देखा है जब एक महान इंजीनियर औसत इंजीनियर के काम को कम करता है।


6
+1: दुर्भाग्य से यह बहुत आम है कि समस्याओं का सही समाधान नहीं मिलता है। यह पागल है कि कितनी बार वर्कअराउंड और क्लच होते हैं जो केवल तत्काल समस्या को "ठीक" करते हैं, लेकिन कुछ हफ्तों में और भी अधिक समस्याएं पैदा करने के लिए लगभग निश्चित हैं । "लेकिन यह कुछ ही हफ्तों में है, चलो हमारे भविष्य के सेल्फ को उन समस्याओं से निपटने दें!"
जोकिम सॉर

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

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

9

मैं मतभेदों के मामले में इससे निपटने की कोशिश करूंगा:

एक महान अभियंता एक औसत से निम्नलिखित को बेहतर करेगा:

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

एक साथ, ये हैं बचाने के विकास के समय में पैसे की कंपनी बहुत सारे और बनाने के अतिरिक्त अवसरों में पैसे की कंपनी बहुत सारे।


4

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

इस प्रोग्रामर का एक बहुत "मूल्य" जोखिम के लिए आनुपातिक इनाम के बारे में है। प्रोग्रामर ने ऐसे पागल सॉफ्टवेयर उत्पादों के बारे में सोचने के लिए भी गोली चलाई हो सकती है, बजाय इसके कि 2X या उससे अधिक का भुगतान किया जाए।

एक सामयिक सॉफ्टवेयर स्टार्टअप के साथ क्या होता है: मिलियन / अरबों के लिए सार्वजनिक हो रहा है, या Google या फेसबुक द्वारा अधिग्रहीत किया जा रहा है, et.al. समान मात्रा के लिए, शायद ही कभी खराद ऑपरेटरों के लिए होता है (हालांकि कम से कम एक सफल सिलिकॉन वैली टेक कंपनी के संस्थापक ने अपनी कार्यशाला में एक खराद किया था)।


4
".... मिलियन / अरबों के लिए सार्वजनिक जा रहा है, ....." मीडिया बयानबाजी के बावजूद सॉफ्टवेयर इंजीनियरों के लिए भी ऐसा बहुत कम होता है। हर एक के लिए कि "इसे बनाता है", हजारों अस्पष्टता में पड़ते हैं और / या जाते हैं, हालांकि एक भी कई वीसी दौर और वापस 9-5 दिन की नौकरी पर जाते हैं, जिनके मुंह में कड़वा स्वाद के अलावा और कुछ नहीं ...
मैटनज़

1
@mnnz: शायद 10,000 से 1 की तुलना में थोड़ा बेहतर है जो कि प्रोग्रामर के 10,000 एक्स के साथ कथित रूप से लायक है।
हॉटपावर 2

3

कुछ समाधान हैं जो केवल सर्वश्रेष्ठ प्रोग्रामर ही हल करने में सक्षम होने जा रहे हैं। हजारों औसत दर्जे के लोगों को फेंकने से काम नहीं चलेगा। उनके प्रयासों को समन्वित करना और भी मुश्किल है, भले ही वे सामूहिक रूप से अपने ज्ञान के टुकड़ों को जोड़ सकें।

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


3

मुझे लगता है कि कुछ अनुभवजन्य साक्ष्य हैं जो गेट्स के उद्धरण का समर्थन करते हैं। मुझे याद है कि पढ़ना (हालांकि मुझे स्रोत याद नहीं है) कि टाइपिंग पूल में आउटपुट में अंतर (आसानी से टाइपिंग पूल के लिए आसानी से मापने योग्य) जो कि 5 प्रतिशत प्रतिशत में है और 95% प्रतिशत में 3 से 1. कुछ है। वर्ड प्रोसेसिंग सॉफ्टवेयर उपलब्ध हो जाने के बाद, यह अनुपात 10 या 20 से 1 तक कुछ हो गया, क्योंकि जो लोग सॉफ़्टवेयर की उन्नत सुविधाओं का उपयोग कर सकते थे, वे और भी अधिक सापेक्ष लाभ प्राप्त कर सकते थे।

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

शीर्ष 1% में लोगों को टाइप करने या संचालित करने जैसी कुछ चीज़ों में संभवत: जो संभव है उसकी शारीरिक सीमाओं से टकराने के बहुत करीब हैं। प्रोग्रामिंग के मामले में वे स्पष्ट रूप से नहीं हैं (कोड लिखने के लिए कितना समय लगता है बनाम कोड को टाइप करने में कितना समय लगता है) बहुत बड़ा है, इसलिए बहुत अधिक भिन्नता के लिए जगह होनी चाहिए।


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