कार्यस्थल में जोड़ी प्रोग्रामिंग कितनी आम है?


16

मुझे हमेशा से ही युग्म प्रोग्रामिंग द्वारा साज़िश की जाती रही है, लेकिन 12 साल के विकास में मैंने कभी भी इस जगह पर काम नहीं किया है कि उन्होंने इस अभ्यास को नियोजित किया है, इसलिए मुझे हमेशा संदेह होता है कि लोग इसे कैसे देखते हैं।

मुझे आश्चर्य है कि क्या यह पैसे / समय के कारण है (पॉइंटी बालों वाले मालिक एक ही कोड पर काम करने वाले एक कंप्यूटर पर दो लोगों को स्पॉट कर रहे हैं !!!! उनकी हिम्मत कैसे हुई!) या अन्य कारणों से?


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

3
नुकीले बालों वाले मालिक को समझाने के लिए बहुत मुश्किल है कि यह मूल्य है।
वाल्टर

3
नए कोड के लिए मुझे लगता है कि जोड़ी प्रोग्रामिंग का बहुत महत्व है। पहली पुनरावृत्ति में समान समय लग सकता है, लेकिन IME आप बहुत कम डिबग समय बिताते हैं। और जब दो लोग समान कोड जानते हैं, तो डीबग करना आसान हो जाता है, क्योंकि वे एक साथ स्वतंत्र रूप से देख सकते हैं। "पर्याप्त नेत्रदान को देखते हुए, हर बग पारदर्शी है।"
माइकल के

1
@ मिसेल, हमेशा नहीं, लेकिन कभी-कभी मुझे लगता है कि विरासत कोड पर जोड़ी उपयोगी हो सकती है। यह साइलो के टूटने और / या रिफ्लेक्टरिंग लागत को कम कर सकता है। उस ने कहा, मैं w / you से पूरी तरह सहमत हूं।
देवसोल

5
@ ट्झएक्सएक्स: "एक आउटपुट के लिए दो लोग खराब व्यवसाय हैं"। यह एक गंभीर रूप से त्रुटिपूर्ण तर्क है और आप इसे जानते हैं (जैसे प्रोग्रामर प्रति लाइन कोड का भुगतान करना)। जोड़ी प्रोग्रामिंग एक जटिल विषय है और इसे इतनी आसानी से खारिज नहीं किया जाना चाहिए।
मार्टिन विकमन

जवाबों:


20

मैं 15 साल के लिए एक ही टमटम है और हम हाल ही में (पिछले 12-18 महीने) चुस्त तकनीक अपनाने शुरू कर दिया है। जहां जोड़ी प्रोग्रामिंग का उपयोग किया जाता है, परिणाम कहानी / सुविधा समय w / कम दोषों पर लागू की गई है। मुझे अभी भी नहीं लगता कि इसे अक्सर पर्याप्त रूप से नियोजित किया गया है।

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

  • टीम पर साइलो की कमी
  • कम दोष के साथ उत्पादन कोड
  • प्रत्येक देव ने आमतौर पर इससे कौशल प्राप्त किया

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


महान अंतर्दृष्टि DevSolo, साझा करने के लिए धन्यवाद। मुझे लगता है कि आप शायद एक स्थिर टीम (कर्मियों का कम टर्नओवर?)
ozz

आपका स्वागत है। हमारा टर्नओवर बहुत कम रहा है ... हममें से 4 ने 15+ वर्षों के लिए एक ही कार्यालय साझा किया है, हालांकि 4 रिलोकेशन (4 इमारतों और 2 राज्यों में)!
देवसोल

विडंबना, आपका उपनाम 'देवसोलो' है;) नायब मेरे अनुभव आपके साथ सहमत हैं
क्रिसनाडेल

11

