İş yerinde oluşturduğunuz kodu alıp kişisel projeleriniz için tekrar kullanmak yanlış mı?


31

Çeşitli iş yerlerim boyunca daima "bu, diğer durumlarda gerçekten faydalı olacağını" düşündüren bir kod yazdım. Aslında, daha uzun yazmam gerekse bile, gelecekte bana yardımcı olacağını bildiğimden (örneğin özel SubString()fonksiyonlar) kasten kod yazıyorum . Bu snippet'ler için iyi bir aday, çeşitli 'Yardımcı' sınıflarıdır.

Eminim ki bu pasajlar muhtemelen başka bir yerde çevrimiçi olarak bulunabiliyor ama asıl nokta, onları yazdım ve daha sonra başka işlerde veya kişisel projelerde tekrar kullanacağım. Şu anda kişisel kod kütüphanesi korumak değil, ama soru, bu kodu en ürettiler almak yanlıştır iş ve yeniden kullanımı, ( a ) kişisel projeler ve (için b diğer işlerde)?



2
@Michael Benzer, ancak tam bir kopyası değil. Cevaplar çok benzer, ancak aslında iki farklı kaygı var. Bu kodun küçük parçalarıyla ilgili - birkaç sınıf, bir yöntem ya da iki. Diğeri tüm projenin çoğaltılması ile ilgilidir.
Thomas Owens

İşin garibi, her zaman diğer yönde olacak akışı bulmam . Daha fazla deneyime sahip olduğum hobi projelerimde genellikle ilginç kod parçaları buluyorum. Kesinlikle, bu başarılı fikirler bunu benim peşin ödeme işim haline getirdiğinde hiç kimse şikayet etmez. :-)
DaveGauer

Yanıtlar:


25

Tüm çılgın fikirlerimi ve genel eşyalarımı koyduğum kişisel bir projemle her zaman bu sorunu çözdüm ve ardından BSD lisansı altında lisansladım, bu da insanların yeniden kullanmasına, değiştirmesine, yeniden markalaştırmasına, kapatmasına ve para ödemesine izin veriyor. o. Bu şekilde, telif hakkını saklı tutarım ancak bu ve bu işveren için istediğim gibi kodu tekrar kullanabilirim, böylece telif hakkını orijinaline aittir, ancak işveren telif hakkını tekrar kullanılan örneğe aittir. Bununla ilgili bir sorun yaşarlarsa, o zaman bana bakış açıları açısından hiçbir anlam ifade etmeyen çalışma zamanında yeniden yazmak için bana para vermeleri gerektiğini düşündüm. Ayrıca, şirketler her zaman BSD kodunu kullanır, çünkü BSD'nin arkasındaki fikir, insanların ve şirketlerin, yeniden markalandırma ve satma dahil olmak üzere, istedikleri her şeyi yapmalarını sağlamaktır.

O zaman elbette, işyerindeki koda eklemeler yapılırsa, kendi zamanıma yeniden yazmadan başka bir yerde tekrar kullanamıyorum ... bu iyi, çünkü genel şeyler göreceli olarak küçük olma eğilimindedir. Zaten önemli ölçüde boş zaman çaba garanti eder fikri.

İstediğiniz zaman yazarak ve kodu BSD tarzı lisans altında lisanslamanız, istediğiniz yerde hemen hemen kullanabileceğiniz bir kitaplık tutmanıza izin vermelidir .

Şimdi, tüm kişisel projelerinizin telif haklarını emdiğini iddia eden sözleşmelere gelince ... bu muhtemelen yargı bölgeleri arasında kökten farklılık gösterir, ancak en azından bazı batılı yargı bölgelerinde bir sözleşmenin bunu yapamayacağıma dair benim fikrim. Sözleşme, bunu yapabilir diyebilir ancak bir mahkemede uygulanmaz çünkü telif haklarının açıkça devredilmesi gerekir, çünkü "tüm dayanağınız bize aittir" ifadesinin aksine - kesinlikle Zaten benim olduğum yargı yeri). Sözleşmeyle bir mahkemede neyin desteklenebileceğine dair bir takım kısıtlamalar var, bu yüzden genellikle (ve umarım) sözleşmenin bir kısmı yasal olarak işe yaramazsa, bunun etkisine bir şey söyleyen bir madde göreceksiniz. , sözleşmenin geri kalanı hala tutar.

Ancak, her zaman olduğu gibi, bunu doğru yasal tavsiye olarak yorumlamadan önce bir avukata danışın. Bu konuda hiçbir zaman mahkemeye çıkmadım, bu yüzden bunların hiçbirini avukat kanıtı olarak kabul etmiyorum. :)


