Apakah salah mengambil kode yang Anda hasilkan di tempat kerja dan menggunakannya kembali untuk proyek pribadi?

31

Di berbagai tempat kerja saya, saya selalu menulis kode yang membuat saya berpikir "ini akan sangat berguna dalam situasi lain". Memang, saya sengaja menulis kode, walaupun saya butuh waktu menulis lebih lama, yang saya tahu akan membantu saya di masa depan (mis. SubString()Fungsi khusus ). Calon yang baik untuk cuplikan ini adalah berbagai kelas 'Pembantu'.

Cuplikan ini saya yakin mungkin dapat ditemukan di tempat lain secara online tetapi intinya adalah, saya menulisnya, dan saya akan menggunakannya lagi nanti di pekerjaan lain atau untuk proyek pribadi. Saat ini saya tidak mengelola perpustakaan kode pribadi, tetapi pertanyaannya adalah, apakah salah mengambil kode yang Anda hasilkan di tempat kerja dan menggunakannya kembali ( a ) untuk proyek pribadi, dan ( b ) di pekerjaan lain?

Arj
sumber
2
@Michael Mirip, tetapi bukan duplikat yang tepat. Jawabannya sangat mirip, tetapi mereka sebenarnya adalah dua masalah yang berbeda. Yang ini tentang potongan kecil kode - beberapa kelas, satu atau dua metode. Yang lainnya adalah tentang mereproduksi seluruh proyek.
Thomas Owens
Yang lucu adalah saya selalu menemukan aliran berada di arah lain . Saya biasanya menghasilkan potongan kode yang sangat menarik dalam proyek hobi saya tempat saya bereksperimen lebih banyak. Tentu saja tidak ada yang mengeluh ketika ide-ide sukses itu membuatnya menjadi pekerjaan bayaran saya. :-)
DaveGauer

Jawaban:

25

Saya selalu memecahkan masalah ini dengan memiliki proyek pribadi di mana saya meletakkan semua ide-ide gila dan hal-hal umum, dan kemudian melisensikannya di bawah lisensi BSD, yang memungkinkan orang untuk menggunakan kembali, mengubah, mengubah citra, menutupnya, dan membebankan biaya untuk saya t. Dengan cara itu, saya mempertahankan hak cipta tetapi dapat menggunakan kembali kode sesuka saya untuk majikan ini dan itu, sehingga saya mempertahankan hak cipta ke aslinya, tetapi majikan mempertahankan hak cipta untuk contoh yang digunakan kembali. Saya pikir jika mereka memiliki masalah dengan itu, maka mereka hanya perlu membayar saya untuk menulis ulang pada waktu kerja yang tidak masuk akal dari sudut pandang mereka. Lebih jauh, perusahaan menggunakan kode BSD sepanjang waktu, karena ide di balik BSD adalah untuk memungkinkan orang dan perusahaan melakukan hampir semua hal yang mereka inginkan, termasuk rebranding dan menjualnya.

Maka tentu saja, jika penambahan dilakukan pada kode di tempat kerja, saya tidak dapat menggunakannya kembali di tempat lain tanpa menulis ulang di waktu saya sendiri ... yang baik-baik saja karena barang-barang umum cenderung relatif kecil, kecuali jika itu adalah Gagasan yang menjamin banyak upaya waktu luang.

Menulisnya sendiri waktu Anda dan melisensikan kode di bawah lisensi gaya BSD akan memungkinkan Anda untuk mengelola perpustakaan untuk diri sendiri yang dapat Anda gunakan cukup banyak di mana saja Anda inginkan.

