कनिष्ठ डेवलपर्स को कोड समीक्षा में भाग लेने के लिए कैसे प्रोत्साहित करें?


13

मैं वर्तमान में मेरे नीचे 3 जूनियर्स के साथ एक वरिष्ठ देव के रूप में काम कर रहा हूं और उत्पादन में जाने वाले कोड की गुणवत्ता में मदद करने के लिए एक कोड समीक्षा प्रक्रिया शुरू की है।

मुझे लगता है कि हम सभी को एक-दूसरे के काम की समीक्षा करने के लिए यह बहुत फायदेमंद लगता है, हालांकि प्रक्रिया के लगभग 5 सप्ताह बाद मैं टूल (बिटबकेट) में कोई भी टिप्पणी करने वाला एकमात्र व्यक्ति हूं।

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


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

2
(प्रतियोगिता) की कोशिश की, और इससे मुझे टीम के साथ बेहतर काम करने में मदद मिली। मुझे लगता है कि यदि आप यह समझाने की कोशिश करते हैं कि यह आपके लिए, टीम के लिए सहायक क्यों है, और उनके लिए कोडबेस को भाग लेने के लिए, भले ही उनकी टिप्पणी गलत हो; यदि उनकी टिप्पणी गलत है, तो यह लगभग बेहतर है क्योंकि तब वे इससे सीख सकते हैं।
दान्नो

जवाबों:


15

मेरे लिए, यहां सवाल यह है कि "आप अपने जूनियर डेवलपर्स को कोड रिव्यू से बाहर निकलने के लिए क्या देख रहे हैं?"। मेरे लिए, संभवतः सबसे महत्वपूर्ण बात यह है कि कनिष्ठ डेवलपर्स के लिए यह देखना अच्छा है कि उम्मीद से अच्छा कोड क्या है; यदि वे आपके कोड में भी समस्याएँ पाते हैं, तो यह एक बोनस है।

यदि आप कोड समीक्षा से सीखने के लिए अपने कनिष्ठ कर्मचारियों की तलाश कर रहे हैं, तो आपको सबसे महत्वपूर्ण बात यह है कि एक ऐसा वातावरण तैयार करना है जहां सीखने का महत्व हो, और समय की बर्बादी के रूप में न देखा जाए। इसका मतलब है कई चीजें:

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

इनपुट के लिए बहुत बहुत धन्यवाद, मैं इस बारे में एक विचार करूंगा और कल हमारे स्टैंड अप में इस पर चर्चा करूंगा
ग्राहम एस

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

5

हर हफ्ते निर्धारित समय पर कोड समीक्षा बैठकें करें। मैंने इसे अपने टीम के साथी को इस तरह बेचा (हम वास्तव में दोनों वरिष्ठ देव हैं, लेकिन जो भी हो):

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

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

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


अपने मस्तिष्क के एक अलग हिस्से को उलझाने के लिए +1। मेरे अनुभव में, विशेष रूप से जब मैं एक जूनियर देव था, तो बस मेरे कोड को जानने वाले ने सहकर्मी की समीक्षा की और मुझे उन विवरणों पर ध्यान दिया जिन्हें मैंने नजरअंदाज कर दिया था।
लैकोनिक ड्रॉइड

0

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

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

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

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

एक साइड नोट के रूप में, यदि आपके पास एक ऐसा वातावरण है जहां कोई भी रचनात्मक आलोचना नहीं दे सकता है या स्वीकार नहीं कर सकता है, तो आपको समस्या है।


-3

प्रक्रिया: कोई अपना परिवर्तन करना चाहता है। किसी को समीक्षक के रूप में सौंपा गया है और परिवर्तनों की समीक्षा करता है। फिर समीक्षा और निश्चित परिवर्तन परीक्षण के लिए जाते हैं।

यदि परीक्षण परिवर्तन में पेश किए गए कीड़े पाता है, तो लेखक और समीक्षक समान रूप से दोषी हैं।

तो बिना किसी टिप्पणी के समीक्षा करने से आप मुसीबत में पड़ जाएंगे जब तक कि कोड सही नहीं था।


5
1) बग के लिए "दोष" को सौंपना आपके कर्मचारियों को छोड़ने का एक शानदार तरीका है 2) वरिष्ठ कर्मचारियों द्वारा लिखे गए कीड़े को स्पॉट करने में विफल होने के लिए कनिष्ठ कर्मचारियों को दोष सौंपना दोगुना बुरा है।
फिलिप केंडल

2
@PhilipKendall यदि मेरे कोड में बग है, तो किसी को मुझे दोष देने की आवश्यकता नहीं है। मैं एक पेशेवर हूं और अपने काम के लिए वास्तविक गर्व और जिम्मेदारी लेता हूं। क्या यह किसी प्रकार की नई आयु है जहां कोई भी कुछ भी गलत नहीं करता है और सभी को भागीदारी के लिए ट्रॉफी मिलती है?
जेफ़ो

@PhilipKendall: मुझे नहीं पता कि आप कहां काम करते हैं ... मैं जहां काम करता हूं, "मैं एक बेवकूफ गलती करता हूं" और समीक्षक कहता है "और मैंने इसे याद किया" और फिर हम दोनों हंस पड़े। "दोष" का अर्थ है ज़िम्मेदारी लेना, कोने में खड़ी टोपी के साथ नहीं।
gnasher729

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