चुस्त टीम में मुख्य डेवलपर की भूमिका क्या है?


42

एक गैर-चुस्त विकास टीम में आम तौर पर एक प्रमुख डेवलपर :

  • मानक सेट करता है (कोडिंग और अन्यथा)
  • टीम के लिए नई तकनीकों पर शोध करता है
  • टीम के लिए तकनीकी दिशा निर्धारित करता है
  • मामलों पर अंतिम कहना है
  • एक प्रणाली की वास्तुकला को डिजाइन करता है

हालाँकि एक फुर्तीली टीम अलग तरीके से काम करती है:

  • एक फुर्तीली टीम सामने के बजाय उभरती हुई डिज़ाइन पर निर्भर करेगी
  • एक चुस्त टीम एक व्यक्ति द्वारा तय किए जा रहे डिजाइन के बजाय एक साथ डिजाइन करती है
  • एक फुर्तीली टीम अपनी तकनीकी दिशा का फैसला करती है, जो एक परियोजना देने के लिए सबसे अच्छा है

यह एक फुर्तीली टीम में लीड डेवलपर को कहां छोड़ता है? क्या फुर्तीली टीम में लीड डेवलपर होना संभव है? क्या एक चुस्त टीम एक लीड से अलग-अलग जिम्मेदारियों की मांग करती है?


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

जवाबों:


46

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

किसी भी विकास टीम को चलाने के लिए निर्णय द्वारा निर्णय सौंपना एक भयानक तरीका है। एजाइल बाकी टीम से खरीद पाने में अधिक स्पष्ट प्रक्रिया बनाता है, और एक लीड डेवलपर को वैसे भी ऐसा करना चाहिए था।

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


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

@ ब्रायन वास्तुकला के फैसले एक कहानी में एक कहानी होगी, जो शायद एक विशिष्ट सदस्य के लिए होगी, लेकिन किसी अन्य कहानी की तरह ही। यह किसी भी अन्य कहानी की तरह सहकर्मी की समीक्षा के अधीन होना चाहिए। समय तर्क बकवास है, अगर आप X को मिस करने का फैसला किया है या Z का प्रयास करने का फैसला किया है कि टीम के बाकी सभी लोग आपसे परिचित नहीं हैं, तो आपको अधिक समय बिताना होगा, परिणामस्वरूप, डिजाइन के बारे में बहस करने का एक पूरा दिन भी तुलनात्मक रूप से महत्वहीन होगा। । कहने के लिए एक साधारण बैठक / समीक्षा "मैंने ए को चुना क्योंकि एक्स, वाई, जेड।" संभवत: एक घंटे का समय लगेगा और बस इसे एक सहयोगात्मक प्रयास बना दिया जाएगा।
रयथल

30

एक फुर्तीली टीम में सभी को अपने अहं को एक तरफ रखना चाहिए।

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

तो, एक "लीड" डेवलपर "अग्रणी" जारी रखेगा, लेकिन उनके अनुभव के एक प्राकृतिक परिणाम के रूप में और उनके शीर्षक के अनिवार्य कार्य के रूप में नहीं।

यह एक आदर्श दुनिया में जहां लोग अपने अहं को एक तरफ रख सकते हैं। सौभाग्य!


सहमत नहीं होंगे। मैंने बहुत बार देखा है कि एक डेवलपर ने अपने बुरे परिणामों के साथ खुद पर एक कठोर निर्णय लिया, क्योंकि सीसा नहीं था और डेवलपर ऐसी स्थिति के आदी नहीं थे। हेरिंग बिल्लियों, मैं आपको बताता हूं।
andrew.fox

20

रायथल के जवाब के अलावा :

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

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

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

संक्षेप में, आप यह सुनिश्चित करने के लिए स्नेहक हैं कि वे आसानी से चल सकें।


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

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

आपने जो वर्णन किया है वह एक स्क्रैममास्टर है।
DBedrenko

6

आपका गैर-फुर्तीला विवरण आपके चुस्त विवरण को अमान्य नहीं करता है।

एक फुर्तीली टीम सामने के बजाय उभरती हुई डिज़ाइन पर निर्भर करेगी।

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

एक चुस्त टीम एक व्यक्ति द्वारा तय किए जा रहे डिजाइन के बजाय एक साथ डिजाइन करती है

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

एक फुर्तीली टीम अपनी तकनीकी दिशा का फैसला करती है, जो एक परियोजना देने के लिए सबसे अच्छा है

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


6

सवाल कुछ अन्य सवालों के जवाब देता है। आपको क्या लगता है कि आप साथी सॉफ्टवेयर इंजीनियरों की एक टीम को बताएं कि क्या करना है? क्या यह आपका अनुभव है? क्या यह अजीब सा शीर्षक है जिसे आपके बॉस ने आपको सौंप दिया है? क्या यह आपका अहंकार है? कंपनी में आपका कार्यकाल? क्या यह आपकी "घबराहट" है? आपकी अदा?" आपका "नेतृत्व कौशल?"

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

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

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


+1 "काम पर हाथ" के लिए। मैं सबसे अच्छा समाधान पर ध्यान केंद्रित करने के लिए सहमत हूं जो आपको अभी वितरित करना है। यह इस बारे में नहीं है कि कौन विचार के साथ आता है।
कुब्बल

यदि आपके अनुसार एक SCRUM टीम पर एक develompent टीम लीड करता है, "टीम के अन्य लोगों की तुलना में बेहतर सॉफ़्टवेयर का उत्पादन करता है", तो वे सभी एक डेवलपर हैं जो कोई भी जिम्मेदार ज़िम्मेदारियां नहीं हैं। क्या यह बात आपके उत्तर द्वारा सुझाई गई है? अन्यथा यह वास्तव में इस सवाल का जवाब नहीं देता है कि एक देव लीड SCRUM टीम में कैसे फिट बैठता है।
DBedrenko

हाँ यह करता है। वे एक अच्छे इंजीनियर हैं, इसलिए एक इंजीनियर (तकनीकी रूप से, एक "टीम सदस्य") के रूप में उनकी भूमिका है। वे और क्या होंगे?
कैलफूल

3

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

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

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

उन्होंने अंतिम उपाय के बिंदु के रूप में भी कार्य किया। जब व्यक्तिगत प्रोग्रामर उन समस्याओं में भाग गए जिन्हें वे ठीक करने में असमर्थ थे, तो वे लीड में जाएंगे और चीजों को ठीक करने की अंतिम जिम्मेदारी उनकी थी।


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