मैं स्रोत नियंत्रण का उपयोग करने के लिए चरवाहे प्रोग्रामर को कैसे मना सकता हूं?


62

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

  • टीएफएस का उपयोग करने के लिए टीम का उपयोग नहीं किया जाता है । मेरे पास 2 प्रशिक्षण सत्र हैं, लेकिन केवल 1 घंटे आवंटित किया गया था जो अपर्याप्त है।
  • टीम के सदस्य सर्वर पर कोड को सीधे संशोधित करते हैं। यह कोड को सिंक से बाहर रखता है। तुलना की आवश्यकता सिर्फ यह सुनिश्चित करने के लिए है कि आप नवीनतम कोड के साथ काम कर रहे हैं। और जटिल मर्ज की समस्या उत्पन्न होती है
  • इन समस्याओं में से किसी को भी ठीक करने के लिए डेवलपर्स द्वारा प्रस्तावित समय अनुमानों को समय की आवश्यकता होती है। इसलिए, अगर मैं कहता हूं कि इसे नॉन 10 गुना अधिक समय लगेगा ... मुझे लगातार इन मुद्दों को समझाना होगा और खुद को जोखिम में डालना होगा क्योंकि अब प्रबंधन मुझे "धीमा" समझ सकता है।
  • सर्वर पर भौतिक फाइलें अज्ञात तरीकों से ~ 100 फाइलों से अधिक भिन्न होती हैं। विलय से परियोजना के ज्ञान की आवश्यकता होती है और इसलिए, डेवलपर सहयोग जिसे मैं प्राप्त करने में सक्षम नहीं हूं।
  • अन्य परियोजनाएं सिंक से बाहर हो रही हैं। डेवलपर्स के पास स्रोत नियंत्रण का अविश्वास जारी रहता है और इसलिए स्रोत नियंत्रण का उपयोग न करके समस्या को जटिल करता है।
  • डेवलपर्स का तर्क है कि स्रोत नियंत्रण का उपयोग करना बेकार है क्योंकि विलय त्रुटि प्रवण और कठिन है। यह बहस करने के लिए एक कठिन बिंदु है, क्योंकि जब स्रोत नियंत्रण इतनी बुरी तरह से गलत इस्तेमाल किया जा रहा है और स्रोत नियंत्रण लगातार बायपास किया जाता है, तो यह वास्तव में त्रुटि प्रवण है। इसलिए, साक्ष्य उनके विचार में "खुद के लिए बोलता है"।
  • डेवलपर्स का तर्क है कि TFS को दरकिनार करते हुए सीधे सर्वर कोड को संशोधित किया जाता है। यह बहस करना भी मुश्किल है। क्योंकि समय के साथ शुरू करने के लिए कोड को सिंक्रनाइज़ करने के लिए आवश्यक मर्ज । इसे 10 + परियोजनाओं द्वारा गुणा करें जिन्हें हम प्रबंधित करते हैं।
  • स्थायी फ़ाइलों को अक्सर वेब प्रोजेक्ट के समान निर्देशिका में संग्रहीत किया जाता है। इसलिए प्रकाशन (पूर्ण प्रकाशित) इन फ़ाइलों को मिटा देता है जो स्रोत नियंत्रण में नहीं हैं। यह स्रोत नियंत्रण के लिए अविश्वास भी चलाता है। क्योंकि "प्रकाशन परियोजना को तोड़ता है"। इसे ठीक करना (सॉल्यूशन फ़ाइलों को सॉल्यूशन सबफ़ोल्डर्स से बाहर ले जाना) बहुत समय लेता है और डिबगिंग करता है क्योंकि ये स्थान web.config में सेट नहीं होते हैं और अक्सर कई कोड बिंदुओं पर मौजूद होते हैं।

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

इस स्थिति में क्या किया जा सकता है?


24
लापता जानकारी का मुख्य अंश: टीम में आपकी भूमिका क्या है?
मोरों

116
क्या जीवन वास्तव में इतना समय बर्बाद करने के लिए पर्याप्त है जैसे कहीं काम कर रहा है? आपके पास सहकर्मियों की एक टीम है जो एक सक्षम और पेशेवर तरीके से काम करने की इच्छा नहीं रखते हैं, और प्रबंधन जो परवाह नहीं करते हैं। आप इससे बेहतर कर सकते हैं।
कार्सन 63000 22