मेरा अनुमान है कि डेवलपर्स से बहुत अधिक प्रतिरोध होगा। क्या आपको याद है कि ऐसे लोगों के साथ काम करने के लिए मजबूर किया जाता है जो शायद कॉलेज या हाई स्कूल के दौरान दुनिया के सबसे प्रेरित व्यक्ति नहीं थे? वे लोग अभी भी मौजूद हैं। जब तक, आपके पास सभी "टॉप-नॉट" लोगों से बना एक टीम है, इस प्रकार के सेटअप से समूह में कुछ दुश्मनी हो जाएगी।


बहुत सच्चे पेमदास!
ozz

2
+1, दुर्भाग्य से। टीमवर्क एक ऐसा कौशल है जिसे आपको विकसित करना है, और यदि आप नहीं चाहते हैं, तो आप नहीं कर सकते। हो सकता है कि प्रोग्रामर के प्रबंधकों को क्या करना चाहिए - टीम संरचना को ढूंढें जो उन लोगों के साथ सबसे अधिक उत्पादकता को बढ़ावा देता है।
माइकल के

4
इस पेशे को अहंकार को नियंत्रण में रखने की आवश्यकता है। यह हमेशा आसान नहीं होता है, लेकिन पुरस्कार बेहद फायदेमंद होंगे।
देवसोलो

@ डेवसोल ... मेरे जवाब के साथ क्या करना है?
पेमदास

@Perndas, मैं मान रहा था, शायद गलत है, कि प्रतिरोध egos के कारण होगा। कम से कम जब मैंने इसे देखा है, तो इसका कारण प्रतीत होता है। मैंने केवल 2 को देखा है (जो मुझे याद है) देव वास्तव में इसका विरोध करते हैं। एक का अहंकार कमरे में फिट नहीं हो सकता था, दूसरे में w / आत्मविश्वास के मुद्दे थे।
१६

9

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

काश ऐसा ज्यादा होता।


4
उपयोग करने के लिए एक और उपकरण, यदि आप परिचित नहीं हैं, तो "रबर डकिंग" कहा जाता है। मूल रूप से, अपने डेस्क पर एक रबड़ की बत्तख की तरह एक वस्तु रखो (तुम्हारा वास्तव में एक खिलौना योदा का उपयोग करता है) और इसे करने के लिए समस्या की व्याख्या करें। देख c2.com/cgi/wiki?RubberDucking
DevSolo

मैं इसके बजाय मेरे बगल में बैठे व्यक्ति का उपयोग करता हूं ... हम अपने डेस्क पर सामान नहीं रख सकते।
17

गंभीरता से?
माइकल के

@ मिचेल ... आपको हमारे यहां जो नियम हैं, उनका कोई पता नहीं है। और फिर भी, कुछ अच्छी चीजें सभी बुरे को मात देती हैं ... मुश्किल से।
कैफ़ीक गीक

यह सुनने के लिए उन अनुचित नियमों प्रबंधन प्रोग्रामर पर लागू होता है दुख की बात है (यह सुंदर गूंगा है, आपको नहीं लगता कि उन्हें लगता है कि शेष राशि के लिए हमें खुश रखने के लिए अतिरिक्त प्रयास करने के लिए है?)
Zekta चैन

9

मुझे इसकी परवाह नहीं है:

1 - मुझे कोडिंग करते समय अपना संगीत सुनना पसंद है। हर कोई अपने कानों में स्लेयर ब्लास्टिंग नहीं सुनना चाहता है।

2 - मुझे लोगों के कंधों पर बहुत अशिष्टता को देखते हुए लाया गया था और जब लोग ऐसा करते हैं तो बहुत असहज हो जाते हैं।

3 - मैं बहुत तेजी से सोचता हूं और जब मैं समाधान के एक धागे पर होता हूं, जब मैं एक जवाब ढूंढना शुरू करता हूं, तो बाधित होना बहुत जरूरी आखिरी चीज है।

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

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

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

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


