एक दोस्त के साथ एक छोटी सी परियोजना का परित्याग करने के लिए मुझे कौन से कारक निर्धारित करने चाहिए कि मैं कैसे प्रभावित करूं? [बन्द है]


30

मैंने अपने आप को एक कठिन स्थान पर देर से पाया है। अब लगभग 8 महीने के लिए एक प्रोग्रामिंग दोस्त के साथ एक गेम पर काम कर रहे हैं। हम दोनों ने पिछले साल के अगस्त के आसपास प्रोग्रामिंग के लिए नए लोगों के रूप में शुरुआत की, वह एक दूसरे वर्ष के सीएस छात्र हैं, मैं व्यापार द्वारा एक आईटी समर्थन तकनीक हूं और पुस्तकों और ऑनलाइन सदस्यता के साथ स्वयं-शिक्षित प्रोग्रामर हूं।

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

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

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

हमारी परियोजना में मेरी निहित रुचि है, हालांकि मुझे यकीन नहीं है कि मैं अपने साथी के साथ काम करना जारी रख सकता हूं। मुझे लगता है कि मेरे लिए तीन विकल्प खुले हैं।

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

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


3
एक सहमत कोडिंग शैली दिशानिर्देश और एक कोड समीक्षा प्रक्रिया के साथ आने के बारे में क्या? किसी भी विवादास्पद मुद्दों से बचें, बस उस मानक में पर्याप्त रूप से डालें जो आप दोनों इसके लिए सहमत हो सकते हैं।
ब्रैंडिन

25
चौथा विकल्प (यदि यह एक अनुज्ञेय लाइसेंस के तहत है): कोड को कांटा और अपने दम पर काम करना जारी रखें।
रॉबर्ट हार्वे

4
कोड कैसे लाइसेंस है? आप इसे कांटा और किसी और के साथ जारी रख सकते हैं?
Jaydee

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

3
कोई फर्क नहीं पड़ता कि आप क्या तय करते हैं, कोड की 10k लाइनें खो नहीं जाती हैं: सोचें कि आपने उन्हें लिखने से क्या सीखा; कोडिंग के दौरान आपके पास जो आनंद था, उसके बारे में सोचें; और, आपने जो भी सीखा है उसे (जबरन) तीसरे / चौथे / n + 1 वें पुनरावृत्ति में लागू करने से यह वर्तमान संस्करण से बेहतर हो सकता है। इसके अलावा यदि आप जानते हैं कि कोड की 10k लाइनें क्या लिखनी हैं , तो आप अपेक्षाकृत कम समय में 10k लाइनें लिख सकते हैं; अक्सर यह जानने के लिए कि चीजों को काम करने के लिए क्या लिखना है, जो कि ज्यादातर समय लेता है।
कैस्पर वैन डेन बर्ग

जवाबों:


26

भेज दिया, अपूर्ण कोड व्हाइटबोर्ड पर सही कोड से बेहतर है जो कभी भी शिप नहीं होता है।

ऐसा कहे जाने के बाद...

आप में से अधिक अनुभव वाले हैं, या जो समान स्थितियों में हैं। तुमने क्या किया? आम मेरे करने के लिए क्या सिफारिश करेंगे?

मैं निम्नलिखित पर विचार करूंगा।

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

इस परियोजना पर प्रोग्रामिंग बंद करो, मेरे कोड की लगभग 10,000 पंक्तियों और अनगिनत घंटों को डिजाइन पर छोड़ देना और कोशिश करना और अपने दम पर एक नया प्रोजेक्ट ढूंढना

उपरोक्त पर विचार करें, आवश्यक अतिरिक्त कार्य के माध्यम से सोचने की कोशिश करें।

आपको अपनी प्राथमिकताओं का पता लगाने और यह निर्धारित करने की आवश्यकता है कि क्या इस व्यक्ति के साथ काम करने से संबंधित मुद्दे इसके लायक हैं। हम आपके लिए इसका पता नहीं लगा सकते।