Sekarang, mengenai kontrak yang mengklaim menyedot semua hak cipta proyek pribadi Anda ... ini mungkin berbeda secara radikal di antara yurisdiksi, tetapi setidaknya di beberapa yurisdiksi barat, pemahaman saya bahwa kontrak tidak dapat melakukan itu. Kontrak dapat mengatakan bahwa memang demikian, tetapi itu tidak akan ditegakkan di pengadilan karena hak cipta harus ditransfer secara eksplisit, sebagai lawan dari "semua basis Anda adalah milik kami" - kesepakatan yang tidak akan pernah ditegakkan (dalam yurisdiksi tempat saya berasal). Ada sejumlah batasan tentang apa yang dapat ditegakkan di pengadilan melalui kontrak, itulah sebabnya Anda biasanya (dan semoga) melihat klausa yang mengatakan sesuatu yang menyatakan bahwa jika satu bagian dari kontrak tidak bekerja secara legal , sisa kontrak masih berlaku.

Tetapi seperti biasa, konsultasikan dengan pengacara sebelum Anda menafsirkan ini sebagai nasihat hukum yang akurat. Saya tidak pernah dibawa ke pengadilan tentang hal ini jadi saya tidak mengetahui hal-hal ini sebagai fakta pembuktian pengacara. :)

Teekin
sumber
31

Itu tergantung pada kontrak kerja Anda. Saat ini, jawaban yang paling mungkin adalah (a) ya, ini salah dan (b) ya, ini benar-benar salah. Hampir semua kontrak yang ditawarkan kepada pengembang saat ini memiliki ketentuan yang mengatakan bahwa kode apa pun yang Anda tulis saat dipekerjakan oleh perusahaan (baik selama jam kantor atau tidak) adalah milik mereka dan Anda secara otomatis mentransfer hak cipta kepada mereka. Kecuali jika Anda secara khusus bernegosiasi melawan ini, ini mungkin berlaku untuk Anda.

Namun, seperti biasa:

Jangan percaya kami! Konsultasikan dengan pengacara sebelum melakukan sesuatu yang berpotensi membahayakan.

Kilian Foth
sumber
7
+10 (jika saya bisa) untuk "Jangan percaya kami! Konsultasikan dengan pengacara sebelum melakukan sesuatu yang berpotensi berbahaya." Terbaik. Menasihati. Pernah.
Sardathrion
2
Apakah Anda memiliki sumber untuk pernyataan bahwa "hampir semua kontrak yang ditawarkan kepada pengembang" menetapkan bahwa "kode apa pun yang Anda tulis saat dipekerjakan oleh perusahaan (baik selama jam kantor atau tidak)" adalah milik perusahaan?
CVn
3
Istilah-istilah ini adalah rutin dalam cara pemberi kerja yang menutupi diri sendiri terlalu banyak daripada terlalu sedikit, dan dalam banyak kasus, ada ruang untuk akal sehat. Yang mengatakan, (1) Anda harus yakin bahwa pandangan Anda tentang akal sehat setuju dengan pandangan mereka, dan (2) itu risiko besar. Beberapa tahun ke depan, pendapat dapat berubah - terutama jika Anda menghasilkan banyak uang, atau jika mereka berpikir sesuatu yang Anda tulis mungkin merusak penjualan mereka. Untuk pustaka fungsi utilitas umum kecil, mungkin lebih mudah untuk menulis ulang dan tidak perlu khawatir. Sesuatu yang lebih substansial dan Anda berada di tanah yang sangat berbahaya
Steve314
4
@ MichaelKjörling. Sumber yang Anda cari ada di jawaban Joel Spolsky yang sangat baik tentang hal ini di Start Ups .
TRiG
22
Sebenarnya .. Saya pikir itu menjengkelkan dan tidak realistis untuk selalu mengatakan bertanya pada pengacara. Pertama-tama karena itu masuk akal bahwa Anda mungkin salah; jika Anda memberi saran tentang cara memperbaiki kerentanan keamanan kritis pada SO, Anda tidak mengatakan "Tanya seorang programmer!" setiap saat. Pengacara kedua mahal; jujur ​​berapa banyak orang yang menurut Anda akan benar-benar menyewa pengacara untuk mengajukan pertanyaan / rasa ingin tahu trivia? Pernahkah Anda menyewa pengacara untuk menanyakan hal seperti ini?
Thomas Bonini
9

