क्या सुविधा स्वामित्व एक अच्छा अभ्यास है?


22

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

रिकॉर्ड के लिए, हम SAFe के भीतर SCRUM का उपयोग करते हैं, और हमारे पास प्रति टीम के लिए पूर्णकालिक डेवलपर्स हैं, अपनी दोनों टीमों (Android और iOS) के बीच QA और उत्पाद मालिकों को साझा करते हैं।

जबकि मैं मानता हूं कि इससे छोटी अवधि में उत्पादकता बढ़ेगी, मुझे लगता है (और मुझे लगता है कि मैंने इसे विश्वविद्यालय में सीखा है) कि यह कई कारणों से एक बुरा अभ्यास है:

  • कोड समीक्षा मूल्य खो देता है।
  • न्यूनतम ज्ञान साझा करना।
  • जोखिम वृद्धि।
  • टीम के लचीलेपन का नुकसान।

क्या मैं सही हूँ या यह एक बुरा अभ्यास नहीं है?


3
मेरी तत्काल प्रतिक्रिया यह है कि अगर मॉडरेशन में काम किया जा सकता है, लेकिन आप समस्याओं के बारे में सही हैं अगर यह बहुत दूर ले जाए। दूसरी ओर, मेरा अनुभव यह है कि प्रत्येक सुविधा में पहले से ही एक वास्तविक मालिक है: अंतिम व्यक्ति जिसने इस पर काम करने में बहुत समय बिताया।
Ixrec

" एक डेवलपर को ध्यान केंद्रित करना चाहिए (और केवल एक ही) " - यदि आप एक SPOF चाहते हैं तो इसे इस तरह से करना एक अच्छा विचार है। मैंने हाल ही में एक अनुभवजन्य सिद्धांत को इस आशय के लिए तैयार किया कि जिस व्यक्ति की आपको एक निश्चित स्थिति में सबसे अधिक आवश्यकता है (" wtf? -? उसने इसे इस तरह क्यों लिखा है? ") आमतौर पर वास्तव में बिल्कुल अप्राप्य है।
जेन्स जी

@ जेन्स जी: मे, मेरे पास एक अनुभवजन्य सिद्धांत है कि जिस व्यक्ति की मुझे सबसे अधिक आवश्यकता है ("wt.2? उसने इसे इस तरह क्यों लिखा है?") मेरे लिए है, और "याद रखने वाली चीजों को याद रखने के लिए बस कारक" समय पर "0. यह अधिक उल्लेखनीय है जब मैं किसी और द्वारा अवरुद्ध कर दिया जाता हूं, क्योंकि मैं इसके गुण के बारे में झल्लाहट करता हूं, क्योंकि मौजूदा कोड को अपने गुणों के आधार पर फिर से जांचना ;-)
स्टीव जेसप

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

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

जवाबों:


37

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

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

6
पूर्ण रूप से। एक व्यक्ति-केवल स्वामित्व के साथ एकल सबसे स्पष्ट मुद्दे के रूप में बस कारक का उल्लेख करना महत्वपूर्ण है ।
जेन्स जी

1
बस कारक को लागत और YAGNI के खिलाफ व्यापार करने की आवश्यकता है, हालांकि, और क्या बस वास्तव में आपके संगठन को अपंग कर देगा या बस बहुत परेशानी पैदा करेगा। यदि यह खोने के बीच एक विकल्प था, तो कहो, सप्ताह में 3 घंटे हमेशा के लिए सुनिश्चित करें कि दो लोगों को केवल एक के बजाय एक विशेष बिट कोड के बारे में शिक्षित किया जाता है, या यह कहते हुए कि किसी को खुद को लाने के लिए 60 घंटे वन-ऑफ के रूप में मिलते हैं। आपके डेवलपर्स में से किसी एक के हिट होने की स्थिति में गति बढ़ाने के लिए, तो कई मामलों में आपने एकबारगी लागत को चुना। लेकिन बताए गए कारणों के लिए, ज्ञान सिलोस के अन्य नुकसान अधिक महत्वपूर्ण हैं (यद्यपि कम स्पष्ट)।
स्टीव जेसोप

13

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

लेकिन आप उसके बारे में बात नहीं कर रहे हैं। आप एक व्यक्ति की नई टीम बनाने की बात कर रहे हैं - इस व्यक्ति को बाकी कोड से काट कर। वह महान नहीं है। यह उनके करियर को सीमित करता है। यह परियोजना / कंपनी के लिए जोखिम जोड़ता है। यह कॉमरेडरी को परेशान करता है।

तो कुछ मॉडरेशन खराब विचार से इसे दूर करने के लिए हो सकते हैं।


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

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

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