बेहतर कोडिंग प्रथाओं को अपनाने के लिए एक सहकर्मी को प्रेरित करना?


24

मेरे पुरातन सहकर्मी प्रश्न को संभालने में , विभिन्न लोगों ने सहकर्मियों से निपटने के लिए रणनीतियों पर चर्चा की जो टीम के साथ अपने वर्कफ़्लो को एकीकृत करने के लिए तैयार नहीं हैं ।

मैं, यदि संभव हो तो, एक सहकर्मी को "सिखाने" के लिए कुछ रणनीतियां सीखने के लिए, जो आधुनिक तकनीकों और उपकरणों से अनभिज्ञ है, और संभवतः थोड़ा उदासीन है।

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

हालाँकि, मैंने जो वास्तविक (C #) कोड देखा है, वह VB6 दिनों के लिए एक कमबैक है। प्रक्रियात्मक संरचना, हंगेरियन संकेतन, वैश्विक चर (दुरुपयोग static), कोई इंटरफेस नहीं, कोई परीक्षण नहीं, जेनरिक का उपयोग नहीं, फेंक System.Exception... आपको विचार मिलता है।

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

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

कोमल अनुनय और गैर-भौतिक प्रोत्साहन के माध्यम से मैं इस डेवलपर के कोड गुणवत्ता मानक डेल कार्नेगी के तरीके को बढ़ाने के बारे में कैसे जा सकता हूं? एक प्रतिकूल स्थिति पैदा किए बिना , सूक्ष्म, क्रमिक परिवर्तनों को प्रभावित करने के लिए सबसे अच्छी रणनीति क्या होगी ?

क्या अन्य लोग - विशेष रूप से अग्रणी डेवलपर्स - पहले इस प्रकार की स्थिति में थे? कौन सी रणनीतियाँ रुचि को उत्तेजित करने और एक सकारात्मक समूह को गतिशील बनाने में सफल रहीं? कौन सी रणनीतियाँ सफल नहीं थीं और इससे बचना बेहतर होगा?


स्पष्टीकरण:

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

  • यह सहकर्मी उम्र के आधार पर केवल मेरा "वरिष्ठ" है। मैंने कभी नहीं कहा कि उनका शीर्षक, प्रभाव क्षेत्र, या संगठन में वर्षों से मेरा है, और वास्तव में, उन चीजों में से कोई भी सच नहीं है। वह एक LOB प्रोग्रामर है जो मुख्य विकास की दुकान में अवशोषित हो गया है। बस।

  • मैं एक नया भाड़ा, जूनियर प्रोग्रामर, या अन्य भोले बेवकूफ नहीं हूँ जो रातों-रात कंपनी को बदलने की भव्य योजना के साथ हैं। मैं मूल रूप से सॉफ्टवेयर प्रक्रिया का प्रभारी हूं, लेकिन जितने लोगों ने "लीड" के रूप में काम किया है, वे जानते हैं कि जिम्मेदारियां हमेशा ऑर्ग चार्ट के साथ सटीक संबंध नहीं रखती हैं।

  • मैं लोगों से नहीं पूछ रहा हूं कि कैसे अपना रास्ता , नर्क या ऊंचा पानी । मैं ऐसा कर सकता था अगर मैं चाहता था, तो शुद्ध परिणाम के साथ कि यह व्यक्ति नाराज हो जाएगा और / या छोड़ दिया जाएगा। कृपया यह समझने की कोशिश करें कि मैं ड्राइविंग परिवर्तन की सामाजिक , सहकारी पद्धति की तलाश में हूं ।

  • का उल्लेख है "... वैश्विक चर ... कोई परीक्षण नहीं ... फेंकने System.Exception" का प्रदर्शित करने के लिए था कि समस्याएं सिर्फ सतही या सौंदर्यवादी नहीं हैं । अभ्यास जो अपेक्षाकृत छोटे CRUD ऐप के लिए काम कर सकते हैं, जरूरी नहीं कि वे बड़े एंटरप्राइज़ ऐप के लिए काम करें, और वास्तव में, अब तक कोड में से कोई भी वास्तव में एकीकरण परीक्षण पारित नहीं किया है।

कृपया, अंकित मूल्य पर प्रश्न लेने की कोशिश करें, स्वीकार करें कि मैं वास्तव में जानता हूं कि मैं किस बारे में बात कर रहा हूं, या तो उस प्रश्न का उत्तर दें जो मैंने वास्तव में पूछा था या उस पर आगे बढ़ गया था।

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


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

1
जब आपने उसके साथ इस चिंता को उठाया तो आपके बॉस ने क्या कहा?

2
@Aaronaught, चूंकि उनका कोड काम करता है, यह एक तकनीकी नहीं बल्कि एक राजनीतिक समस्या है, और शायद एक जिसे ऊपर से थोपना है अगर आप कुछ भी बदलना चाहते हैं। दूसरे शब्दों में अपने बॉस से। अच्छे तर्क तैयार रखें!

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

1
@ असंतुष्ट, या तो आप एक प्रेरणा बनने के लिए बुरी तरह से विफल रहे हैं (जिसे खारिज नहीं किया जा सकता) या वह प्रेरित नहीं होना चाहता। क्या आप लिस्प या हास्केल में अपनी इकाई परीक्षणों की कोडिंग पर विचार करेंगे यदि कोई छोटा सहयोगी आपको बता रहा हो कि यह आपके द्वारा किए गए कार्यों की तुलना में बहुत अधिक स्मार्ट है?

जवाबों:


10

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

आपको अभी भी यह पता लगाने की आवश्यकता है कि इस विशेष व्यक्ति को क्या प्रेरित करेगा। एक पुराने गीज़र (मेरे जैसे) पर क्या काम करता है, आपके पुराने गीज़र के लिए काम नहीं कर सकता है।

वह गुरु के लिए / सिखाने दूसरों को पसंद करता है, तो आप से एक मुद्दा दृष्टिकोण सकता है सवाल पूछने की तरह "तुम क्यों यह इस तरह से करते हैं?" वह एक संवाद प्राप्त कर सकता है जहां आप उससे नए दृष्टिकोण का मूल्यांकन करने और अपनी राय देने के लिए कह सकते हैं।

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

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

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


ये कुछ अच्छी सामान्य रणनीतियाँ लगती हैं। मुझे स्पष्ट होना चाहिए कि यह सिर्फ VB6- पुराना है, COBOL- पुराना नहीं है। शायद 5-7 साल पीछे, 20-30 साल नहीं। इसलिए गीजर / डायनासोर नहीं।
Aaronaught

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

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

@ सार: मुझे पूरा यकीन है कि अगर मैंने कुछ पूछा, "क्या आपने यहां निर्भरता इंजेक्शन माना है?" जवाब होगा "हुह?" बेशक एक मौका है जो मुझे सुखद आश्चर्यचकित कर सकता है, लेकिन मुझे लगता है कि जीम सही है, यह पूछने के लिए एक बेहतर वार्तालाप स्टार्टर है कि "आपने Fooयहां विश्व स्तर पर उपयोग की गई वस्तु का उपयोग करने का फैसला किया है?" मैं यह नहीं समझता कि एक हमले के रूप में व्याख्या की जा रही है; यह मुझे मौजूदा डिज़ाइन को समझने की कोशिश कर रहा है।
Aaronaught

@Aaronaught: काफी फेयर;) जबकि DI की प्रतिक्रिया "हुह?" हो सकती है, यह एक दिलचस्प बातचीत को स्पार्क कर सकता है, जैसे "ठीक है, मैंने इसके बारे में सुना है लेकिन ..." ... मेरी चिंता ज्यादातर टोन है (के रूप में jimreed बताते हैं) निश्चित रूप से, जैसा कि jimreed कहते हैं, आपको अपनी लड़ाई चुननी होगी - कभी-कभी इसका मतलब एक बड़ी छड़ी लेकर होता है, कभी-कभी इसका मतलब सैंडबॉक्स में एक साथ खेलना होता है।
आइब्रीज

