एक परिपक्व टीम के लिए एक अच्छी "की गई परिभाषा" क्या दिखती है?


9

जब विभिन्न स्रोतों में की गई परिभाषाओं के उदाहरणों को देखते हैं, तो वे आमतौर पर बिंदुओं को शामिल करते हैं

  • कोड पूरा हुआ
  • इकाई परीक्षण चलते हैं
  • कोड सहकर्मी की समीक्षा की या बनती है
  • में कोड की जाँच की
  • प्रलेखन अद्यतन किया गया
  • ...

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

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

तो एक परिपक्व टीम के मजबूत परिभाषा के उदाहरण क्या हैं? वे किस तरह के बिंदुओं को आम तौर पर शामिल करते हैं?


10
जब क्लाइंट ने कॉल किया है।
मैट एस

7
कोई भी कभी भी दस्तावेज़ को अपडेट करना छोड़ना नहीं है?
जेफ़ो

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

@ मैट्स: यदि आपको क्लाइंट को कॉल करने के लिए इंतजार करना पड़ता है, तो आपके पास बहुत सारी कहानियाँ पूरी होने का इंतजार है। किसी कहानी के लिए "विकास पूर्ण" या "यूएटी के लिए तैयार" स्थिति के कुछ प्रकार होने चाहिए जो कि बोलचाल में "जहाँ तक टीम को पता है" किया जाता है।
कीथ्स

एक प्रणाली चुनें और इसके साथ रहें। इसे कभी-कभार ही करें। यह एक ऐसा मामला है जहां स्थिरता उत्पादकता में सुधार करती है। कठिन हिस्सा शुरुआत में प्रक्रिया (जीवन के लिए तानाशाह) हो रहा है जब तक कि हर कोई लाभ नहीं देखता (हाँ, हाँ, इसे बेचें)।
पॉल

जवाबों:


9

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

मेरी राय में, स्पष्ट सहित, सब कुछ सूचीबद्ध करें। शायद, गैर-स्पष्ट लोगों के लिए एक "शॉर्ट चीट लिस्ट" है अगर यह उन लोगों की मदद करता है जो छोटी सूची चाहते हैं, लेकिन नए सदस्यों के मामले पर विचार करें।

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


नई टीम के सदस्यों, नासिर के बारे में शानदार बात।
कार्सन63000

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

7

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

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

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

मुझे संदेह होगा कि की गई परिभाषा के लिए आधार के रूप में सेवा करने के लिए एक अच्छी चेकलिस्ट होगी:

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

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


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

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

1

यह वास्तव में लगता है जैसे आप एक भाग्यशाली व्यक्ति हैं:

हमारी टीम में, हमारे पास एक समान सूची है, लेकिन कोई भी इसे कभी नहीं देखता है क्योंकि वे अंक इतने स्पष्ट रूप से स्पष्ट लगते हैं

आपकी टीम पहले से ही "परिपक्व" ;-) है। लेकिन सुधार के लिए हमेशा जगह है!

आपके प्रश्न के लिए:

तो एक परिपक्व टीम के मजबूत परिभाषा के उदाहरण क्या हैं? वे किस तरह के बिंदुओं को आम तौर पर शामिल करते हैं?

अपनी सूची के शीर्ष पर, आप जोड़ सकते हैं:

विभिन्न कोड गुणवत्ता मैट्रिक्स: - अस्थिरता, अमूर्तता - LOC बनाम DLOC (दस्तावेज) - आदि ...

अंगूठे का नियम यह हो सकता है कि मीट्रिक आपकी प्रतिबद्धता से खराब न हो। शीर्ष पर आप एक "किया: withExcellence" तैयार कर सकते हैं अगर कोई वास्तव में मैट्रिक्स को बेहतर तरीके से प्राप्त करता है। हालांकि यह (मेट्रिक्स बेहतर हो जाना) आमतौर पर विकास चरणों (नई सुविधाओं) का हिस्सा नहीं है, लेकिन रिफैक्टिंग चरण हैं।

मेरी एक पिछली कंपनी में हमने "किया" की एक परिभाषा थी जिसमें कहा गया था कि आपके मैट्रिक्स को कुछ सीमा से नीचे रहने की आवश्यकता है, यदि आप ऊपर जाते हैं, तो आप अभी तक नहीं किए गए हैं। (साइक्लोमैटिक कॉम्प्लेक्सिटी को कभी भी 15 से ऊपर नहीं जाना चाहिए, जब तक कि आपके पास बहुत अच्छा बहाना न हो, जैसे जटिल बछड़े।)

वही चेकस्टाइल प्रकार के उल्लंघनों के लिए जाता है, खासकर यदि आपके पास अपनी टीमों की कोड-शैली पर जांच करने के लिए एक कस्टम नियम है। यदि आप कोडिंग मानक का उल्लंघन करते हैं, तो आपका काम अभी तक नहीं हुआ है।

तब आप केवल UnitTest को निष्पादित नहीं कर सकते थे, आप कोड कवरेज को माप सकते थे। यदि कम से कम 50% कवर नहीं हैं, तो आप नहीं किए जाते हैं। यद्यपि यह एक तरह से किया गया दोषपूर्ण है, क्योंकि आपके पास कोर / मुख्य / महत्वपूर्ण तरीकों के लिए परीक्षण होना चाहिए, और जरूरी नहीं कि आपके कोड आधार का 100% हो।

अरे हाँ ... और यदि आपके पास (आप होना चाहिए) एक सीआई सर्वर है जो स्वचालित शाखा एकीकरण के साथ है ... तो आप केवल तभी कर सकते हैं जब DEV शाखा में आपकी प्रतिबद्धता वर्तमान LIVE- शाखा के साथ विलय हो जाए और कोई त्रुटि न हो। (यूनिट टेस्ट आदि)

हम्म् ... यह सब मुझे पिछली कंपनियों / परियोजनाओं से सही याद है, जो आपकी सूची में उल्लेख नहीं किया गया है।

मुझे आशा है कि आप कुछ विचार दिया ;-)

चीयर्स,

anann


कोड गुणवत्ता मैट्रिक्स एक दिलचस्प विचार है जिसके बारे में हमने अभी तक नहीं सोचा है। बाकी (कोडिंग शैली, मर्ज के बाद CI हरा) पहले से ही "स्पष्ट भागों" का हिस्सा है।
तोबियों

1

TDD / BDD वातावरण में, "एस" (तकनीकी रूप से "कोड कम्प्लीट" की परिभाषा के रूप में, मैट एस की "वास्तव में किया गया" की परिभाषा सही है) बहुत सरल है:

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

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

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