मेरी टीम ने अपनी स्थापना के बाद से जोड़ी प्रोग्रामिंग की है, इससे पहले कि मैं वहां काम करता था, ज्यादातर "चरम प्रोग्रामिंग" -स्टाइल शॉप के हिस्से के रूप में। जोड़ी प्रोग्रामिंग डिफ़ॉल्ट स्थिति है ; लोग वास्तव में केवल सिंगलटन जाते हैं यदि कोई विषम संख्या है, या कभी-कभी जांच के लिए, विशेष रूप से वे जो शत्रुतापूर्ण उपकरणों के साथ खिलवाड़ करेंगे और इसे काम करने की कोशिश करेंगे।
"जूनियर / सीनियर" जाने का एकमात्र तरीका नहीं है। "इंटरमीडिएट / जूनियर" उपयोगी है; यह मध्यवर्ती स्तर के आदमी को उसके द्वारा किसी और से संवाद करने के लिए मजबूर करके प्राप्त ज्ञान को संश्लेषित करने में मदद करता है। "इंटरमीडिएट / इंटरमीडिएट" चुनौती दो लोग अपने ज्ञान को साझा करने, संवाद करने और एक टीम के हिस्से के रूप में काम करने के लिए एक साथ काम करते हैं। और यहां तक कि अगर आपके पास दो वास्तव में वरिष्ठ लोग हैं, तो संभावना है कि उनके पास विशेषज्ञता के विभिन्न क्षेत्र हैं और विभिन्न दृष्टिकोणों के साथ आ सकते हैं। एक बार किसी परियोजना पर किसी की अस्पष्ट "गति" के लिए ज्ञान-साझा करने के पहलू समाप्त नहीं होते हैं। बल्कि, जोड़ी प्रोग्रामिंग एक शिक्षण संगठन का प्रतीक है । नई तकनीकों और सर्वोत्तम प्रथाओं का तेजी से प्रसार हुआ।
जोड़ी प्रोग्रामिंग कोड की गुणवत्ता (कम दोष) और कोड की पवित्रता को बनाए रखने में मदद करती है (यह सिर्फ वही नहीं करती है जो इसे करने का इरादा रखती है, लेकिन यह क्या करना चाहिए ... आदर्श रूप से एक बहु-सप्ताह खरगोश नीचे जाने के बिना- छेद गलत काम कर रहा है, या दो अलग-अलग सही चीजें हैं जो बेतहाशा संघर्ष करेंगे)। यह प्रोग्रामर को अपना ध्यान बनाए रखने में मदद करता है: यहाँ सिलिकॉन वैली के केंद्र में, 80-घंटे के कार्य-सप्ताह का घर है, हम सप्ताह में सिर्फ 40 घंटे काम कर सकते हैं क्योंकि हम दिन में आठ घंटे गहन कोडिंग कर रहे हैं, चीजों को स्विच कर रहे हैं एक दूसरे के साथ बंद। (इसके अलावा, यदि आप लंबे समय तक पेयर प्रोग्रामिंग कर रहे हैं, तो आप शायद फ्लिप कर देंगे। या कम से कम बाहर जलाएँगे।) यह काम / जीवन संतुलन के लिए बहुत अच्छा है, और यह आपके संगठन को भी मदद करता है जब तेज टर्नअराउंड (विशेष रूप से कम विलंबता टर्नअराउंड) के लिए महत्वपूर्ण है।
यह सब नहीं है, पूरी तरह से, 100% आड़ू और क्रीम; मुझे लगता है कि जोड़ी प्रोग्रामिंग कभी-कभी सहज मस्तिष्क प्रक्रियाओं के मेरे आवेदन के लिए एक बाधा है जो कुछ समस्याओं पर उपयोगी हैं। हाल ही में, एक मेमोरी-लीक टास्क पर, मैंने कुछ समय दोनों के साथ और बिना जोड़े के बिताया; एक के बिना, मैं चारों ओर गड़बड़ करने और वास्तव में यह जानने के बिना प्रयोगों की कोशिश करने के लिए अधिक स्वतंत्र महसूस करता था कि किसी भी क्षण मैं क्या कर रहा था। सिंगलटन काम करने में भी कुछ फायदे हैं, एक स्पर्शरेखा पर जाने और कुछ वाइल्ड रिफैक्टरिंग (एक्सपी पद्धति में मूल्यवान) करने के लिए।
लेकिन सभी ने बताया, लाभ अब तक लागतों से आगे निकल गए हैं, और जोड़ी ने हमारे लिए शानदार काम किया है: एक बड़ी कंपनी द्वारा अधिग्रहण के माध्यम से स्टार्ट-अप चरण से, और हमारे बाद के एकीकरण से। (जिसमें से बोलते हुए, जोड़ी प्रोग्रामिंग ने विस्तार के माध्यम से और थोड़े से टर्नओवर के बावजूद संस्कृति की निरंतरता बनाए रखने में हमारी सहायता की है)।
(हम पर्ल में एक सॉफ्टवेयर उपकरण विकसित करते हैं, ~ $ 4,000- $ 40,000 सूची मूल्य।)