4

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

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

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

अगर वह उसके बाद दिलचस्पी नहीं लेता है, तो आप उस पहले प्रश्न का उल्लेख कर सकते हैं जिससे आप जुड़े हैं।


4

यह वास्तव में आपके प्रबंधक का काम है

  1. एहसास है कि कंपनी पास एक कोडिंग मानक होना चाहिए । हर कुछ पेशेवर कंपनी में यह है, कोई फर्क नहीं पड़ता कंपनी का आकार।
  2. सभी को एक साथ बैठने और एक मानक बनाने के लिए शुरू करें। इस तरह, हर कोई अपनी बात कह सकता है, और फिर वे मानक का पालन करने के लिए अधिक प्रेरित होंगे।

यदि आपके प्रबंधक को यह एहसास नहीं है कि वे अपने काम के लिए योग्य नहीं हैं। और यदि ऐसा है, तो आपको उन्हें उपरोक्त दोनों के ऊपर कुछ कुहनी देनी चाहिए। एक कोडिंग मानक होने के फायदे बहुत सारे हैं, वास्तव में एक होने के खिलाफ कोई तर्क नहीं है। (यदि कुछ प्रोग्रामर को लगता है कि वे "कलाकार" हैं और व्यावसायिकता की सीमा तक सीमित नहीं होना चाहिए, तो उन्हें इसके बजाय ललित कला करने वाली नौकरी मिलनी चाहिए।)

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

संदर्भ के लिए, देखें कि MISRA-C / C ++ और CERT C / C ++ / Java मानक कैसे लिखे गए हैं।