Tulis ulang kode saat dan ketika Anda membutuhkannya . Itu benar-benar menghindari masalah demi beberapa menit pengkodean.

Kemungkinannya sementara Anda akan belajar lebih banyak dan akan menulis sesuatu yang lebih baik. Kode penulisan ulang juga umumnya membuatnya lebih elegan.

Tom Squires
sumber
Setuju, tetapi bagaimana dengan sub-perpustakaan yang tidak hanya beberapa menit dari kode? Kelas untuk mengakses database, membangun file, dll? Memang benar bahwa penulisan ulang meningkatkan kode
Arj
3
Tidak sesederhana itu. Setiap implementasi harus benar-benar berbeda dari kode asli. Bahkan menulis ulang itu mungkin buruk. Membuat versi yang lebih baik dari barang-barang yang ada pasti buruk. Lebih baik memisahkannya sepenuhnya.
tp1
Jika Anda mengembangkan semacam algoritma hak milik untuk seseorang, Anda (mungkin) akan mendapat masalah jika Anda menulisnya lagi untuk orang lain. Agak samar. Jika itu hanya kode boilerplate, ya, cukup mudah untuk memulai koleksi baru.
Tim Post
@ tp1 Tunggu, bagaimana jika tujuan fungsi x()sangat spesifik dan berguna sehingga tidak banyak cara untuk menulisnya? Dalam hal itu, bagaimana Anda bisa memisahkannya jika implementasinya sangat mirip?
Arj
@ a12jun, well, itu sebabnya perlu dipertimbangkan secara terpisah untuk setiap situasi. Konsep penyortiran mungkin pengalaman programmer yang ada dalam ilmu komputer, dan menulis itu tidak apa-apa. Tetapi jika itu adalah sesuatu yang spesifik yang jarang atau spesifik untuk beberapa jenis perangkat lunak, maka itu akan menjadi buruk.
tp1
6

Tergantung pada ketentuan kerja Anda, mungkin. Konsultasikan dengan penyelia Anda, departemen sumber daya manusia, departemen hukum, dan / atau departemen etika untuk menentukan apa yang dimiliki oleh perusahaan Anda dan apa yang dimiliki oleh Anda, serta apa prosesnya untuk meminta memperoleh hak untuk menggunakan atau kepemilikan benda. yang Anda hasilkan di tempat kerja.

Hampir setiap tempat saya telah bekerja, hal-hal yang masuk ke proyek dimiliki oleh perusahaan, tetapi saya telah mencari dan memperoleh izin untuk membawa hal-hal untuk proyek pribadi berdasarkan kasus per kasus, yang biasanya diperlukan menjelaskan apa yang saya inginkan hubungannya dengan itu dan bagaimana itu tidak akan merugikan organisasi untuk membiarkannya pergi.

Thomas Owens
sumber
Saya setuju dengan ini; berbicara dengan orang-orang di perusahaan Anda sendiri adalah titik awal yang baik (dengan asumsi Anda memiliki hubungan yang cukup baik dengan mereka). Bukan tidak mungkin mereka hanya akan mengatakan "yakin, lakukan apa yang Anda suka dengannya selama itu tidak terkait erat dengan bisnis".
Keith Thompson
Ya, itu ide yang baik untuk mencoba meminta izin: kontrak mungkin mengatakan "semua basis Anda adalah milik kami", tetapi itu umumnya hanya untuk tujuan CYA, dan mereka mungkin bersedia untuk mengizinkan hal-hal yang tidak dijamin kontrak Anda . (Tetapi Anda mungkin ingin memastikan bahwa Anda mendapatkannya secara tertulis, untuk berjaga-jaga.)
SamB
4

Saya telah mendapatkan beberapa keberhasilan (bukan total keberhasilan) dalam membuat majikan saya setuju untuk merilis dengan lisensi open source beberapa kode saya ditulis ketika saya bekerja untuk mereka. Sebagian besar kode saya tulis pada waktu saya sendiri, tetapi terkadang tidak. Itu semua kode tidak spesifik untuk industri apa pun.