मेरे साथी ने इसे आज रात खो दिया है, और यह स्पष्ट कर दिया है कि कोई बात नहीं, कोई बात नहीं, बेंचमार्क नहीं, कोई बात नहीं, सामान्य अभ्यास, कोई भी अकाट्य प्रमाण नहीं है, उसका कोड उस तरह से रहेगा जैसे उसने पहले बनाया था।

आप जानते हैं कि आप इस प्रकार के व्यक्ति के साथ काम नहीं करना चाहते हैं।

आप शायद इस तरह का एक प्रोजेक्ट कर रहे हैं क्योंकि आप प्रोग्रामिंग सीखना चाहते हैं और शिल्प में ही लालित्य पाते हैं।


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

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

1
दोस्त को खोने का सबसे तेज़ तरीका उनके साथ काम करना है!

58

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

बहुत स्मार्ट लोगों के साथ मेरे अनुभव में, यदि आप उन्हें बताते हैं कि वे जो कुछ कर रहे हैं, वह आदर्श से कम है, तो वे या तो (1) आपको सही और आसान समझने का कारण देंगे कि वे जो कर रहे हैं वह वास्तव में सही क्यों है, (2) बताएं आप जानते हैं कि यह गलत है, लेकिन उनके पास प्राथमिकता के कारण इसे ठीक करने का समय नहीं है, या (3) इसे इंगित करने और इसे ठीक करने के लिए धन्यवाद।

सीखने से इनकार करना एक सॉफ्टवेयर डेवलपर की सबसे खराब विशेषता के बारे में है। उसे छोड़ दो। जीवन उस पर अपना समय बर्बाद करने के लिए बहुत छोटा और कीमती है।


धन्यवाद ज्ञानी जी, मैं समय-समय पर # 2 देखता हूं, हालांकि हमारे पास कोई वास्तविक समय नहीं है, इसलिए मुझे यकीन नहीं है कि यह एक प्रतिक्रिया के लिए कितना वैध है। मैं इस पर सोने जा रहा हूं और देख रहा हूं कि मैं एएम में क्या सोच रहा हूं, यह निर्णय लेने से पहले बहुत विचार-विमर्श की जरूरत है।
डगलस गास्केल

1
"अगर यह ऐसी स्थिति है, तो भाग जाओ।" - और सामान्य तौर पर, यदि आप आम सहमति के करीब नहीं पहुंच सकते हैं कि आपके लक्ष्य क्या हैं तो आप किसी के साथ सहयोग नहीं कर सकते। लगता है कि वह आपके "कोड" को बदलने के लिए आपकी सहमति नहीं देगा, कोई बात नहीं।
स्टीव जेसोप

खैर, ऐसा लगता है कि समय के दबाव में बदलाव से इंकार करने का कारण नहीं है।
gnasher729

1
यह एक बेहतरीन जवाब है। आप किसी को अपने तरीके बदलने के लिए मजबूर नहीं कर सकते हैं! हालाँकि, ऐसा लगता है कि इस परियोजना में बहुत समय और प्रयास है, जो आपके साथ-साथ आपके अंत में भी है। मेरी सोच यह हो सकती है कि वह अपना कोड बदलना नहीं चाहेगा क्योंकि वह उस तरीके को नहीं समझता है जैसा आपको लगता है कि ऐसा करना चाहिए। यह या तो वह है या वह प्यासा है, लेकिन अगर यह है कि वह इसे समझ नहीं पा रहा है, तो ध्यान रखें कि वह निराश हो सकता है और सोचें कि आप उससे "बात कर रहे हैं", भले ही आप बहुत अच्छी तरह से मतलब हो। मेरी सलाह है कि जब आप दोनों इसके साथ हों, तो उसके साथ इस पर बात करने की कोशिश करें।
zfrisch

^ + जब आप समान स्तर पर शुरू होते हैं तो किसी से नाराज होना आसान होता है और वे आपको कौशल में पार करते हैं। मैं यह नहीं कह रहा हूँ कि यह निश्चित रूप से मामला है, लेकिन यह निश्चित रूप से लगता है जैसे इसके साथ कुछ करना हो सकता है।
zfrisch

