- सॉफ़्टवेयर इंडस्ट्री में यह मिथक मौजूद है कि कुछ लोग अपने साथियों की तुलना में 10 गुना अधिक उत्पादक होते हैं, यानी "10x engineer"
- लेकिन यह अवधारणा ठोस आधार से कमजोर है, और इसमें पूर्वाग्रहों को मजबूत करने या अवास्तविक मानक तय करने का जोखिम है
उत्पादकता को मापना जटिल और अपूर्ण है
- उत्पादकता को कैसे मापा जाए?
- इंजीनियर जिन क्षेत्रों पर काम करते हैं वे बहुत विविध होते हैं: माइक्रोप्रोसेसर, IoT, डेटाबेस, वेब सर्विस, UX आदि
- उपयोग की जाने वाली भाषाएँ और frameworks भी अलग-अलग होते हैं: Golang, Python, COBOL, Lisp आदि
- आसपास की तकनीक, बाज़ार और प्रोडक्ट का विशेषज्ञ ज्ञान भी चाहिए: सुरक्षा, डेटा विज़ुअलाइज़ेशन, मार्केटिंग, वित्त आदि
- डेवलपमेंट चरण और प्रोडक्ट का पैमाना भी अलग होता है: यह मंगल अन्वेषण rover है या साधारण सॉफ़्टवेयर, इस पर बहुत कुछ निर्भर करता है
- तकनीक बदलती रहती है
- जो इंजीनियर अतीत में उत्कृष्ट थे, वे समय के साथ किसी विशेष तकनीक में पीछे भी छूट सकते हैं
- कोई व्यक्ति किसी एक क्षेत्र में "10x engineer" हो सकता है, लेकिन दूसरे क्षेत्र में औसत स्तर का
सॉफ़्टवेयर का स्वामित्व इंजीनियर नहीं, टीम के पास होता है
- सॉफ़्टवेयर की गुणवत्ता किसी एक व्यक्ति के प्रदर्शन से नहीं, बल्कि टीम के प्रदर्शन से तय होती है
- कोई व्यक्ति कितनी भी तेज़ी से code लिख ले, अगर टीम की process धीमी है तो अंततः गति वही रहेगी
- code लिखने की तुलना में testing, review, deployment और maintenance में अधिक समय लगता है
- अगर किसी विशेष इंजीनियर के पास सॉफ़्टवेयर का ownership हो, तो उसके हट जाने पर बड़ा जोखिम पैदा होता है
- टीम-केंद्रित सॉफ़्टवेयर डेवलपमेंट संरचना लंबे समय में ज़्यादा स्थिर होती है
बेहतरीन इंजीनियरिंग संगठन वे हैं जहाँ "सामान्य" इंजीनियर भी शानदार प्रदर्शन कर सकें
- बेहतरीन इंजीनियरिंग संगठन ज़रूरी नहीं कि सिर्फ असाधारण इंजीनियरों से बने हों
- सामान्य इंजीनियरों के लिए ऐसा वातावरण ज़्यादा महत्वपूर्ण है जहाँ वे रोज़ अच्छे नतीजे दे सकें और लगातार प्रोडक्ट व बिज़नेस को आगे बढ़ा सकें
- टीम को सिस्टम समझना चाहिए, और code deploy करना, उपयोगकर्ताओं को जवाब देना, तथा समस्याएँ सुलझाना रोज़मर्रा के काम की तरह कर पाना चाहिए
- सबसे अच्छे इंजीनियरिंग संगठन वे हैं जहाँ सामान्य इंजीनियर बढ़ सकें और अच्छा प्रदर्शन कर सकें
"सामान्य" इंजीनियरों का महत्व
- सॉफ़्टवेयर इंडस्ट्री में "बहुत स्मार्ट लोगों" को ज़्यादा महत्व देने की प्रवृत्ति मजबूत है
- Netflix ने "शीर्ष 10%" प्रतिभा को, और Coinbase ने "शीर्ष 0.1%" प्रतिभा को प्राथमिकता देने की बात कही है
- लेकिन ज़्यादातर लोग औसत होते हैं → इसलिए ऐसे सिस्टम की ज़रूरत है जिसमें औसत लोग भी अच्छा प्रदर्शन कर सकें
- सॉफ़्टवेयर इंजीनियर पैदा नहीं होते, बल्कि प्रशिक्षण और अनुभव से विकसित होते हैं
"सामान्य लोगों" के लिए sociotechnical system बनाना
- सिस्टम इस तरह डिज़ाइन होने चाहिए कि "सामान्य लोग" भी उन्हें आसानी से इस्तेमाल कर सकें
- मानव की सामान्य विशेषताओं को ध्यान में रखना चाहिए:
- confirmation bias, recency bias, halo effect जैसे cognitive biases मौजूद होते हैं
- थकान और भावनात्मक स्थिति प्रदर्शन को प्रभावित करती है
- अगर alarm सुबह 3 बजे बजे तो दोपहर 3 बजे की तुलना में गलती की संभावना अधिक होती है
- अगर सिस्टम सहज और उपयोग में आसान हो, तो इंजीनियर अपनी ऊर्जा प्रोडक्ट सुधारने पर केंद्रित कर सकते हैं
बेहतरीन इंजीनियरिंग संगठन विश्व-स्तरीय इंजीनियर तैयार करते हैं
- बेहतरीन इंजीनियरिंग संगठन वे नहीं हैं जिनके पास पहले से महान प्रतिभा हो, बल्कि वे हैं जहाँ सामान्य इंजीनियर आगे बढ़ सकें
- अच्छे संगठन में औसत स्तर के इंजीनियर भी लगातार प्रदर्शन कर सकते हैं और विकसित हो सकते हैं
- सबसे अच्छे इंजीनियर ऐसे ही माहौल से स्वाभाविक रूप से निकलते हैं
"सबसे अच्छे व्यक्ति" नहीं, "सबसे उपयुक्त व्यक्ति" को भर्ती करना चाहिए
- "सबसे बेहतरीन प्रतिभा" से ज़्यादा महत्वपूर्ण है "हमारी टीम के लिए उपयुक्त प्रतिभा" को ढूँढना
- सिस्टम को व्यक्तिगत प्रदर्शन से अधिक टीम के प्रदर्शन को बढ़ावा देना चाहिए
- ऐसा वातावरण चाहिए जहाँ व्यक्तिगत उपलब्धि से अधिक teamwork और collaboration महत्वपूर्ण हों
- समावेशी और निष्पक्ष संस्कृति प्रदर्शन को बढ़ाती है, और विविध पृष्ठभूमि के इंजीनियरों को बढ़ने का अवसर देती है
निष्कर्ष
- "10x engineer" वास्तविक दुनिया में मौजूद हो सकते हैं, लेकिन उसे सीधे टीम के प्रदर्शन से जोड़ना कठिन और जोखिमभरा है
- बेहतरीन इंजीनियरिंग संगठन वे हैं जहाँ कुछ जीनियस नहीं, बल्कि सामान्य इंजीनियरों को अच्छा प्रदर्शन करने वाली संरचना मौजूद हो
- सिस्टम को व्यक्तिगत प्रदर्शन से अधिक टीम के प्रदर्शन को मजबूत करना चाहिए
- समावेशी संस्कृति और सिस्टम के ज़रिए सामान्य इंजीनियरों को बढ़ने और अच्छा प्रदर्शन करने का वातावरण देना ही मुख्य बात है
3 टिप्पणियां
ऐसी कंपनी में जहाँ केवल 100x इंजीनियर हों, 100x इंजीनियर ही सामान्य होते हैं। सामान्य महत्वपूर्ण है। और सामान्य के मानक को ऊपर उठाना उससे भी ज़्यादा महत्वपूर्ण है…
मुझे लगता है कि Steve Jobs जैसे लोगों ने जिस 10x, 100x SW engineer की बात की थी, उसका मतलब कुछ ऐसा ही है।
निर्माण मजदूरी, डिलीवरी, ड्राइविंग जैसे कामों में सबसे अच्छा skilled worker भी आम व्यक्ति से 2 गुना से ज़्यादा efficiency निकालना मुश्किल पाता है। लेकिन SW, finance जैसे क्षेत्रों में, अच्छा व्यक्ति ऐसा output दे सकता है जो 100 सामान्य लोग मिलकर भी कभी नहीं दे सकते।
टैलेंट तैयार करने वाली education महत्वपूर्ण है, लेकिन टैलेंट selection भी महत्वपूर्ण है। लगता है education और selection में बड़ा फर्क है। दोनों को मिलाकर भ्रमित नहीं होना चाहिए.
Hacker News राय
यह सोच कि software engineering कुछ खास है, अक्सर नुकसानदेह होती है
कोई "सामान्य" engineer नहीं होता, बल्कि अलग-अलग स्तर के developer होते हैं
software का development team नहीं बल्कि व्यक्ति करते हैं
श्रमिक वर्ग के अमानवीकरण और वर्गीकरण का विरोध किया गया है
IEEE के clickbait जैसी सामग्री संभालने पर निराशा है
10x engineer रचनात्मक होते हैं और user experience व code maintenance की परवाह करते हैं
10x engineer की अवधारणा बढ़ा-चढ़ाकर पेश की गई है, लेकिन कुछ लोग सचमुच बहुत सारा काम करते हैं
engineering का काम दूसरे पेशों से अलग विशेषताएं रखता है
कभी-कभी दूसरे लोगों से तुलना करते हुए बेबसी महसूस होती है
कई engineer पैसे के लिए काम करते हैं, और जुनून न हो तो बेहतरीन engineer बनना मुश्किल है