Saya memulai semuanya dengan menulis beberapa perpustakaan ketika saya menganggur, lalu melepaskannya di bawah lisensi MIT. Kemudian selama proses perekrutan di pekerjaan selanjutnya saya akan menyebutkannya, dan mengatakan bahwa saya akan menggunakan kode saya untuk membantu mereka, jika bisa, tetapi apakah mereka akan keberatan jika menambahkan hal-hal yang saya tulis saat bekerja untuk mereka, tetapi hanya hal-hal yang tidak khusus untuk bisnis mereka dan hanya dengan persetujuan mereka.

Hasil bervariasi, tetapi saya dapat membangun perpustakaan saya dari waktu ke waktu. Dan ada beberapa kasus di mana perpustakaan telah mempercepat waktu pengembangan untuk atasan saya.

psr
sumber
4

Saya terkejut bahwa jawaban yang paling banyak dipilih di sini adalah "ya". Sebagai pengembang, jawabannya selalu menjadi "sama sekali tidak", kecuali dalam keadaan di mana kodenya adalah:

  1. Pustaka yang dikomposisikan sebelumnya yang telah saya kembangkan secara independen dari proyek saat ini dan semua proyek sebelumnya, atau
  2. Perpustakaan yang telah dibuat tersedia untuk tujuan ini, misalnya, hal-hal sumber terbuka.

Seseorang membayar Anda untuk menulis kode. Kecuali pemahaman dan kesepakatan yang berbeda, yang baik-baik saja, itu tidak benar bagi orang lain untuk menuai manfaat langsung darinya.

Sekarang - kata LANGSUNG. Jika Anda mencapai akhir suatu proyek dan Anda mempelajari sesuatu yang menarik dan menciptakan sesuatu yang bermanfaat dengannya yang tidak secara langsung terkait dengan kekayaan intelektual klien, luangkan waktu dan buatlah perpustakaan untuk Anda sendiri. Bahkan lebih baik - MULAI PROYEK SUMBER BUKA DENGAN ITU, sehingga semua orang berakhir lebih kaya karenanya. Saya pikir ini benar-benar 100% murni etis seperti salju yang digerakkan, dan memang, saya sudah melakukannya sendiri.

Dalam jangka pendek, menggunakan kembali kode yang telah Anda bayarkan untuk menulis untuk orang lain akan menyebabkan Anda sakit kepala secara hukum. Dalam jangka panjang, itu akan menyebabkan Anda sakit kepala karakter.

Chris B. Behrens
sumber
1
Bravo untuk menjawab berdasarkan etika, bukan hukum. Ingat: seluruh moralitas dalam tidak terkandung oleh hukum. Juga, setidaknya di AS, Hukum telah lenyap dari kenyataan dan masyarakat. Pengacara dan Pengacara tampaknya aktif bekerja melawan kebaikan yang lebih besar.
Bruce Ediger
Jawaban yang bagus dan bagus tetapi tidak ada hubungannya dengan hukum. Secara hukum, jawaban ini memang goyah di sebagian besar negara barat.
cepat,
2

Saya yakin ini adalah masalah hukum tergantung di mana Anda tinggal / bekerja dan apa yang disepakati / kontrak Anda.

Jika saya mempelajari sesuatu sendiri, di waktu saya sendiri, semua pengeluaran saya bayarkan (komputer, akses internet, perangkat lunak, dll.), Tidakkah mereka ingin saya menggunakannya dalam pekerjaan saya? Anda menemukan regex untuk proyek pribadi dan memutuskan untuk mengirimkannya melalui email ke akun kerja Anda karena Anda mungkin dapat menggunakannya. Akan sedikit konyol menghabiskan waktu perusahaan berpura-pura mencarinya di internet lagi. Tentu saja kami berusaha untuk meningkatkan keahlian kami, inilah yang diharapkan dari para programmer, bla, bla, bla, tetapi bagaimana jika itu berada di area di luar pemrograman atau bahkan IT? Saya bisa menahan diri jika mereka ingin memainkan game ini.

