क्या आपके द्वारा काम पर निर्मित कोड लेना और व्यक्तिगत परियोजनाओं के लिए इसे फिर से उपयोग करना गलत है?


31

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

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



2
@ मिचेल समान, लेकिन एक सटीक डुप्लिकेट नहीं। उत्तर बहुत समान हैं, लेकिन वे वास्तव में दो अलग-अलग चिंताएं हैं। यह एक कोड के छोटे टुकड़े के बारे में है - वर्गों के एक जोड़े, एक विधि या दो। दूसरा एक संपूर्ण परियोजना को फिर से शुरू करने के बारे में है।
थॉमस ओवेन्स

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

जवाबों:


25

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

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

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

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

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


31

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

हालांकि, हमेशा की तरह:

हमें विश्वास मत करो! संभावित रूप से खतरनाक कुछ करने से पहले एक वकील से परामर्श करें।


7
+10 (अगर मैं कर सकता था) "हमें विश्वास मत करो! संभावित रूप से खतरनाक कुछ करने से पहले एक वकील से परामर्श करें।" श्रेष्ठ। सलाह देना। कभी।
सरदारथियन - मोनिका

2
क्या आपके पास इस कथन का कोई स्रोत है कि "डेवलपर्स को दिए गए लगभग सभी अनुबंध" यह निर्धारित करते हैं कि "कोई भी कोड जो आप कंपनी द्वारा नियोजित करते समय लिखते हैं (चाहे कार्यालय के समय हो या नहीं)" नियोक्ता के अंतर्गत आता है?
बजे एक CVn

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


22
वास्तव में .. मुझे लगता है कि यह हमेशा एक वकील से पूछना कष्टप्रद और अवास्तविक है। सबसे पहले क्योंकि यह सामान्य ज्ञान है कि आप गलत हो सकते हैं; यदि आप एसओ पर एक महत्वपूर्ण सुरक्षा भेद्यता को ठीक करने के बारे में सलाह देते हैं, तो आप यह नहीं कहते हैं कि "एक प्रोग्रामर से पूछें!" हर बार। दूसरे वकील महंगे हैं; ईमानदारी से आप कितने लोगों को लगता है कि वास्तव में एक - आम तौर पर सामान्य ज्ञान प्रश्न / जिज्ञासा के लिए एक वकील किराया होगा? क्या आपने कभी इस तरह से कुछ पूछने के लिए एक वकील को काम पर रखा है?
थॉमस बोनीनी

9

जब आपको आवश्यकता हो बस कोड को फिर से लिखें । यह कोडिंग के कुछ मिनटों के लिए समस्या से पूरी तरह से बचता है।

संभावना अंतरिम में है जो आपने अधिक सीखी होगी और कुछ बेहतर लिखेंगे। रिवाइटरिंग कोड भी आम तौर पर इसे और अधिक सुरुचिपूर्ण बनाता है।


सहमत हैं, लेकिन उप-पुस्तकालयों के बारे में क्या है जो कोड के कुछ मिनटों के लायक नहीं हैं? डेटाबेस तक पहुँचने के लिए कक्षाएं, फ़ाइलों का निर्माण, आदि? हालांकि यह सच है कि पुनर्लेखन कोड में सुधार करता है
Arj

3
यह इतना आसान नहीं है। किसी भी कार्यान्वयन को मूल कोड से पूरी तरह से अलग करने की आवश्यकता है। यहां तक ​​कि इसे फिर से लिखना भी बुरा हो सकता है। मौजूदा सामान का बेहतर संस्करण बनाना निश्चित रूप से बुरा है। इसे पूरी तरह से अलग रखना बेहतर है।
tp1 18

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

@ tp1 होल्ड करें, क्या होगा यदि फ़ंक्शन x()का उद्देश्य इतना विशिष्ट और उपयोगी है कि इसे लिखने के कई तरीके नहीं हैं? उस मामले में, यदि कार्यान्वयन समान है तो आप इसे अलग कैसे रख सकते हैं?
Arj

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

6

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

लगभग हर जगह जो मैंने काम किया है, जो चीजें परियोजनाओं में जाती हैं, वे कंपनी के स्वामित्व में हैं, लेकिन मैंने एक मामले-दर-मामले के आधार पर व्यक्तिगत परियोजनाओं के लिए चीजों को लाने की अनुमति मांगी है और प्राप्त की है, जिसे आमतौर पर यह समझाने की आवश्यकता होती है कि मुझे क्या चाहिए। इसके साथ क्या करना है और यह कैसे जाने के लिए संगठन के लिए हानिकारक नहीं होगा।


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

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