8
स्रोत नियंत्रण के लिए उपयोग नहीं किए जाने के बारे में: यदि यह एक वास्तविक दुनिया की परियोजना है, तो यह स्रोत नियंत्रण के आदी होने का समय है।
कॉम्पैन

14
या तो अपने कार्यस्थल को बदलें, या अपने कार्यस्थल को बदलें । जो भी आप तय करते हैं, संकोच न करें।
गोरान जकोव

11
एक डेवलपर का विचार जो पहले स्रोत नियंत्रण का उपयोग करता था और उसे प्यार नहीं करता था वह मेरी समझ से लगभग परे है। शायद उन्होंने इसका गलत इस्तेमाल किया?
jhocking

जवाबों:


92

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

आज या पिछले 20 वर्षों से किसी भी पेशेवर डेवलपर ने स्रोत नियंत्रण का विरोध नहीं किया है। एक बार, लगभग 30 या 40 साल पहले, जब कंप्यूटर धीमे थे, स्रोत नियंत्रण यहां तक ​​कि धीमी और कार्यक्रमों में एक 500 लाइन फ़ाइल शामिल थी, यह एक दर्द था और इसका उपयोग न करने के वैध कारण थे। ये आपत्तियां केवल सबसे खराब प्रकार की काउबॉय से आ सकती हैं जिनके बारे में मैं सोच सकता हूं।

क्या उन पर मजबूर सिस्टम उनके जीवन को किसी तरह से मुश्किल बना रहा है? पता करें कि यह क्या है, और आपत्ति को अमान्य करने के लिए सिस्टम को बदलें। तब तक दोहराएं।

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

विलय से न केवल परियोजना का एक बड़ा ज्ञान होगा

उस मामले में, मुझे डर है कि आप बिना किसी चप्पू के लौकिक नाले के ऊपर हैं। यदि विलय एक विकल्प नहीं है, तो न तो इसे लागू नहीं कर रहा है, इसलिए आप कह रहे हैं कि अब आप उन विशेषताओं को नहीं जोड़ सकते हैं जो आपके पास पहले से ही एक शाखा में हैं (शब्द शिथिल रूप से प्रयुक्त)।

अगर मैं तुम होते तो मैं अपने करियर की संभावनाओं पर पुनर्विचार करता ...


13
-1, "कोई पेशेवर डेवलपर आज, या पिछले 20 वर्षों से, स्रोत नियंत्रण का विरोध नहीं किया है।" - कुल बकवास, और पूरी तरह से हठधर्मी। मुझे संदेह है कि आप 'पेशेवर' को 'आपके जैसे विकसित करने वाले' के रूप में परिभाषित कर रहे हैं।
ग्रैंडमास्टरबी

68
@Grandmaster: क्या आप कह रहे हैं कि प्रोग्रामर के लिए सोर्स कोड कंट्रोल का इस्तेमाल न करना स्वीकार्य है, या आप मेरे बहुत ज्यादा हठधर्मी होने पर आपत्ति जता रहे हैं? उन सभी चीजों के बारे में जो मैं सोच सकता हूं कि 2011 में बातचीत के लिए खुला नहीं है, स्रोत नियंत्रण मेरी सूची में सबसे ऊपर होगा। ऐसा प्रतीत होता है कि 27 अन्य लोग मुझसे सहमत हैं। प्रत्येक रिलीज़ के साथ एक डीवीडी जलाया जाता है, या किसी दिनांक के साथ फ़ोल्डर में स्रोत ट्री की एक प्रतिलिपि यकीनन स्रोत नियंत्रण है।
मटनज़

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

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

4
@MattThrower: भले ही कोई डेवलपर अपने आप काम कर रहा हो, फिर भी मैं एक स्थानीय SVN का सुझाव दूंगा। ईमानदारी से, केवल "आश्वस्त" (यानी, मुझे विश्वास है कि निर्णय लेने वाला व्यक्ति ज्ञान की स्थिति से ऐसा कर रहा है) तर्क मैंने कभी स्रोत नियंत्रण के खिलाफ सुना है यह है: "हमें ऐतिहासिक अस्तित्व की अनुमति देने से मना किया गया है हमारे कोड की प्रतियां, भले ही किसी दिन वर्तमान कॉपी दूषित हो जाए, जिससे हमें अपना सारा काम खोना पड़े। " मुझे वह तर्क पसंद नहीं है, लेकिन मैंने सुना है कि यह कभी-कभी शीर्ष गुप्त सरकारी काम के साथ होता है।
ब्रायन