31

İş sözleşmenize bağlı. Bugünlerde en muhtemel cevap (a) evet, bu yanlış ve (b) evet, bu gerçekten yanlış. Günümüzde geliştiricilere sunulan neredeyse tüm sözleşmeler, şirket tarafından çalıştırılırken (mesai saatleri içerisinde olsun veya olmasın) yazdığınız herhangi bir kodun size ait olduğunu ve telif hakkınızı otomatik olarak onlara devrettiğinizi söyleyen hükümlere sahiptir. Buna karşı özellikle müzakere etmediğiniz sürece, bu muhtemelen sizin için geçerlidir.

Ancak, her zaman olduğu gibi:

Bize inanma! Potansiyel olarak tehlikeli bir şey yapmadan önce bir avukata danışın.


7
+10 (eğer yapabilirsem) "Bize inanma! Tehlikeli olabilecek bir şey yapmadan önce bir avukata danış." En iyi. Öğüt vermek. Hiç.
Sardathrion - Monica

2
“Geliştiricilere sunulan neredeyse tüm sözleşmelerin” (“şirket tarafından çalıştırılırken (mesai saatleri içinde olsun veya olmasın)) herhangi bir kodun işverene ait olduğunu” öngördüğü için herhangi bir kaynağınız var mı?
CVn

3
Bu terimler, işveren-kendilerini-çok-çok-küçükten ziyade-kapsayan bir şekilde rutindir ve birçok durumda sağduyuya yer vardır. Bununla birlikte, (1) sağduyulu görüşünüzün onlarınkine uygun olduğundan emin olmanız gerekir ve (2) bu büyük bir risktir. Sınırdan birkaç yıl sonra, fikirler değişebilir - özellikle çok para kazanıyorsanız veya yazdığınız bir şeyin satışlarına zarar verebileceğini düşünüyorlarsa. Küçük genel yardımcı program işlevlerinden oluşan bir kitaplık için, yeniden yazmak ve endişelenmemek muhtemelen daha kolaydır. Daha önemli olan her şey ve çok tehlikeli bir yerdesiniz.
Steve314

4
@ MichaelKjörling. Aradığınız kaynak Joel Spolsky'nin Start Ups'ta bu konudaki mükemmel cevabı .
TRiG

22
Aslında .. Ben her zaman bir avukat istemek söylemenin can sıkıcı ve gerçekçi olmadığını düşünüyorum. Her şeyden önce, yanlış olabileceğinizin sağduyu; SO'da kritik bir güvenlik açığını nasıl çözeceğiniz konusunda tavsiyelerde bulunursanız "Bir programlayıcıya sorun!" demezsiniz. her zaman. İkinci avukatlar pahalıdır; dürüst olmak gerekirse, kaç kişiyi gerçekten - genellikle - önemsiz bir soru / merak sormak için avukat tutacağını düşünüyorsunuz? Hiç böyle bir şey istemek için bir avukat tuttun mu?
Thomas Bonini

9

Sadece kodu istediğiniz zaman ve yeniden yazın . Birkaç dakikalık kodlama uğruna sorunu tamamen önler.

Şanslar arasında, daha fazla şey öğrenmiş olacak ve daha iyi bir şeyler yazacaksın Kod yeniden yazma da genellikle daha şık hale getirir.


Anlaştık, peki ya sadece birkaç dakikalık kod değen olmayan alt kütüphaneler? Veritabanlarına, yapı dosyalarına vb. Erişmek için sınıflar?
Yeniden

3
O kadar basit değil. Herhangi bir yeniden uygulamanın orijinal koddan tamamen farklı olması gerekir. Yeniden yazmak bile kötü olabilir. Mevcut şeylerin daha iyi bir versiyonunu yapmak kesinlikle kötü. Tamamen ayrı tutmak daha iyidir.
tp1

Birisi için bir tür özel algoritma geliştirirseniz, bir başkası için tekrar yazdıysanız (muhtemelen) başınız belaya girer. Biraz kabataslak. Sadece kazan kodu ise, evet, yeni bir koleksiyon başlatmak için yeterince kolaydır.
Tim Post

@ tp1 Beklet, fonksiyonun x()amacı o kadar spesifik ve faydalıysa, onu yazmak için pek fazla yol bulunmuyorsa? Bu durumda, uygulama bu kadar benzerse nasıl ayrı tutabilirsiniz?
Arj,