12

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

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


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

20
आप किसी भी परिस्थिति में उस व्यक्ति के साथ कानूनी रूप से बाध्यकारी व्यापारिक संबंध में प्रवेश नहीं करना चाहते हैं।
gnasher729

3
@ douglasg14b एक जूनियर को पढ़ाने के लिए लाते हैं .. गरीब बच्चा। सुझाव दें कि आप किसी अनुभवी व्यक्ति को लाएं "क्योंकि वह बहुत तेज गति से उठेगा और उत्पाद को खत्म करने में मदद करेगा"। अपनी जगहें एक फिनिश लाइन पर सेट करें - या क्या आप दोनों हमेशा और हमेशा के लिए इस शौक पर काम करना चाहते हैं? (देखा कि तब तक, जब तक यह रद्द नहीं हो जाता)
gbjbaanb

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

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

9

यहाँ कुछ विचार हैं भले ही उनमें से कुछ परस्पर अनन्य हैं।

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

  • उसे अपने सबसे खराब कोड का रखरखाव करने दें। यदि वह इसे सफलतापूर्वक करता है तो आप एक भयानक कार्य से बच गए हैं। अगर वह सक्षम नहीं है तो वह दर्द महसूस करेगा।

  • इसे उपयोगकर्ता या व्यवसाय के दृष्टिकोण से देखें। कुछ मामलों में आपको केवल एक व्यवहार्य उत्पाद की आवश्यकता होती है जिसे Google या Microsoft खरीद सकते हैं। अन्य में आप बाजार में एक उत्पाद लॉन्च कर रहे हैं और बुग्गी या हैक किए गए कोड के साथ हजारों ग्राहकों का समर्थन करेंगे। यदि आपका कोड परमाणु मिसाइलों के साथ ड्रोन को नियंत्रित करता है या किशोरों के लिए खुश वीडियो बनाता है तो ऐसा नहीं है।

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

  • एक साथ प्रशिक्षण या घटनाओं के लिए जाओ। जब आप नहीं जानते हैं तो सही तरीका काफी स्वाभाविक है जिस तरह से आप जानते हैं। दूसरे का कोड देखकर सब कुछ हल नहीं हो सकता है, लेकिन कोशिश करने के लिए चोट नहीं पहुंचेगी।

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

  • वह कोड को फिर से लिखना नहीं चाहेगा लेकिन वह नए कोड को बेहतर लिखने के लिए सहमत हो सकता है। मैं समझता हूं कि फिर से लिखना कठिन है, उबाऊ है और चीजों को तोड़ सकता है। गुणवत्ता के कुछ द्वीपों को विकसित करें। इस तरह से उसके पास अच्छे उदाहरण होंगे कि चीजों को कैसे करना है।

  • बॉय स्काउट नियम का प्रयोग करें । जब तक आपको इस पर काम करने की आवश्यकता न हो, तब तक चीजों को अछूता न रखें। यदि एक मॉड्यूल बुरी तरह से लिखा गया है, लेकिन काम करता है और इसे इस तरह छोड़ने की आवश्यकता नहीं है। यदि आपको बग को ठीक करने या किसी सुविधा को पूरा करने की आवश्यकता है, तो इसे थोड़ा सुधारें। कुछ समय बाद 20% कक्षाएं जिन्हें आप बदलते हैं, 80% समय में सुधार होगा। गुणवत्ता के अधिक द्वीप।

हम यह सुझाव नहीं दे सकते हैं कि आप दोनों को जाने बिना सबसे अच्छा समाधान क्या है। सौभाग्य।


4

ठीक है, यहाँ एक उत्तर है जिसे आप शायद पसंद नहीं करेंगे।

जब तक यह सुविधा को लागू करने में विफल नहीं होता तब तक कोड को 'सही' न करें।

