टीमों के माध्यम से क्षमता कैसे वितरित की जानी चाहिए?


9

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


ऐसा लगता है: programmers.stackexchange.com/questions/76890/…
13:11

@ इसी तरह, लेकिन यह है कि अगर मैं सही ढंग से याद में एक अत्यधिक प्रभावी डेवलपर को रखने की बात कर रहा हूं।
मॉर्गन हेरलॉकर

2
अधिकांश सभ्य चरित्र प्रणालियां आपको समय-समय पर प्रतिभाओं को फिर से विभाजित करने देती हैं।
FrustratedWithFormsDesigner

1
क्षमा करें, इन दिनों बहुत अधिक मास इफेक्ट 2 (और अन्य गेम)। : पी
FrustratedWithFormsDesigner

जवाबों:


11

ए-टीम्स के साथ कुछ ज्ञात जोखिम हैं, लेकिन अगर गतिशीलता सही है, तो मुझे लगता है कि हाँ, मैं अपने सबसे मजबूत लोगों को सबसे महत्वपूर्ण परियोजनाओं के साथ-साथ सबसे अधिक संभावित जूनियर डेवलपर (ओं) के साथ डालूँगा। अपने निचले प्राथमिकता वाले प्रोजेक्ट्स के लिए आपको एक अच्छे टीम लीडर की आवश्यकता होती है, यदि संभव हो तो उन्हें रेल से दूर जाने के लिए रखना संभव है। तकनीकी ऋण कोई बात नहीं होने जा रहा है। सभी तकनीकी ऋण समान नहीं हैं; तकनीकी ऋण की लागत / देयता पहली जगह में परियोजना के व्यावसायिक मूल्य के अनुपात में है, इसलिए जब आपकी कम प्राथमिकता वाली परियोजनाओं में अधिक मौसा हो सकता है, तो उन लोगों की लागत शायद अभी भी आपकी उच्च प्राथमिकता वाली परियोजनाओं पर महत्वपूर्ण समस्याओं से बहुत कम है। हो।


7

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

असल में, कहानी इस प्रकार है:

प्रोग्रामर के एक समूह को क्षमता के आधार पर समूहों में विभाजित किया गया था, जिसमें सबसे खराब एक्स प्रोग्रामर को एक साथ समूहीकृत किया गया था, अगले x को एक साथ समूहित किया गया था, और बहुत अच्छे लोगों को एक साथ समूहीकृत किया गया था।

उन्हें सभी को एक ही कार्य सौंपा गया था, और इसे पूरा करने के लिए एक समय सीमा दी गई थी।

समय-सीमा के अंत में आयोजकों ने कार्यों के समाधानों को देखा, और उन्होंने अपने आश्चर्य के साथ यह पाया कि सबसे अच्छा प्रदर्शन करने वाला समाधान औसत लोगों से बनी टीम से आया है। इसके विपरीत, ए * प्रोग्रामर्स से बनी टीम ने सबसे खराब समाधानों में से एक बनाया क्योंकि उन्होंने अपना सारा समय इस बात पर बहस करने में बिताया कि सबसे अच्छा समाधान क्या था

यदि आपको एक टीम की जरूरत है जो सामान प्राप्त करने जा रही है, तो औसत लोगों का एक समूह और एक प्रमुख लड़का हो सकता है जो नेतृत्व कर सकता है, क्या अध्ययन का निष्कर्ष था (यदि मुझे सही तरीके से याद है), अन्यथा अधिक प्रमुख सदस्य होने से लड़ने में अधिक समय व्यतीत करेंगे सामान किया!


1
हां यह प्राथमिक ए-टीम समस्याओं में से एक है, लेकिन यह निष्कर्ष निकालना कि यह इस अध्ययन के आधार पर सभी टीमों पर सार्वभौमिक रूप से लागू होता है, एक गलती होगी।
जेरेमी

सहमत: हर कोई समान नहीं है, न ही समान समूहों में समान गतिशीलता होगी, लेकिन फिर भी यह एक अच्छा किस्सा है!
एड जेम्स

1
खैर, देवों का एक झुंड एक साथ रखें कि सभी केवल पथ खोजने वाले एल्गोरिदम लिखते हैं और यही आपको मिलता है ...
स्टीवन एवर्स

lol - आप पेपर की सबसे अधिक संभावना नहीं पा सकते हैं क्योंकि प्रोफेसर ने कहानी को मौके पर ही बनाया है। ;-)
स्टीवन ए। लोव

यह मुझे आश्चर्य नहीं करेगा: डी
एड जेम्स

3

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

कुछ और अनुभवी डेवलपर भी हैं जो बहुत जटिल सॉफ़्टवेयर डिज़ाइन को समझने में सक्षम हैं, लेकिन यह जानने के लिए विवेक की कमी है कि कुछ सरल कब बेहतर होगा।

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


मैं केवल आपके पहले पैराग्राफ से यह मान सकता हूं कि आप ऐसे माहौल में काम नहीं करते जहां डेवलपर्स की मांग आपूर्ति से अधिक हो। हम में से कई करते हैं। :-)
कार्सन63000

3

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

इसके अलावा अगर कुशल लोग छोड़ने का फैसला करते हैं तो क्या होगा? उनके प्रोजेक्ट कौन लेगा?

एक और बिंदु यह है कि टीम को अलग-अलग कौशल सेट वाले लोगों से बनाया जाना चाहिए। आपके पास हमेशा आसान कार्य (और उबाऊ कार्य) होंगे जो सबसे वरिष्ठ डेवलपर्स द्वारा किए जाने के लिए बहुत महंगे हैं।


3

जो सिखा नहीं सकते, वे ...

मुझे लगता है कि विचार करने के लिए अधिक कारक हैं।

टीम लीड के रूप में जो सिखा सकते हैं, उन्हें वितरित करके आपको सबसे अधिक मूल्य मिलेगा। वे टीम के अन्य सदस्यों को सिखा सकते हैं और उनके काम की गुणवत्ता को बढ़ाने में मदद कर सकते हैं।

सभी वरिष्ठ प्रोग्रामर अच्छा नेतृत्व नहीं करेंगे। सूचना को संप्रेषित करने की क्षमता अपने आप में एक कौशल है। यह कौशल कुछ ऐसा नहीं है जो प्रोग्रामिंग अनुभव के माध्यम से विकसित होता है। यह शिक्षण और समझाने के माध्यम से विकसित होता है।


मैं सहमत हूं लेकिन उसी समय में आप अन्य डेवलपर्स द्वारा लिखे गए कोड से सीख सकते हैं। यदि वरिष्ठ डेवलपर आपकी टीम का हिस्सा नहीं हैं, तो आप उनसे इस तरह नहीं सीख सकते।
लादिस्लाव मृका

@Ladislav Mrnka: मैं यह नहीं कह रहा हूं कि आपको विभिन्न टीमों में वरिष्ठ डेवलपर्स को वितरित नहीं करना चाहिए। कोड से सीखने की क्षमता अलग-अलग होगी। यह भी मानता है कि देवों को कोड से सीखने में समय लगेगा जो कई नहीं करते हैं।
डायटबुद्ध

2

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

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


1

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

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