Perusahaan dapat mencoba untuk mempertahankan kode yang saya hasilkan. Itu hanya fondasi yang buruk untuk membangun hubungan. Jika mereka begitu peduli dengan beberapa baris kode, saya tidak bisa membayangkan sejauh mana mereka akan mendominasi waktu saya; yang jauh lebih bernilai.

JeffO
sumber
1

Saya memiliki pemikiran yang sama juga di masa lalu. Sayangnya, saya pikir apa pun yang Anda tulis langsung untuk pekerjaan Anda secara teknis akan berada di bawah hak cipta oleh majikan Anda. Anda perlu meminta izin untuk menggunakan kembali kode itu dalam pekerjaan lain yang tidak terkait perusahaan.

Di sisi lain, jika Anda menulis kode di waktu luang Anda untuk salah satu proyek Anda sendiri, Anda dapat melindungi kode Anda dengan semacam hak cipta dan kemudian menawarkan untuk memberikan kode itu kepada majikan Anda untuk digunakan.

Either way perlu ada komunikasi yang jelas tentang masalah ini.

Tentu saja, IANAL.

Mike Cellini
sumber
1

Pertanyaan Anda sangat mirip dengan yang satu ini " Open Source - Apakah sah untuk membuat ulang / open source program yang sebelumnya Anda buat untuk perusahaan lain? "

Saya akan mengatakan Anda berada pada dasar hukum yang goyah karena perusahaan tempat Anda bekerja mungkin memiliki kode yang Anda tulis untuk mereka. Akan lebih baik untuk mengkode rutinitas dari awal, tetapi meskipun demikian masih ada pertanyaan jika Anda masih memiliki salinan kode lainnya.

[Aku bukan pengacara, jadi jangan harap saranku membantumu di pengadilan.]

jerny
sumber
+1 untuk "Saya bukan pengacara, jadi jangan harap saran saya membantu Anda di pengadilan".
Sardathrion
1

Saya akan mengatakan bahwa mereka sedikit metode / fungsi umum yang terbaik tidak disimpan di antara proyek. Sebagian besar waktu, Anda dapat menggunakan Peningkatan atau apa pun bahasa yang Anda sediakan untuk melakukan ini. Sebagian besar waktu, itu lebih baik ditulis daripada milikmu.

Apa ide yang bagus adalah memiliki satu set unit test untuk mereka dan menggunakannya untuk menguji kata kode Anda.

Sardathrion - Pasang kembali Monica
sumber
1

Pekerjaan sedang menuju ke Asia sehingga menulis ulang kode sementara kereta saus masih ada. Jika Anda dibayar untuk menulis kode, tulis atau tempel dan berpura-puralah Anda menulis ulang sambil melakukan sesuatu yang menyenangkan. Atau bahkan lebih baik, bekerja dari rumah dan membayar lebih terampil, lebih cerdas dan yang paling penting, programmer lebih murah dari Asia untuk menulis kode untuk Anda dan mengantongi perbedaannya. Lalu Anda bisa keluar dan menikmati dunia sebelum Dewa perusahaan kami membohongi kami dan kami semua miskin bekerja di pabrik chip membuat chip dengan harga 2 sen per jam untuk konsumen iphone Cina dan India yang kaya.

marabutt
sumber
0

Saya tahu ini adalah pertanyaan lama tetapi seseorang menabraknya dan saya merasa itu akan menjadi ide yang baik untuk menambahkan referensi ke kisah yang sangat menyedihkan dari Sergey Aleynikov . Sebelum Anda mengambil kode apa pun dari kantor, baca tentang bagaimana hal itu menghancurkan hidupnya dan memasukkannya ke penjara .

JimmyJames
sumber