यहाँ मेरा तर्क है। आप निश्चित रूप से पैसा बनाने की कोशिश कर रहे हैं। पैसे कमाने के लिए आपको पूरी तरह से सुविधाओं को जल्दी से जहाज करना होगा। कोई भी एक 'अच्छी तरह से कोडित' कंप्यूटर गेम के लिए आपको अधिक भुगतान करने वाला नहीं है।

ज्यादातर कंपनियों की यही समस्या है। Refactor मौजूदा कोड यह बेहतर 'बनाने के लिए, कभी कभी भी निष्पक्ष गति या विश्वसनीयता के मामले में बेहतर या नई सुविधाओं लिखें।

99% समय वे नई सुविधाओं को लिखने के लिए चुनते हैं क्योंकि साधारण लागत लाभ विश्लेषण का परिणाम है।


15
यह पूरे "तकनीकी ऋण" तर्क के अंतर्गत आता है, है ना? जब आप उस नई सुविधा को लिखते हैं (या किसी मौजूदा को संशोधित करते हैं), तो क्या यह तीन बार लंबे समय तक ले जा रहा है और दस बार उत्पादन कर रहा है और कई बार कीड़े पैदा करेगा जैसे कि आप अपने रिफैक्टरिंग के साथ रखेंगे? यदि ऐसा है, तो शायद रिफैक्टिंग को छोड़ देना एक झूठी अर्थव्यवस्था थी।
बेन आरोनसन

1
आप ऐसा सोचते होंगे, लेकिन मैंने बहुत सारी सफल कंपनियों में काम किया है और मैं (लगभग) कभी भी उच्च प्राथमिकता पर रिफैक्टिंग नहीं देखता। मेरा निष्कर्ष यह है कि यह बस भुगतान बंद कर देता है।
इवान

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

हे, हाँ! लेकिन यह भी लगता है कि परिवर्तन करने की लागत बहुत अधिक है। मेरे उत्तर में मैं इस उद्देश्य को देने की कोशिश करता हूं 'क्या आप इस पैसे के लिए हैं?' उत्तर, प्लस मेरा व्यक्तिपरक दृष्टिकोण जहां संभाव्यता का संतुलन निहित है
इवान

1
यह कुछ मामलों में उचित है, लेकिन अगर किसी का "वर्किंग कोड" किसी दूसरे व्यक्ति को अपने कोड पर 2x खर्च करने या सिस्टम को एक साथ या भविष्य के काम में एकीकृत करने का कारण बन रहा है, तो यह अब एक सरल "जहाज बनाम नहीं-जहाज" निर्णय है। बड़े पैमाने पर होने वाली बहुत सारी परियोजनाएँ मर जाती हैं क्योंकि वे तेजी के बजाय इसे सही करने का निर्णय नहीं लेते हैं।
एंडरलैंड

3

मुझे अब तक के सभी जवाब पसंद हैं। एंडरलैंड के उत्तर में से एक अंक लेना :

क्या स्वैच्छिक आधार पर किसी के साथ काम करने के लाभ हैं जब यह निराशाजनक है?

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

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

  • आप स्थिति के भावनात्मक तनाव से डिस्कनेक्ट कर सकते हैं।

  • आपको वास्तविक समय में पेशेवर सलाह मिलती है। आप जो सीख रहे हैं, उसके लिए एक बड़ा बढ़ावा।

  • कोई आपको बताएगा कि आप गलत हैं। जो अच्छा है, क्योंकि जो भी किसी भी लम्बाई के लिए प्रोग्रामिंग करता है, वह यह सुनने वाला है। आप इसे खराब तरीके से संभाल सकते हैं जैसे कि यह आदमी आपके साथ काम कर रहा है, या आप इससे निपटना सीख सकते हैं।

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

इसी तरह, गेम डेवलपर स्टैक एक्सचेंज है । समीक्षा के लिए कोड पोस्ट करने के लिए इतनी जगह नहीं है, लेकिन उन अवधारणाओं / विचारों के बारे में पूछने के लिए जिनके साथ आप संघर्ष कर रहे हैं। फिर, वह जगह सभी के लिए बेहद मददगार है।