31

कभी-कभी, वास्तविक दुनिया के मुद्दे इसे उपयोग करने के लिए अव्यावहारिक बनाते हैं।

असत्य।

यदि स्रोत नियंत्रण का उपयोग करने के लिए टीम का उपयोग नहीं किया जाता है, तो प्रशिक्षण समस्याएं पैदा हो सकती हैं

स्रोत कोड नियंत्रण और प्रशिक्षण के साथ सब कुछ करने के लिए कुछ नहीं करना है। प्रशिक्षण आसान, सस्ता, कुशल और कुछ ही घंटों में किया जाता है। स्रोत कोड नियंत्रण का उपयोग करना महंगा, जोखिम भरा, अक्षम और समस्याएं हमेशा के लिए बनी रहती हैं ।

यदि टीम का सदस्य सर्वर पर कोड को सीधे संशोधित करता है, तो विभिन्न समस्याएं उत्पन्न हो सकती हैं।

वह प्रशिक्षण मुद्दा है। फिर। स्रोत कोड नियंत्रण और प्रशिक्षण के साथ सब कुछ करने के लिए कुछ नहीं करना है।

डेवलपर्स के पास स्रोत नियंत्रण का अविश्वास जारी रहता है और इसलिए स्रोत नियंत्रण का उपयोग न करके समस्या को जटिल करता है

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

इस प्रकार की स्थिति में संभवतः क्या किया जा सकता है?

स्रोत कोड नियंत्रण का उपयोग करने के तरीके के बारे में सभी को प्रशिक्षित करना शुरू करें।

अपडेट करें

डेवलपर्स का तर्क है कि सीधे स्रोत नियंत्रण को संशोधित करने से समय की बचत होती है।

चूंकि वे गलत हैं, इसलिए यह प्रदर्शित करने के लिए डेटा एकत्र करना महत्वपूर्ण है कि यह कितना गलत है।

हालांकि, दुख की बात है कि प्रबंधन तत्काल प्रतिक्रिया का इनाम देता है जो लंबे समय में महंगा है।

इस इनाम प्रणाली को पार करने का एकमात्र तरीका है

ए) को पहचानें दीर्घकालिक लागत है कि उच्च स्पष्ट अल्पावधि मूल्य से।

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

ग) एक संशोधित इनाम प्रणाली की सिफारिश करें जो अल्पकालिक त्वरित प्रतिक्रिया के बजाय दीर्घकालिक मूल्य को महत्व देता है। अलग-अलग कारणों से सिर पर अलग-अलग पैट।

डी) लंबी अवधि के मूल्य के लिए आपको मिले पुरस्कारों में ट्रेन लोगों को; मूल्य जो अल्पकालिक त्वरित प्रतिक्रिया से स्पष्ट रूप से बड़ा है।


मैंने प्रशिक्षण का सुझाव दिया है। एक से अधिक बार, कई बार। हमारे पास प्रशिक्षण सत्र थे, दो या तीन, लेकिन वे असफल रहे। मुझे केवल TFS के सभी में प्रशिक्षित करने के लिए केवल 1 घंटे का समय दिया गया था। और के माध्यम से पालन गरीब था। मुझे पुराना "गाजर का पालन करें" दिया गया है, प्रशिक्षण आ रहा है ... लेकिन कुछ भी नहीं होता है। मैं इस मुद्दे को आगे बढ़ाने की कोशिश करता हूं, लेकिन इतने प्रयासों के बाद भी मैं बुरे आदमी की तरह महसूस करना शुरू कर देता हूं क्योंकि मैं यहां से अजीब आदमी हूं। मैंने उन्हें बताया है कि क्या गलत है, लेकिन वे बस असहमत हैं। प्रबंधन का कहना है "
वीईए

3
"वे विफल रहें"। असत्य। उन्हें एक इनाम प्रणाली से कम आंका गया था जो बुरे व्यवहार को पुरस्कृत कर रहा है। अधिक प्रशिक्षण की आवश्यकता है। केवल, प्रशिक्षण को इनाम प्रणाली को ठीक करने की आवश्यकता है, न कि केवल यह बताएं कि उपकरण में कैसे बिंदु और क्लिक करें।
२.२४