यह (गलत) धारणा बना रहा है कि मैं एक ऊर्ध्वाधर संरचना वाले सॉफ्टवेयर प्रकाशक के लिए काम करता हूं। डेवलपर्स के 10% से कम सॉफ्टवेयर प्रकाशकों के लिए काम करते हैं और यह जरूरी नहीं है कि डेवलपर्स को micromanage करने के लिए एक कार्यकारी या मध्य प्रबंधक की जिम्मेदारी हो।
हारून

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

2

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

यदि, हालांकि, इसके लिए कोई तकनीकी कारण है, तो आपको उस व्यक्ति से संपर्क करने पर विचार करना चाहिए, जैसे:

मेरे पास एक सुझाव है कि आप अपने लिए थकाऊ समय और कंपनी के लिए पैसे कैसे बचा सकते हैं। क्या आपकी रुचि है?

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

यहां तक ​​कि अगर आपके पास सुझाव के गजिलियन हैं, तो बस एक या दो चुनें, और प्रदर्शित करें कि यह बेहतर में बदलाव होगा।

या तो यह काम करेगा, और आपसे पूछा जाएगा कि क्या आपके पास अधिक सुझाव हैं, या यह नहीं है और फिर नुकसान एक या दो सुझावों तक सीमित है।

ध्यान दें कि यह बहुत महत्वपूर्ण है कि यह एक सफलता बन जाए, और इसे जल्दी करता है।

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


रचनात्मक उत्तर के लिए धन्यवाद - हालांकि मुझे लगता है कि यह पहले पैराग्राफ के बिना किया जा सकता था।
हारून

@ हारून, क्षमा करें, लेकिन यह वास्तव में काफी महत्वपूर्ण है।

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

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

1
@ पहले, जो पहले पैराग्राफ के बिना किया जा सकता था, उसके लिए, मुझे आश्चर्यजनक रूप से आपत्तिजनक ढंग से शब्दों को चुनने का आपका विकल्प मिल गया। क्या आपको लगता है कि दूसरों को दयनीय कहना एक उदाहरण है?

1

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

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

यदि इस व्यक्ति के पास वास्तव में डोमेन ज्ञान है जिसकी आपको आवश्यकता है / चाहते हैं तो उनके पास उस ज्ञान का दस्तावेज होना चाहिए।


1
-1 सवाल पहले से ही बताता है कि ओपी का टकराव के तरीके से संपर्क करने का कोई इरादा नहीं है। कृपया सामान्य रूप से विषय पर चर्चा करने के बजाय, ओपी के प्रश्न को अच्छी तरह से पढ़ें और उस विशिष्ट प्रश्न का उत्तर दें ।
हेजमैज

1

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

  1. आपके द्वारा देखे गए व्यवहार का वर्णन करें। इसके लिए ठोस व्यवहार होना चाहिए। उदाहरण: "मैं देख रहा हूँ कि आप अपने कोड में बहुत से स्थिर चर का उपयोग कर रहे हैं"
  2. वर्णन करें कि यह आपको / आपकी टीम को कैसे प्रभावित करता है। उदाहरण: "मुझे ऐसे कोड को बनाए रखने में मुश्किल होती है"
  3. एक उचित समाधान प्रदान करें। (संभव समाधान अन्य उत्तरों में उल्लिखित हैं, और मैं बाद में इस उत्तर के बारे में कुछ अपने आप में बताऊंगा।)
  4. समाधान पर चर्चा करने के लिए उसे अस्पष्टता दें। उससे पूछें कि वह समाधान के बारे में क्या सोचता है। अंकित मूल्य पर उसकी प्रतिक्रिया लें। आपने उसे अपनी राय दी है, और वह इसे स्वीकार करने के लिए स्वतंत्र है या नहीं। "

उदाहरण के लिए फीडबैक पर एक त्वरित संसाधन http://managementhelp.org/ourcingskills/feedback.htm पर पाया जा सकता है (हालांकि वेब पर इस तरह के सामान की अधिकता है)

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

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

* नोट: बातचीत के बारे में मजेदार बात यह है कि वे मॉडल के लिए बहुत कठिन हैं। उनका अपना जीवन है, इसलिए भले ही यह कागज पर अच्छा लग रहा हो, यह थोड़ा सा मैला हो जाता है।


0

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

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


-1

$ 64,000 का सवाल यह है कि क्या वह अपनी परियोजनाओं को समय पर दे रहा है और कार्यक्षमता की आवश्यकताओं को पूरा कर रहा है। यदि हां, तो वह सही कर रहा है। सॉफ्टवेयर डेवलपमेंट में कोई ऑब्जेक्टिव राइट-वे या गलत-वे नहीं है। अंततः समस्याओं को हल करने के बारे में। और यदि समस्याओं को क्लाइंट / ग्राहक की संतुष्टि के लिए हल किया जाता है, तो परिभाषा के अनुसार , सॉफ्टवेयर विकास सही ढंग से किया जा रहा है।

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