@ a12jun, işte bu yüzden her durum için ayrı ayrı düşünülmeli. Sıralama kavramı muhtemelen programcının bilgisayar bilimlerindeki mevcut tecrübesi ve yazılması tamam. Ancak, bir tür yazılıma özgü veya ender görülen bir şey varsa, kötü olacaktır.
tp1

6

Çalışma şartlarınıza bağlı olarak olabilir. Şirketinize neyin sahip olduğunu ve neyin size ait olduğunu ve aynı zamanda eşyaların kullanım hakkını veya mülklerini alma talebinde bulunma sürecini belirlemek için amirinize, insan kaynakları departmanına, hukuk departmanına ve / veya etik departmanınıza danışın. işte ürettiğin.

Neredeyse çalıştığım her yere, projelere giren şeyler şirkete aittir, ancak genellikle ne istediğimi açıklamayı gerektiren kişisel projeler için her şeyi duruma göre ortaya çıkarmak için izin istedim ve aldım. bununla ve bunun kuruluşa gitmesine izin vermenin nasıl zararlı olmayacağı konusunda.


Buna katılıyorum; Kendi şirketinizdeki insanlarla konuşmak iyi bir başlangıç ​​noktasıdır (onlarla iyi bir ilişkiniz olduğunu varsayarsak). Sadece "işle yakından alakalı olmadıkça onunla ne istersen onu yap" diyecek olmaları pek olası değildir.
Keith Thompson,

Evet, izin istemeyi denemek iyi bir fikirdir: sözleşme "tüm tabanınız bize ait" diyebilir, ancak bu genellikle CYA amaçlıdır ve sözleşmenizin garanti etmediği şeylere izin vermeye hazır olabilirler. . (Ama tam olarak, yazılı olarak aldığınızdan emin olmak isteyebilirsiniz.)
SamB

4

İşverenlerin, onlar için çalışırken kodumun bir kısmını açık kaynaklı lisans altında yayınlamayı kabul etmeleri konusunda bazı başarılar elde ettim (toplam başarı değil). Çoğunlukla kod kendi zamanımda yazdım, ama bazen değil. Tüm kodlar herhangi bir sektöre özgü değildir.

İşsizken bazı kütüphaneler yazarak her şeyi başladım, sonra MIT lisansı altında yayınladım. Sonra, sonraki işlerdeki işe alım sürecinde, bahsedeceğim ve bu kodu kendilerine yardımcı olmak için kullanabileceğimi söyleyeceğim, ancak onlar için çalışırken yazdıklarım eklerse, sadece değil işlerine özgü ve yalnızca onaylarıyla.

Sonuçlar değişti, ancak zamanla kütüphanemi oluşturabiliyorum. Ayrıca kütüphanenin işverenlerim için gelişme zamanını arttırdığı durumlar oldu.


4

Buradaki en ağır oyu alan cevabın "evet" olduğuna şaşırdım. Bir geliştirici olarak, cevap ya kodun ya da olduğu durumlar haricinde, her zaman "kesinlikle değil" olmuştur:

  1. Mevcut ve önceki tüm projelerden bağımsız olarak geliştirdiğim önceki bir kütüphaneden, veya
  2. Bu amaçla kullanıma sunulan bir kütüphane, örneğin, açık kaynaklı kaynaklar.

Birisi kodu yazman için sana para verdi Farklı bir anlayış ve anlaşmayı yasaklamak iyi, başka birisinin DIRECT avantajlarından faydalanması doğru değil.

Şimdi - DIRECT sözcüğü. Bir projenin sonuna ulaşırsanız ve ilginç bir şey öğrendiyseniz ve onunla müşterinin fikri mülkiyetine doğrudan bağlı olmayan yararlı bir şey yarattıysanız, biraz zaman ayırın ve kendiniz için bir kütüphane oluşturun. Daha da iyisi - BT İLE AÇIK BİR KAYNAK PROJESİNİ BAŞLAYIN, böylece herkes bunun için daha zengin olur. Bence kar yağan kar gibi kesinlikle% 100 saf, ve gerçekten de kendim yaptım.

Kısa vadede, bir başkası için yazmak üzere size verilen kodu tekrar kullanmak yasal baş ağrısına yol açacaktır. Uzun vadede, karakter baş ağrısına neden olur.


1
Yasal değil, ahlaki olarak yanıt vermek için Bravo. Unutmayın: yasaların içermediği ahlakın tamamı. Ayrıca, en azından ABD'de, Yasa gerçeklikten ve toplumdan koptu. Hukuk ve Avukatlar daha büyük iyiliklere karşı aktif olarak çalışıyor gibi görünüyor.
Bruce Ediger