1
@ P.Brian.Mackey: "हमारे पास प्रशिक्षण सत्र थे, दो या तीन"। पूरी कहानी सम्‍मिलित करने के लिए कृपया अपने प्रश्‍न को अपडेट करें । सुनिश्चित करें कि आपका विवरण प्रश्न में पूर्ण है। किसी विशिष्ट उत्तर पर टिप्पणियों में नए तथ्यों का परिचय न दें।
S.Lott

1
ठीक है, प्रशिक्षण के प्रति जुनून गलत है - इसका प्रबंधन / नीति / पर्यावरण मुद्दा जिसमें प्रशिक्षण एक पहलू है लेकिन दुनिया में सभी प्रशिक्षण का कोई उपयोग नहीं है यदि वे इसे अनदेखा कर सकते हैं जबकि वे प्रशिक्षण की परवाह किए बिना (सिंक या तैरना) सीखेंगे। अगर वे कुछ और नहीं कर सकते।
Murph

6
वीएलएसआई वर्ग के मेरे एक सहपाठी ने एक ट्रांजिस्टर को कुछ नैनो-मीटर चौड़ा और कुछ मील (हाँ मील!) लंबा बनाया जो विनिर्देशों को फिट करता है। मेरे लिए उनका जवाब था "मुझे पता है कि मेरा काम करता है।" मुझे कॉलेज में वापस जाने के लिए अधिक सहिष्णुता थी। अब मुझे अपनी टीम पर किसी के साथ अंत करने से नफरत होगी। मेरा मानना ​​है कि कुछ टीमों को प्रशिक्षित किया जाना चाहिए, और कुछ को अलविदा करना चाहिए। किसी की नौकरी / सहकर्मियों से नफरत करने के लिए जीवन बहुत छोटा है।
जॉब

17

स्रोत / संस्करण नियंत्रण का उपयोग करने से इनकार करने वाले डेवलपर्स को निकाल दिया जाना चाहिए, जैसा कि सरल है। जैसा कि आप पहले ही इंगित कर चुके हैं, निहित जोखिम और लागत का उपयोग नहीं करने से यह किसी भी ओवरहेड का उपयोग नहीं करता है, यह कई, कई परिमाण के आदेशों द्वारा होता है। इसके खिलाफ बहस करने की कोशिश करने वाला कोई भी व्यक्ति सॉफ्टवेयर विकास में शामिल नहीं होना चाहिए और मैं ऐसे लोगों के साथ काम करने से इनकार कर दूंगा।


10

हमने पहले समस्या को हल किया, हमारे स्रोत नियंत्रण को देव में बनाने के लिए एक निरंतर एकीकरण सर्वर की स्थापना की। दूसरा, केवल पढ़ने के लिए फ़ोल्डर एक्सेस को लॉक करें, लोगों को सोर्स कंट्रोल को दरकिनार करने और फाइलों को सीधे संशोधित करने से रोकने के लिए।

यह उन दिनों का PITA है जहाँ आप बग को स्थानीय रूप से पुन: पेश नहीं कर सकते हैं, लेकिन इसके अलावा यह काम करने वाले, चेकइन करने और आगे बढ़ने में सक्षम है, यह जानकर कि यह सीआई सर्वर द्वारा स्वचालित रूप से देव में धकेल दिया जाएगा।


अच्छा सुझाव, वास्तव में बढ़िया। लेकिन, प्रबंधन ने मुझे सीआई पर लाल बत्ती दे दी। VM या भौतिक सर्वर के लिए कोई फंड नहीं। सेटअप के लिए कोई समय आवंटित नहीं किया गया है।
पी। ब्रायन। मैके २

7
एक CI सर्वर के लिए फंड? यह खुद फंड करता है। यदि आवश्यक हो तो वीडियो के साथ मैन्युअल तैनाती करने में कितना समय लगता है, यह दिखाएं। फिर प्रति दिन यह कई बार समझाया जाता है। कई डेवलपर्स टाइम्स। और इसे एक महीने में बचाया समय में खुद के लिए भुगतान करना चाहिए।
कैफीक नेक

6
नरक, अपनी मशीन पर फिर जेनकिंस चलाएं।
मैथ्यू फ्लिन

5
फ़ोल्डर संरचना को बंद करने के लिए +1। उन्हें अपने सर्वर की अनुमति ले लें और उन्हें सही मार्ग (स्रोत नियंत्रण के माध्यम से) का पालन करना होगा
मौरो

8

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

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

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