2
@ नोहा, पूरी तरह से # 2 पर आधारित, मुझे यकीन नहीं है कि आप जोड़ी-प्रोग्रामिंग की अवधारणा को समझ लेते हैं। विचार एक कंधे पर देखने के लिए नहीं है। विचार, जैसा कि मैंने इसका अभ्यास किया है, पीसी को मिलकर काम करने के लिए साझा करना है। यह मास्टर / दास प्रोग्रामिंग नहीं है, यह सहकर्मी प्रोग्रामिंग है। शायद बाद में इसके लिए एक बेहतर शब्द है ...
DevSolo

यह पूरी तरह से वैध है। कुछ लोग बस इसे अपने दम पर जानने के लिए अकेला छोड़ देना चाहते हैं।
मैट जेएन

और यह भी, हेडफ़ोन बात के लिए +1। मैं दिन भर धातु और / या ट्रान्स को विस्फोट करता हूं और जब लोग मुझसे सामान के बारे में बात करते हैं तो मुझे बहुत गुस्सा आता है। जब तक मेरा पसंदीदा गाना खत्म नहीं हो जाता, वे इंतजार नहीं कर सकते? : डी
22

2
@ नोहा: अपनी सूची को पढ़ते हुए, ऐसा लगता है कि आप जोड़ी प्रोग्रामिंग के बारीक बिंदुओं को याद कर रहे हैं। मैं यह नहीं कह रहा हूं कि यह सभी के लिए है, और यह निश्चित रूप से चरवाहा मोड से साझाकरण मोड में स्विच करने में समय और प्रयास लेता है। जिस तरह यह सीखने में समय लगता है कि टीडीडी को ठीक से कैसे किया जाए (या उस मामले के लिए कोई अन्य चुस्त अभ्यास)।
मार्टिन विकमन

1
जारी ...: "वरिष्ठ" अर्थ के साथ कि आप वास्तव में कोड करने वाले व्यक्ति नहीं हो सकते हैं, लेकिन अधिक जूनियर डेवलपर को सुझाव देने में मदद करते हैं। मैं भी जोड़ी प्रोग्रामिंग के विचार का सबसे बड़ा प्रशंसक नहीं हूं, लेकिन मैं देखता हूं कि यह शायद मेरे कम्फर्ट जोन से बाहर है। बहुत सारे डेवलपर्स अकेले अपने स्टेशन पर काम करना पसंद करते हैं, लेकिन मुझे यह स्वीकार करना चाहिए कि मैं शायद अधिक सीखूंगा और बेहतर समाधान पाऊंगा कि मैं दूसरे डेवलपर के साथ मिलकर काम कर रहा था। तो यह वास्तव में व्यक्तिगत आराम बनाम अधिक प्रभावी ढंग से काम करने का सवाल है।
ऐनी शूसेलर

5

जोड़ी प्रोग्रामिंग शुरू करने या कुछ गैर-तुच्छ और कठिन काम करने का एक शानदार तरीका है। अधिक नियमित और सरल कार्य अकेले किए जाते हैं।

मैंने स्टार्टअप / गेराज कंपनियों और बड़े निगमों, दोनों में जोड़ी प्रोग्रामिंग के कई सत्रों में भाग लिया। यह हमेशा ही होता है जब कुछ नया और मुश्किल होता है, यानी साल में दो बार, कुछ हफ्तों के लिए। आपकी कंपनी में ऐसा कितनी बार होता है?


कम से कम मैं चाहूंगा कि यह सुनिश्चित हो।
उल्लू

5

हमने इसे कभी नहीं कहा, लेकिन दिन में वापस, इस तरह हमने हमेशा नई समस्याओं पर हमला किया। हम एक समाधान पर शुरू करने के लिए जोड़ी बनाएंगे, लेकिन फिर आमतौर पर व्यक्तिगत रूप से विवरण को समाप्त / साफ करने के लिए तोड़ देते हैं। अब और नहीं। लगता है दुर्लभ और दुर्लभ हो गया है।


3

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

समूहों या जोड़े में कोड समीक्षा के लिए टीम को साथ लाएं और डेवलपर्स को अपना स्थान दें। यह नवीनतम एजाइल सनक का पीछा करने की तुलना में लंबे समय में बेहतर होगा।

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