Güzel ve zekice cevap ama yasa ile ilgisi yok. Yasal olarak, bu cevap çoğu batı ülkesinde gerçekten sarsıntılı bir zemin oluşturuyor.
Çabuk_şimdi

2

Nerede yaşadığınızı / çalıştığınızı ve sözleşmenizde nelerin kararlaştırıldığına bağlı olarak bu yasal bir meseledir.

Kendi başıma bir şey öğrenirsem, kendi zamanımda, bana ödenen tüm masrafları (bilgisayar, internet erişimi, yazılım vb.), İşimde kullanmamı istemezler mi? Kişisel bir proje için bir regex buluyorsunuz ve muhtemelen kullanabileceğinizden iş hesabınıza e-posta ile göndermeye karar veriyorsunuz. İnternette tekrar arama yapmak gibi davranarak şirketin zamanını harcamak biraz saçma olurdu. Elbette, zanaatımızı geliştirmek için çalışıyoruz, programcılardan, filandan, filandan, filandan beklenen şey budur, peki ya programlamanın dışında bir alandaysa ya da hatta BT? Bu oyunu oynamak istiyorlarsa bende kalabilirim.

Şirket, ürettiğim kodu sıkı tutmaya çalışabilir. Bir ilişki kurmak sadece fakir bir temel. Birkaç kod satırını çok önemsiyorlarsa, zamanıma hükmedeceklerini hayal bile edemiyorum; çok daha değerli.


1

Geçmişte de aynı düşünceleri yaşadım. Ne yazık ki, doğrudan işiniz için yazdığınız her şeyin teknik olarak işvereniniz tarafından telif hakkı altında tutulacağını düşünüyorum. Bu kodu şirketle ilgili olmayan diğer işlerde tekrar kullanmak için izin istemeniz gerekir.

Öte yandan, kendi projelerinizden biri için boş zamanlarında kod yazdıysanız, kodunuzu bir tür telif hakkıyla koruyabilir ve daha sonra bu kodu kullanım için işvereninize vermeyi teklif edebilirsiniz.

Her iki durumda da konuyla ilgili net bir iletişim olması gerekir .

Tabii ki, IANAL.


1

Sizce bu soru, " Açık Kaynak - Daha önce başka bir şirket için oluşturduğunuz bir programı yeniden açmak / açmak yasal mı? "

Çalıştığınız şirketler muhtemelen kendileri için yazmış olduğunuz kodlara sahip olduklarından, titrek yasal gerekçeleriniz olduğunu söyleyebilirim. Rutinleri sıfırdan kodlamak daha iyi olur, ancak yine de etrafındaki diğer kodun kopyalarını almış olsanız bile sorular olabilir.

[Ben avukat değilim, bu yüzden tavsiyemin size mahkemede yardımcı olmasını beklemeyin.]


+1 "Avukat değilim, bu yüzden tavsiyemin size mahkemede yardımcı olmasını beklemeyin".
Sardathrion - Monica, 7:11

1

Bu genel küçük yöntem / fonksiyonun en iyi projeler arasında tutulmadığını söyleyebilirim. Çoğu zaman, bunu yapmak için Boost veya dilinizin sağladığı her şeyi kullanabilirsiniz. Çoğu zaman, bunlar sizinkinden daha iyi yazılmış.

Bunun için iyi bir fikir, bunlar için bir dizi birim test yaptırmak ve bunları kodunuzu test etmek için kullanmaktır.


1

İşler Asya'ya gidiyor, bu yüzden sos treni hala varken kodu tekrar yaz. Kod yazmak için para alıyorsanız, yazın veya yapıştırın ve eğlenceli bir şey yaparken yeniden yazmış gibi davranın. Ya da daha iyisi, evden çalışın ve sizin için kodu yazmak ve farkı cebe sokmak için Asya'dan biraz daha yetenekli, daha zeki ve en önemlisi, çok daha ucuz kodlayıcı ödeyin. Öyleyse, kurumsal tanrılar bizi bırakmadan önce dışarı çıkıp dünyanın tadını çıkarabilirsiniz ve hepimiz zengin Çinli ve Hintli iphone tüketicileri için saatte 2 sentten cips yapan cips fabrikalarında çalışmaktan yoksun kaldık.


0

Bunun eski bir soru olduğunu biliyorum ama birileri çarptı ve Sergey Aleynikov'un çok üzücü hikayesine bir referans eklemenin iyi bir fikir olacağını düşündüm . İşten herhangi bir kod almadan önce, bunun hayatını nasıl mahvettiğini ve hapse attığını okuyun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.