आपने पहले भी इन दोनों साइटों को देखा होगा; मैं सिर्फ यह सुनिश्चित करना चाहता था कि वे आपके टूलसेट का हिस्सा हों।


2

यह बहुत निराशाजनक लगता है। यदि आप इसके बारे में महसूस करते हैं तो मैं शायद हार मानूंगा और आगे बढ़ूंगा; वहाँ निश्चित रूप से दूर चलने का समय आता है और आप वहाँ हो सकते हैं।

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

डगलस: मैं इसे बदलना चाहता हूं क्योंकि एक्स, जो हमारे दिशानिर्देशों में यहां है।

दोस्त: यह कैसे है ठीक है।

douglas: तो आप कह रहे हैं कि हमें दिशानिर्देश बदलने चाहिए?

दोस्त: नहीं, मुझे लगता है कि यह ठीक है कि यह कैसा है।

डगलस: तो इसके लिए क्या दिशा निर्देश हैं?

दोस्त: मुझे नहीं पता - तुमने उन्हें लिखा है।

डगलस: आप क्या दिशा-निर्देश लिखेंगे?

दोस्त: मैं दिशानिर्देश नहीं लिखूंगा। यह समय की बर्बादी है।

डगलस: तो हमें बस दिशानिर्देशों को फेंक देना चाहिए और उस समय जो भी बकवास हम सोच रहे हैं उसे लिखना चाहिए?

दोस्त: यह बकवास नहीं है।

डगलस: क्या यह सही है? क्या यह आदर्श है?

दोस्त: यह काम हो जाता है; चलो अगली सुविधा पर चलते हैं।

डगलस: क्या कोई ऐसी चीज है जिस पर हम सहमत हो सकते हैं, कि एक्स अच्छा कोड है और वाई खराब कोड है?

दोस्त: मुझे अकेला छोड़ दो; मैं सिर्फ कोड करना चाहता हूं!

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

डगलस: आप क्या चाहते हैं?

दोस्त: मुझे बस कोड चाहिए।

डगलस: मैं भी कोड करना चाहता हूं, लेकिन मैं अपने कोड पर गर्व महसूस करना चाहता हूं।

दोस्त: मुझे अपने कोड पर गर्व है।

डगलस: यहाँ एक समारोह है जिस पर मुझे गर्व है - आप इसके बारे में क्या सोचते हैं?

दोस्त: ठीक है, यह ठीक है, लेकिन आपको एक्स को लूप के अंदर पुनर्गणना नहीं करना चाहिए; यह अक्षम है।

डगलस: तो क्या आप कह रहे हैं कि हमें हमेशा लूप के बाहर निरंतर मूल्यों की गणना करनी चाहिए?

दोस्त: अच्छा, दुआ!

डगलस: क्या आप सोचेंगे कि हमारे दिशानिर्देशों में होना चाहिए?

दोस्त: बेशक।

डगलस: ठीक है, मैं इसे हमारे दिशानिर्देशों में जोड़ दूंगा, और मैं अपना कोड अपडेट करूंगा ...

डगलस: अब कैसा है?

दोस्त: ठीक है।

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

लेकिन अगर आप हार मान कर आगे बढ़ते हैं - तो ऐसा कोई बुरा विकल्प भी नहीं हो सकता है।


2

मान लें कि आप परियोजना को छोड़ने का फैसला करते हैं:

  • कोड को फोर्क करें और इसे पोर्टफोलियो आइटम के रूप में 'पहले / बाद' के रूप में उपयोग करते हुए इसे रीफैक्टर करें
  • चूंकि प्रोग्रामिंग सीखने के लिए लक्ष्य (मुख्य रूप से या आंशिक रूप से) था और चूंकि कुछ सीखने में 2-4x का समय लगता है, जब तक कि आप कुछ पहले से ही जानते हैं, वह काम वास्तव में व्यर्थ नहीं है।
  • 'सनक कॉस्ट अटैचमेंट' (यह जानने से पहले कि आपके उद्यम में निवेश किया गया है, यह एक बुरा विचार है) निर्णय लेने में सबसे आम मानवीय त्रुटियों में से एक है
  • दोस्ती को बनाए रखने के लिए, कोडिंग पर दोस्ती को प्राथमिकता देने के रूप में अपने निर्णय को फ्रेम करें