यदि वह विफल रहता है, तो भागो।


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

2
छाया प्रति के साथ एक साझा नेटवर्क फ़ोल्डर संस्करण नियंत्रण का एक रूप है। सुनिश्चित करने के लिए एक बहुत ही खराब रूप, लेकिन यह एक है।
जोएरी सेब्रचेट्स ने

4
मैं हमेशा पूछता हूं कि एक साक्षात्कार में स्रोत कोड नियंत्रण प्रणाली क्या है। जब एक कंपनी के सीटीओ ने कहा "क्या है" तो मैं भाग गया।
ज़ाचरी के

6

आपके पास अपनी स्थिति को पहचानने और ठीक करने के लिए स्पष्ट रूप से तकनीकी कौशल हैं, आपकी समस्याएं मानवीय और प्रक्रिया से संबंधित हैं।

लोग दृष्टि की तुलना में उदाहरण के लिए बेहतर प्रतिक्रिया देते हैं, इसलिए मैं खुद इसे "फिक्सिंग" करने का सुझाव दूंगा:

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

फिर अपने सहकर्मियों और प्रबंधन को एक कमरे में खींचें और उन्हें दिखाएं कि 21 वीं शताब्दी में सॉफ्टवेयर विकास कैसा दिखता है। अपनी वर्तमान प्रणाली के साथ विफलताओं का वर्णन करें और दिखाएं कि वे आपकी नई संरचना के साथ कैसे समाप्त हो गए हैं।

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

यदि यह सब बहुत अधिक प्रयास जैसा लगता है (जैसा कि हर दूसरे उत्तर के बारे में कहा गया है) - एक और नौकरी प्राप्त करें। वे आपके समय के लायक नहीं हैं।


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

3
@ P.Brian.Mackey - कभी-कभी आपको बस सभी BOFH पर जाना होगा । एक बार जब मैं छुट्टी पर गया और मेरे लिए काम करने वाले एक ठेकेदार ने डेटिंग वेबसाइटों पर पूरे हफ्ते का समय बिताया । जब मैं वापस गया और यह पता चला, तो उसके कंप्यूटर ने एक अकथनीय टीसीपी / आईपी एक्सेस समस्या विकसित की जिसे मैं ठीक करने में असमर्थ था । क्या आपके बॉस ने सर्वर पर सीधे हैक करने के लिए अपने अधिकारों को छीन लिया है और उन्हें तैनाती के लिए टीएफएस के माध्यम से जाने के लिए मजबूर कर रहे हैं और वे जल्द ही अपने कार्य को साफ कर देंगे या छोड़ देंगे, जिस तरह से आप जीतते हैं।
मार्क बूथ

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

4

चरण 1 - आग अक्षम प्रबंधक!

यदि आप चरण 1 नहीं कर सकते हैं, तो प्रबंधक को केवल स्क्रिप्ट पर नियंत्रण करने के लिए परिनियोजन को सीमित करने का प्रयास करें जो स्रोत नियंत्रण से लिए गए हैं। यदि डेवलपर्स (जिनके पास प्रोडक्शन पर प्रोडक्शन का अधिकार नहीं होना चाहिए, तो चरण 1 देखें यदि वे ऐसा करते हैं) चाहते हैं कि उनका सामान तैनात है तो इसे स्रोत नियंत्रण से आना होगा। जब हमने पहली बार डेटाबेस सामान के साथ-साथ C # कोड का उपयोग करने के लिए swtiched स्रोत नियंत्रण का उपयोग न करने के हमारे मुद्दे को काफी अच्छी तरह से हल किया।


4

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

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


3

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

आपको एक साफ संस्करण बनाने के लिए प्रोजेक्ट को कांटा करने के लिए लुभाया जा सकता है जबकि गंदा संस्करण उन दैनिक बगफिक्स के साथ व्यवहार किया जाता है; लेकिन सबसे संभावित परिणाम यह है कि कई महीनों के बाद, जब "स्वच्छ" संस्करण समाप्त हो जाता है, तो कोई भी आपको यह नहीं बता सकता है कि कांटे के बाद से कौन से बगफिक्स और बदलावों को निर्वासित किया गया है (क्योंकि वही मानसिकता जो लोगों को ऐसी प्रथाओं में फिसलने देती है, यह संभावना नहीं है कि वे अपने द्वारा किए गए परिवर्तनों के बारे में रिकॉर्ड रखते हैं)। स्वच्छ संस्करण पुराना है, गंदा संस्करण अभी भी थोड़े काम करता है, तो क्या होता है? साफ संस्करण को डंप किया जाता है, सही साबित होता है।