4

मुझे अपने नियोक्ताओं को खुले स्रोत लाइसेंस के तहत सहमत होने के लिए कुछ सफलता (कुल सफलता नहीं) मिली है, जबकि मैंने उनके साथ काम करते हुए अपने कुछ कोड लिखे। ज्यादातर कोड मैंने अपने समय पर लिखे, लेकिन कभी-कभी नहीं। यह सभी कोड किसी भी उद्योग के लिए विशिष्ट नहीं है।

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

परिणाम विविध हैं, लेकिन मैं समय के साथ अपने पुस्तकालय का निर्माण करने में सक्षम रहा हूं। और ऐसे मामले सामने आए हैं जहां पुस्तकालय ने मेरे नियोक्ताओं के लिए विकास का समय बिताया है।


4

मुझे आश्चर्य है कि यहां सबसे भारी मतदान का जवाब "हां" है। एक डेवलपर के रूप में, उत्तर हमेशा "बिल्कुल नहीं" रहा है, सिवाय उन परिस्थितियों के जहां कोड या तो है:

  1. एक पिछली रचना की गई लाइब्रेरी जिसे मैंने वर्तमान और सभी पिछली परियोजनाओं, या के स्वतंत्र रूप से विकसित किया है
  2. एक पुस्तकालय जो इस उद्देश्य के लिए उपलब्ध कराया गया है, जैसे, स्रोत स्रोत खोलें।

किसी ने आपको कोड लिखने के लिए भुगतान किया है। एक अलग समझ और समझौते को छोड़कर, जो ठीक है, किसी और के लिए इसका लाभ प्राप्त करना सही नहीं है।

अब - DIRECT शब्द। यदि आप किसी परियोजना के अंत तक पहुँचते हैं और आपने कुछ दिलचस्प सीखा है और इसके साथ कुछ उपयोगी बनाया है जो सीधे ग्राहक की बौद्धिक संपदा से जुड़ा नहीं है, तो कुछ समय लें और इसके लिए खुद को एक पुस्तकालय बनाएं। इससे भी बेहतर - START AN OPEN SOURCE PROJECT with IT, ताकि हर कोई इसके लिए अमीर हो। मुझे लगता है कि यह पूरी तरह से संचालित बर्फ के रूप में 100% नैतिक रूप से शुद्ध है, और वास्तव में, मैंने इसे स्वयं किया है।

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


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

ललित और बांका जवाब लेकिन कानून से कोई लेना देना नहीं है। कानूनी तौर पर, यह उत्तर वास्तव में अधिकांश पश्चिमी देशों में अस्थिर है।
जल्दी_अगले

2

मुझे यकीन है कि यह एक कानूनी मामला है जहां आप रहते हैं / काम करते हैं और क्या आपके अनुबंध पर सहमत हुआ था।

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

कंपनी मेरे द्वारा उत्पादित कोड पर एक कड़ी पकड़ रखने की कोशिश कर सकती है। संबंध बनाने के लिए बस एक घटिया नींव है। यदि वे कोड की कुछ पंक्तियों के बारे में इतना ध्यान रखते हैं, तो मैं सोच भी नहीं सकता कि वे मेरे समय पर किस हद तक हावी होंगे; जिसकी कीमत बहुत अधिक है।


1

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

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

किसी भी तरह से स्पष्ट संचार की आवश्यकता है से मुद्दे पर ।

बेशक, IANAL।


1

आप सवाल यह है कि यह " ओपन सोर्स - " के लिए बहुत ही समान है, क्या किसी अन्य कंपनी के लिए आपके द्वारा पहले बनाए गए प्रोग्राम को फिर से बनाना / ओपन करना कानूनी है? "

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

[मैं एक वकील नहीं हूं, इसलिए मेरी सलाह की अपेक्षा आपको न्यायालय में मदद करने की नहीं है।]


+1 के लिए "मैं एक वकील नहीं हूं, इसलिए मेरी सलाह की अपेक्षा आपको कानून की अदालत में मदद करने की नहीं है"।
सरदाथ्रियन - मोनिका

1

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

एक अच्छा विचार यह है कि उन लोगों के लिए यूनिट परीक्षणों का एक सेट होना चाहिए और अपने कोड काटा का परीक्षण करने के लिए उनका उपयोग करना चाहिए।


1

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


0

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

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