क्या कोड समीक्षाओं में सकारात्मक टिप्पणी करना उचित है, या यह केवल रचनात्मक आलोचना के लिए है?


36

मैं हाल ही में बहुत सारी कोड समीक्षा कर रहा हूं, और मैं सकारात्मक और नकारात्मक प्रभावों के बारे में अनिश्चित हूं और कोड समीक्षाओं में सकारात्मक और / या मजेदार टिप्पणियां डालने की व्यावसायिकता हूं।

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


हां, मुझे एहसास है कि इसका बड़े पैमाने पर संस्कृति के साथ क्या करना है, लेकिन मैं एक सामान्य उत्तर की तलाश में हूं।
कोडीन

22
सकारात्मक टिप्पणियों के साथ आप जो देखना चाहते हैं उसे सुदृढ़ करना महत्वपूर्ण है।

2
मुझे नहीं पता कि क्या यह उचित है, लेकिन कभी-कभी मैं समीक्षा में हाइकिंग कोडिंग करता हूं: जूनियर प्रोग्रामर - आपका अनकम्फर्टेड कोड है - जैसे दर्द का विभाजन।
यानिस २६'१३

मैं वास्तव में कनिष्ठ प्रोग्रामर है जो वरिष्ठ कोड की समीक्षा कर रहा है - हमारे यहां एक बहुत कठोर प्रक्रिया है, सभी कोड की समीक्षा होनी चाहिए :)
कोडमैन

जवाबों:


53

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

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


क्या आप "क्यों यह महत्वपूर्ण है" के रूप में एक नोट जोड़ सकते हैं? जब आप ऐसा करेंगे, तो मैं स्वीकार कर
लूंगा

3
यह लोगों को बताता है कि वे क्या कर रहे हैं (अच्छा कोड लिख रहे हैं) की सराहना की जाती है, और विकास पर ध्यान केंद्रित रखता है, जो कि कोड की समीक्षा सभी के बारे में है।
जोनाथन रिच

1
क्या आप इसे अपने उत्तर में जोड़ सकते हैं?
कोडमैन

2
+1 आप इस एक के लिए अच्छा जवाब बिल्ला के लायक हैं। रचनात्मक आलोचना को महत्व देने वाले स्थानों की संख्या हमेशा मुझे आश्चर्यचकित करती है। जब वे एक अच्छा काम कर रहे होते हैं, तो लोगों को बताना कि वे एक आश्चर्यजनक रूप से प्रभावी प्रेरक हो सकते हैं।
बेंजामिन ग्रुएनबाम

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

8

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

सकारात्मक: निश्चित रूप से। समीक्षा में परिभाषा के अनुसार सकारात्मक और नकारात्मक / रचनात्मक दोनों शामिल हैं।

सकारात्मक प्रतिक्रिया सभी की मदद करती है:

अंगूठे को प्राप्त करने वाले के लिए, आप उनके आत्मविश्वास को सुदृढ़ करते हैं और उन्हें अपनी सकारात्मक प्रतिक्रिया के माध्यम से ऐसा ही करने के लिए प्रेरित करते हैं।

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

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


3

मैं कहूंगा कि टिप्पणी को साफ-सुथरा और बिंदु पर रखें, बिल्कुल संस्कृति के कारण।

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


1
अच्छी बात। टिप्पणी करने में "मजाकिया" होने के नाते आसानी से उलटा पड़ सकता है, खासकर बहुभाषी, बहु-सांस्कृतिक वातावरण में।
डेविड नवरे

2

एक कोड समीक्षा में टिप्पणी करना प्रबंधन है

टिप्पणियों को प्रबंधन का उपकरण मानें

कोड समीक्षा में टिप्पणियों को सम्मिलित करना प्रबंधन का एक रूप है। जैसे, इसे प्रबंधन के एक उपकरण के रूप में संपर्क किया जाना चाहिए।

टिप्पणी करते समय प्रबंधकीय प्रथाओं का उपयोग करें

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

वातावरण

संस्कृति

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

अंदाज

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

नेतृत्व

बुनियादी बातों

टिप्पणी करते समय विचार करने के लिए नेतृत्व के तीन मुख्य स्तंभ हैं। अर्थात् वे दृष्टि, संचार और निर्णय हैं।

Vision

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

Communication

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

Judgement

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

आयोजन

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

को नियंत्रित करना

प्रबंधित किए जा रहे लोगों के कार्यों को नियंत्रित करना एक नाजुक प्रक्रिया है। दृढ़ होते समय यह भी ध्यान में रखा जाना चाहिए कि लोग महत्वपूर्ण हैं। दूसरों को नियंत्रित करते समय उपयोग करने के लिए कई प्रबंधकीय कौशल हैं। ये कौशल राजनीतिक, वैचारिक, पारस्परिक, नैदानिक ​​और तकनीकी हैं।

राजनीतिक

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

वैचारिक

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

पारस्परिक

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

Mentoring

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

Constructive Criticism

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

"Harpooning"

"हार्पूनिंग" है जब आप किसी को जमीन पर लाक्षणिक रूप से काटते हैं। यह बिना किसी प्रत्यावर्तन के कदम से कदम दर कदम उन्हें तोड़कर किया जाता है जब तक कि वे उठने में असमर्थ महसूस करते हैं। यदि आप किसी व्यक्ति की कोड समीक्षा या अन्य जगहों पर उसे परेशान करते हैं तो आप उनका सहयोग खो देंगे। किसी को ज्यादा नीचे तोड़ने से बचना जरूरी है।


कार्यकारी सारांश

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


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

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

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

0

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

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

गलतियाँ, कीड़े, और खराब कोडिंग होगी। उन्हें गैर-व्यक्तिगत तरीके से इंगित करें, और उन्हें अपेक्षा के अनुसार व्यवहार करें।

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

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