2

स्पष्ट के अलावा एक नई नौकरी खोजें, मुझे लगता है कि इसका उत्तर उपरोक्त सभी से अधिक है।

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

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


2

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

मेरे अनुभव से, पहला कदम जो तुरंत होना चाहिए, उत्पादन सर्वर के साथ स्रोत नियंत्रण को सिंक करना है। यह कदम उत्पादन कोड की एक प्रति लेने और इसे चेक करने में उतना ही सरल हो सकता है - यह है कि ठेस कोड संभवतः आधार है जो आपकी टीम विकसित कर रही है। इस चरण को कोड के साथ मर्ज द्वारा संवर्धित करने की आवश्यकता हो सकती है जो मौजूदा स्रोत नियंत्रण प्रणाली में चारों ओर तैर रहा है। कोड को देव से एकीकरण / क्यूए (या दोनों) तक प्रवाहित किया जाना चाहिए, और फिर चरण या चरण / उत्पादन के लिए।

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

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


1

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


1

आपकी अपनी पवित्रता के लिए, मैं सुझाव दूंगा कि आप अपनी मशीन पर Git या कोई अन्य DVCS स्थापित करें ताकि आप परिवर्तनों को ट्रैक कर सकें। अपने सहकर्मियों के परिवर्तनों को अक्सर अपने भंडार में आयात करें। संघर्षों को सबसे अच्छा के रूप में हल कर सकते हैं। यह आपको अपने सहकर्मियों के पागलपन से आंशिक रूप से ढाल देगा।

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


0

उनके विकास के अलावा किसी भी सर्वर को बंद कर दें। कॉन्फ़िगरेशन प्रबंधक का उपयोग करें। नियमित पहचान योग्य बिल्ड (टैग के विरुद्ध) करें। हर परिवर्तन सेट को टैग करें (यानी प्रति बग 1 परिवर्तन सेट)। हमने प्रत्येक बिल्ड पर एक टैग भी लगाया है। देव और उत्पादन (न्यूनतम पर) के बीच एक क्यूए प्रकार प्रणाली है। सही बिल्ड टैग का उपयोग करके QA सिस्टम का निर्माण करता है। उन्हें "निर्माण तोड़ने" के लिए दु: ख दें।

मैं कभी भी ऐसी स्थिति में नहीं चला हूँ जहाँ मैं एक समस्या को फिर से बना / ठीक नहीं कर सका (जो केवल उत्पादन पर दिखाता है)। हां, मैंने एक विकास प्रणाली को फिर से बनाने के लिए समस्या होने में घंटों बिताए हैं (इसके अलावा जब आप यह पता लगाते हैं कि आप इसे अपने नियमित परीक्षण में जोड़ सकते हैं)।

हमने काउबॉय ठेकेदारों के एक समूह के साथ एक परियोजना की, जिन्होंने उन सभी बुरे कामों को किया। मैं उसके बाद 4 सप्ताह तक सफाई करता हूं और फिर उपरोक्त प्रथाओं को लागू करता हूं। परियोजना के बाद से उन चीजों में से कोई भी समस्या नहीं है।


-3

उद्धरण:

टीएफएस का उपयोग करने के लिए टीम का उपयोग नहीं किया जाता है

TFS Microsoft टीम फ़ाउंडेशन सर्वर हो जाता है।

मेरी पहली वृत्ति कहती है: "यह Microsoft Visual SourceSafe की नवीनतम रिलीज़ है"

मैं आप सहकर्मियों की तरफ होगा और वास्तव में इसके खिलाफ जाऊंगा।


1
टीम फाउंडेशन सर्वर SourceSafe की तुलना में एक बहुत अलग जानवर है। तुलना उचित नहीं है।
पाप

मेरे तर्क का मूल TFS के साथ बहुत कम है। मौलिक समस्या किसी भी प्रकार के स्रोत नियंत्रण का उपयोग करने की एक ऐतिहासिक कमी है।
पी। ब्रायन। मैके

क्या वे जानते हैं कि यह अलग है? मैंने नहीं किया।
नील्स बसजेस

@ हिल्स बसजे - क्या वे जानते हैं कि क्या अलग है?
पी। ब्रायन। मैके

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