1

tl; dr आपको यकीनन इस परियोजना को छोड़ देना चाहिए।

इस बारे में और अधिक जानने के बाद आपने हमें बताया है, मैं अनुमान लगाता हूँ कि आप जिस घर्षण का अनुभव कर रहे हैं वह अनुभव से संबंधित है।

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

आपका द्वितीय वर्ष का सीएस छात्र, भले ही बहुत उपहार में दिया गया हो, शायद ऐसा करने के परिप्रेक्ष्य का अभाव है (यदि आप मेरे जैसे हैं, बार-बार :)।

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

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

अन्यथा जमानत करें और एक सहकर्मी के साथ एक परियोजना करें, या एक संरक्षक / मेंटी परियोजना करें जहां वह शुरू से ही गतिशील है।


1

सभी शानदार उत्तरों में अतिरिक्त अंक जोड़ने के लिए:

  • परियोजना को पूरा करने में कितना और प्रयास होगा? ध्यान दें कि "अंतिम 10%" को खत्म करने में लोगों की अपेक्षा बहुत अधिक समय लगता है। इसमें प्ले टेस्टिंग / ट्यूनिंग, प्रयोज्य फिक्सिंग, विभिन्न प्रकार के लक्ष्य प्लेटफार्मों के साथ मुकाबला करना, रिलीज़ करना, ... यदि यह एक iOS गेम है, तो कोड साइनिंग है और Apple की समीक्षा के माध्यम से हो रहा है। ईमानदारी से, परिष्करण पहले "90%" के रूप में लंबे समय तक ले सकता है। और यह अतिरिक्त मुश्किल होगा यदि कोड उतना ही बुरा है जितना कि आप सुझाव देते हैं। (क्या अब आप इसे खेलना शुरू कर सकते हैं?)
  • वास्तविक रूप से, यह कैसे संभव है कि लोग आपके खेल का आनंद लेंगे?
  • " सनक लागत हेयूरिस्टिक " से सावधान रहें । मूल्यांकन करें कि बड़ी तस्वीर के प्रकाश में 10,000 लाइन-ऑफ-कोड निवेश, एक तैयार उत्पाद पर वापस देखना, और अनुचित आशावाद के बिना।
  • क्या आप इसे जारी रख सकते हैं अगर इसमें 3 साल का समय लगता है? आप दोनों की अलग-अलग विकास शैलियाँ हैं (अच्छी टीम मैच नहीं)। ऐसा लगता है कि आप अपने धैर्य के अंत के पास हैं और यदि आप चलते रहेंगे, तो दोस्तों का बने रहना मुश्किल हो सकता है।

3
"पिछले 10%" में बहुत अधिक समय लगता है अगर कोड का 90% बकवास है :-(
gnasher729

0

आपको अपने कोड को उसी तरह करना चाहिए, जिस तरह से आपको लगता है कि सही है, टिप्पणियों के साथ और इस तरह से आप कोड के संस्करण की एक प्रतिलिपि बना रहे हैं (यदि वह आपके कोड को बदलता है)।

लड़ाई मत करो, पागल मत बनो, बस मुस्कुराओ जब आप उसके खराब फैसले देखते हैं।

केवल एक उपयोगकर्ता के रूप में शिकायत करें, अगर यह काम कर रहा है तो शिकायत न करें।

या तो हार मत मानो, यह उन लोगों के लिए उपयोग करने के लिए महत्वपूर्ण है जो आप से अलग हैं, यह एक वास्तविक नौकरी में होगा।

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