इसलिए ... जब तक कि वास्तव में उनके काम में कोई समस्या नहीं है (जो आपने वहां संकेत दिया है), एक काम न करें। एक सफल डेवलपर होने का एक हिस्सा अन्य डेवलपर की शैलियों के साथ अपने कोड को मर्ज करना सीख रहा है।

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


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

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

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

जैसा कि fads के लिए, उद्योग में थोड़ी देर के लिए घूमें और आपको पता चलेगा कि हाँ, आज का सर्वोत्तम अभ्यास कल की VB6- शैली की शांति पद्धतियां हैं। Downvoting के लिए के रूप में, यकीन है, स्वतंत्र महसूस हो रहा है। मैं सिर्फ पोस्ट के रूप में सवाल का जवाब दे रहा हूं। मैं आपके द्वारा प्रदान किए गए विवरणों का जवाब नहीं दे सकता।
ग्रैंडमास्टरबी 20

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

-1

एक जूनियर डेवलपर के रूप में एक वरिष्ठ डेवलपर से बात करना आपके लिए अपने स्वयं के मुकाबले बेहतर विचारों के साथ प्रयास करना और उससे संपर्क करना बहुत जोखिम भरा है।

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

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

चेन ऑफ़ कमांड जाने का सबसे सुरक्षित तरीका है क्योंकि वह अपने बॉस की बात सुनना चाहता है, न ही उसे पसंद करना है। बॉस को बुरा आदमी होने दें, वह वही है जिसके लिए वह है।

यदि आप बॉस को बेच नहीं सकते हैं या वह बॉस है तो बस उसके कीड़े से निपटें लेकिन आपके कोड में उदाहरण के लिए नेतृत्व करें।


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

1
@Aaronaught, a) "यह प्रोग्रामर मेरी तुलना में काफी पुराना है" मैं इस कथन से मान गया कि आप उसके "जूनियर" हैं। ख) आपकी टेक लीड की तरह लगता है, तो आपको उस जानकारी को अपने प्रश्न में रखना चाहिए, इससे चीजें काफी बदल जाती हैं। ग) यदि वह सर्वोत्तम प्रथाओं का पालन नहीं कर रहा है और उसका कोड छोटी गाड़ी नहीं है तो क्या समस्या है? किसी भी चीज के बारे में उससे क्यों संपर्क करें? जो टूटा नहीं है उसे ठीक करो। घ) यदि वह खराब गुणवत्ता कोड के साथ बग पैदा नहीं कर रहा है, तो फिर से उससे संपर्क न करें। असली मुद्दा यह है कि आपके पास कोडिंग और विकास मानक नहीं हैं, जिनका हर किसी को पालन करना चाहिए।
maple_shaft

मैंने सोचा था कि यह स्पष्ट रूप से मेरे संदर्भ (नहीं) से प्रेरित था, "बंदूकों के धमाके के साथ जा रहा था और रिप-इट-टू-श्रेड कोड की समीक्षा और सख्ती से लागू की गई नीतियों के साथ" - मैं यहां तक ​​कि अगर मैं एक कनिष्ठ था, तो मैं भी क्यों उल्लेख करूंगा? ? और किसने कहा कि हमारे पास मानक नहीं हैं? उन्होंने पहले कभी हमारी टीम के साथ काम नहीं किया है और मैं इसके बारे में एक झटका दिए बिना मानकों को पेश करने की कोशिश कर रहा हूं ।
Aaronaught

-1 पूछे गए सवाल का जवाब नहीं दिया।
हेजमैज

-1

आप नहीं कर सकते।

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

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


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

2
यह सच है, लेकिन मेरे अनुभव में अगर लोग सुधार की परवाह करते हैं, तो उन्हें प्रेरित होने के लिए बहुत कम प्रेरणा की आवश्यकता होती है क्योंकि इच्छा पहले से ही है - उन्हें एक कुहनी या सलाह की आवश्यकता हो सकती है, लेकिन वे समझते हैं और सुधार करना चाहते हैं, बस मार्गदर्शन की आवश्यकता है। मैं उसी रास्ते पर था; मैंने चीजों को करने के बुरे तरीके सीखे और सोचा "बेहतर तरीका होना चाहिए" और शोध शुरू किया। हालांकि मैंने देखा है कि जो लोग सुधार नहीं करते हैं या सुधार करने की इच्छा दिखाते हैं वे खोए हुए कारण हैं क्योंकि वे सुधार नहीं करना चाहते हैं। उस ने कहा, मुझे गलत साबित करने में शुभकामनाएं :)
वेन मोलिना

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

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

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