Dapatkah saya menggunakan lisensi MIT untuk memberikan beberapa kode tertulis saya sebelumnya kepada majikan sehingga saya melindungi diri saya sendiri dan tidak kehilangan hak cipta saya?

17

Situasi saya:

  • Saya telah menulis kerangka kerja sebelum memulai pekerjaan baru saya. Saya memiliki hak cipta.

  • Ini memiliki banyak logika boilerplate di dalamnya, seperti perangkat lunak apa pun. (duh!)

  • Saya tidak ingin menggunakan seluruh kerangka kerja dalam pekerjaan baru saya, tetapi saya perlu menggunakan kembali beberapa bagiannya dalam kerangka kerja yang sama yang saya bangun untuk pekerjaan baru saya.

  • Tidak praktis untuk mengimplementasikan kembali / memikirkan kembali semua logika dari awal. Ada banyak logika dan logika adalah logika, Anda tidak dapat membuatnya jauh berbeda. Misalnya, berapa banyak versi berbeda dari HashMap yang dapat Anda kode? Saya yakin mereka akan sangat mirip dan versi ketiga dapat mengklaim bahwa Anda melanggar hak cipta versi pertama. :(

  • Tidak praktis untuk mencoba menemukan kembali API. Bisakah Anda menemukan kembali API dari HashMap? Mungkin Anda dapat mengubah put(k,v)ke add(k,v), tapi tidak lebih dari itu.

Gagasan saya untuk melindungi diri sendiri dan kode saya sebelumnya:

Saya akan memberi tahu atasan saya bahwa saya sedang membangun kerangka kerja baru berdasarkan kerangka kerja sebelumnya yang saya tulis di bawah lisensi MIT. Jadi di masa depan jika saya menggunakan kerangka kerja saya sebelumnya di tempat lain, atau bahkan versi turunan lain darinya , yang memiliki beberapa potongan kode yang mirip dengan kerangka kerja baru yang saya buat sekarang untuk majikan, mereka tidak akan bisa mengatakan saya menggunakan kode mereka, yang saya tulis untuk mereka.

Pertanyaan saya:

  • Saya tidak mendistribusikan kode saya kepada siapa pun. Saya tidak perlu mendistribusikan kode lisensi MIT saya kepada siapa pun, jika saya memiliki hak ciptanya, benar? Maksud saya, dapatkah seseorang meminta saya melepaskan kode saya yang sekarang saya klaim berada di bawah lisensi MIT? Itu tidak akan menjadi akhir dunia dan saya pasti akan setuju untuk melakukan itu di bawah ancaman hukum.

  • Apakah strategi ini masuk akal? Tujuan akhir saya adalah untuk dapat menggunakan versi turunan dari kerangka kode saya sebelumnya tanpa kehilangan hak cipta atasnya. Pada saat yang sama, saya tidak ingin mendistribusikan kode ini sebagai proyek open-source kepada siapa pun. Saya memiliki proyek sumber terbuka lainnya, yang saya bagikan secara bebas, tetapi yang ini saya ingin menyimpannya untuk diri saya sendiri sehingga saya dapat menggunakannya pada pekerjaan saya (bukan pekerjaan kontraktor).

Ini seperti mengklaim bahwa Anda memiliki kerangka kerja di bawah lisensi MIT, tanpa benar-benar mendistribusikan dan / atau menunjukkan kepada siapa pun . Jika ada di luar sana, gratis dan mudah didapat, majikan saya tidak membutuhkan saya lagi. Mereka hanya dapat mengambil kode dan memberikannya kepada orang lain untuk menggunakannya.

Catatan:

  • Saya telah mendaftarkan kerangka kerja ini sebagai penemuan sebelumnya sebelum saya memulai pekerjaan.

  • Saya belum merilis kode ini di mana pun. Itu ada di repo SVN pribadi saya yang saya host di server pribadi saya.

Ide saya singkatnya:

  • Rencana saya adalah menyimpan kode sebelumnya untuk diri saya sendiri, menggunakan bagian-bagian itu dalam kerangka kerja baru yang saya bangun untuk majikan dan memberi tahu pemberi kerja bahwa itu adalah pekerjaan yang berasal dari kerangka kerja berlisensi MIT yang telah saya kodekan sebelumnya dan belum didistribusikan kepada siapa pun ". Saya tidak dipaksa untuk mendistribusikan perangkat lunak yang saya kodekan di bawah lisensi MIT, kan? Jika nanti, beberapa klaim hukum terjadi (semoga saja tidak), saya dapat langsung menempelkan lisensi pada semua sumber dan menunjukkan / melepaskan kode.
JohnPristine
sumber

Jawaban:

21

Saya dulu pengacara IP, jadi punya pengalaman dengan lisensi-ese. Saya merasa istilah-istilah itu sendiri cukup mudah dibaca dan dimengerti, tetapi sekali lagi, saya dinodai oleh tiga tahun sekolah hukum dan beberapa waktu pengacara sebelum mendapatkan kecerdasan saya lagi dan kembali ke peretasan. Terutama karena saya bukan pengacara aktif saat ini, ini tidak dimaksudkan sebagai nasihat hukum sama sekali.

Mari kita mulai dengan bahasa lisensi MIT itu sendiri. Kemudian saya akan memberikan beberapa poin kunci untuk memahami lisensi sumber terbuka, lalu menjawab pertanyaan Anda dan memberikan pengamatan tingkat tinggi.

Izin dengan ini diberikan, gratis, kepada siapa pun yang mendapatkan salinan perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk berurusan dengan Perangkat Lunak tanpa batasan, termasuk tanpa batasan hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan / atau menjual salinan Perangkat Lunak, dan untuk mengizinkan orang-orang kepada siapa Perangkat Lunak dilengkapi untuk melakukannya, tunduk pada ketentuan berikut: (bahwa mereka meninggalkan pemberitahuan ini di dalamnya. Akhir.)

Beberapa hal penting dengan sebagian besar lisensi sumber terbuka (termasuk BSD, MIT, GPL) untuk pemilik hak cipta adalah:

  1. Lisensi tidak mengubah kepemilikan Anda atas hak cipta itu sendiri. Ini adalah lisensi non-eksklusif, bukan penugasan atau penyitaan kepemilikan. Menggunakan lisensi OS bukan berarti "memasukkan sesuatu ke dalam domain publik", meskipun itu jelas merupakan salah satu pendekatan untuk open source.
  2. Tidak ada yang "memaksa" Anda, pemilik hak cipta, untuk membuat kode menjadi publik dengan cara apa pun hanya karena Anda melampirkan lisensi padanya.
  3. Tetapi jika Anda menggunakan lisensi OS, Anda tidak dapat mencegah siapa pun yang "memperoleh" kode lisensi OS Anda untuk mempublikasikannya dengan cara apa pun, yang secara eksplisit berada dalam hak mereka berdasarkan semua lisensi ini.
  4. Lisensi Copyleft (mis., GPL) memang mensyaratkan pemasok (tetapi bukan pemilik) untuk membuat karya turunannya menjadi publik dan sumber terbuka. Permisif (MIT, BSD) tidak. (ini mungkin sedikit penyederhanaan, tetapi merupakan perbedaan mendasar)
  5. Tidak ada klausul "takeback" untuk sebagian besar lisensi open-source (mis., MIT) sehingga begitu seseorang telah "memperoleh" kode Anda, mereka memiliki hak untuk menggunakannya terus-menerus, di bawah ketentuan lisensi di mana mereka menerimanya.
  6. Anda selalu dapat mendistribusikan versi masa depan kode Anda di bawah lisensi yang berbeda, atau membuatnya sepenuhnya milik. Itu tidak menghentikan seseorang untuk memulai dengan versi open-source Anda sebelumnya (dengan asumsi mereka "mendapatkannya") dan menambahkan bagian baru mereka sendiri dan mendistribusikannya.
  7. Anda dapat menghapus saluran "memperoleh" untuk versi kode Anda sebelumnya, mis., Cabut dari github. Namun, seperti yang disebutkan, itu tidak mencegah orang lain menggunakan atau mendistribusikan versi sebelumnya yang Anda buka bersumber, dengan cara apa pun.

Dengan dasar itu, saya akan beralih ke pertanyaan Anda.

Saya tidak mendistribusikan kode saya kepada siapa pun. Saya tidak perlu mendistribusikan kode lisensi MIT saya kepada siapa pun, jika saya memiliki hak ciptanya, benar? Maksud saya, dapatkah seseorang meminta saya melepaskan kode saya yang sekarang saya klaim berada di bawah lisensi MIT? Itu tidak akan menjadi akhir dunia dan saya pasti akan setuju untuk melakukan itu di bawah ancaman hukum. ... Pada saat yang sama, saya tidak ingin mendistribusikan kode ini sebagai proyek sumber terbuka kepada siapa pun.

Sebagai pemegang hak cipta, Anda tidak harus mendistribusikan kode apa pun kepada siapa pun; Anda tidak harus menghormati permintaan seperti itu (bahkan jika itu adalah GPL). Anda memegang semua hak. Namun, dalam situasi yang Anda jelaskan, Anda akan mendistribusikan ke perusahaan baru Anda dan melisensikannya kepada mereka selamanya di bawah lisensi OS. Majikan Anda (kemungkinan besar mantan majikan) dapat menempelkan kode Anda ke internet, dan Anda tidak akan bisa melakukan apa pun selain menggerutu.

Saya menganggap Anda berarti "siapa pun selain majikan saya". Jika Anda tidak ingin memberikannya kepada perusahaan Anda "sebagai sumber terbuka" dan memberi mereka semua hak yang termasuk dalam lisensi itu, termasuk redistribusi dan penggunaan terus-menerus dengan cara apa pun yang mereka inginkan, maka Anda tidak boleh menggunakan lisensi sumber terbuka. Anda harus melisensikannya langsung kepada mereka di bawah ketentuan yang Anda inginkan. Bullet tunjukkan apa yang Anda inginkan, dan minta pengacara menagih Anda satu atau dua jam untuk memasukkannya ke dalam bentuk paragraf. Atau tulis sendiri. Lisensi hanyalah kontrak yang hanya perjanjian yang dibuat dengan kata-kata.

Tujuan akhir saya adalah untuk dapat menggunakan versi turunan dari kerangka kode saya sebelumnya tanpa kehilangan hak cipta atasnya.

Anda tidak dapat kehilangan hak cipta kecuali Anda memberikannya kepada seseorang, melisensikannya secara eksklusif (termasuk mengecualikan diri Anda) atau kehilangannya. Tidak ada lisensi sumber terbuka. Anda akan selalu dapat menggunakan versi turunan yang Anda buat, dan bahkan dapat melisensikan turunan secara berbeda atau mempertahankan semua hak.

Tetapi, perhatian utama dan sah dari Anda tampaknya adalah bahwa Anda terus dapat mempertahankan hak cipta dan menggunakan kode Anda di masa mendatang tanpa majikan mengklaim kode tersebut sebagai milik mereka atau bahwa Anda berada di luar hak Anda untuk melakukannya. Kunci untuk ini adalah membuat bukti yang tidak terbantahkan bahwa A) Anda mempertahankan hak cipta untuk karya Anda sebelumnya dan memberikannya kepada mereka di bawah ketentuan lisensi X (MIT berfungsi, jika Anda setuju dengan aspek sumber terbuka seperti dijelaskan di atas. ) B) mereka setuju dengan persyaratan ini, dan C) apa, tepatnya pekerjaan sebelumnya.

Untuk (A) dan (B) Anda dapat membuat mereka menandatangani atau menyetujui secara tertulis untuk sesuatu yang merujuk atau menyertakan lisensi dan bahwa mereka memahami bahwa Anda membawa kode ke meja berdasarkan ketentuan-ketentuan tersebut. Mengenai (C) saya tidak yakin apa cara standar untuk melakukan ini, tetapi harus logis. Jika tidak terlalu besar, Anda hanya dapat mencetak kode dan memasukkannya dalam lampiran dalam salinan perjanjian yang ditandatangani oleh Anda dan majikan Anda. Simpan salinan Anda, dengan tanda tangan mereka di atasnya. Jika terlalu besar untuk dicetak secara praktis, sepertinya hash md5 akan berguna di sini. Mungkin Anda bisa menyebutnya sebagai "file zip bernama X di private github repository /, (atau situs ftp, dll.), Yang memiliki hash md5 dari XXXXXX ... dan diemail ke perusahaan Y yang reprentatif di Z tanggal". Kemudian Anda dapat mengirim email kepada manajer Anda atau pengacara mereka atau siapa pun dari akun email pribadi Anda dan bahkan jika mereka menghapus salinan Anda, Anda masih menyimpan salinan Anda dan mereka tidak dapat berdebat bahwa Anda memperkirakan hash kode MD5 masa depan yang belum ditulis . Secara teoritis itu akan mencegah mereka mengklaim hal lain di jalan.

Ben Roberts
sumber
Itu luar biasa, Ben. Terima kasih atas bantuan Anda. Saya sudah bekerja, jadi saya bertanya-tanya apakah email ke manajer saya yang menyatakan situasi dan ketentuan lisensi dari saya kepada mereka akan cukup. Kemudian saya akan memasukkan lisensi (Hak Cipta (c) NAMA SAYA - Lisensi yang diberikan kepada PERUSAHAAN bla, bla, bla) pada setiap kode sumber yang saya bawa. Bagaimana menurut Anda?
JohnPristine
Email tentu saja bisa menjadi bukti pemahaman atau perjanjian, misalnya kontrak. Jika Anda mengusulkan untuk membawa kode ke meja berdasarkan persyaratan tertentu dan seseorang yang berwenang di perusahaan menyetujuinya, sepertinya itu akan membuat kontrak dengan cukup baik. Saya pikir ide Anda tentang ketentuan (C) / lisensi di setiap file juga bagus. Pertanyaannya adalah apakah Anda akan mempertahankan (C) perbaikan untuk file atau tidak. Jika tidak, Anda mungkin ingin membuat catatan versi asli dari file yang Anda simpan satu-satunya (C), misalnya dengan file zip & hash md5 yang dikirim ke manajer Anda.
Ben Roberts
Jawaban yang luar biasa, terima kasih. Sangat terperinci dan diformulasikan dengan baik.
haylem
6

(Saya bukan pengacara.)

Saya melihat beberapa masalah potensial dengan ini:

  • Jika yang terburuk menjadi yang terburuk, Anda harus membuktikan bahwa Anda menulis kode ini sebelum mulai bekerja di sana, dan bahwa ketika Anda menggunakannya dalam proyek Anda di tempat kerja, majikan Anda tahu bahwa kode itu ada di bawah hak cipta Anda dan di bawah lisensi MIT. . Karena tujuan utama dari hal ini adalah mempertahankan hak cipta Anda, bukan menetapkan ketentuan redistribusi, kontrak tertulis dengan majikan Anda tentang penggunaan kode Anda yang sebelumnya ditulis tampaknya merupakan ide yang lebih baik.

  • Anda mengatakan ingin melindungi hak cipta dan kemampuan untuk membangun "bahkan versi turunan lainnya". Sekarang sepertinya saat Anda bekerja, Anda akan memiliki beberapa ide bagus dan mengimplementasikannya. Tampaknya bagi saya bahwa ini akan menjadi berbulu ketika Anda meninggalkan pekerjaan Anda dan kemudian 'mengimplementasikan kembali' ide-ide itu untuk membangun versi lain dari perpustakaan Anda - karena Anda tidak dapat melakukan apa pun yang Anda inginkan dengan kode yang Anda tulis di pekerjaan Anda (dan sampai batas tertentu, ide-ide di baliknya).

us2012
sumber
1) Saya berencana untuk melakukan ini dengan file lisensi bersama dengan kode perusahaan, yang menyatakan bahwa itu didasarkan pada karya turunan dengan lisensi MIT. Untuk membuktikannya ditulis sebelum saya berencana untuk menghitung dengan deklarasi formulir penemuan saya sebelumnya. 2) Saya yakin tidak ada ide yang dilindungi hak cipta, kecuali ada paten. Kode ini memiliki hak cipta. Tantangannya adalah bagaimana mengetik ulang / mengimplementasikan kembali / menggunakan kembali ide tanpa melanggar hak cipta dari kode asli yang diterapkan.
JohnPristine
2
Memang benar bahwa gagasan tidak memiliki hak cipta tetapi dapat dianggap sebagai "rahasia dagang" atau "pengetahuan" atau (jika dapat dipatenkan) "gagasan yang dapat dipatenkan" atau jenis "kekayaan intelektual" lainnya yang kemungkinan Anda sepakati bahwa perusahaan miliki. Ini semacam area yang berantakan.
Ben Roberts
4

Saya bukan pengacara, tetapi ini akan menjadi solusi saya:

  1. Lepaskan kode di bawah lisensi GNU GPL v3 dalam repositori publik, tempat semua orang dapat melihatnya.

  2. Lisensi GPL tidak mengizinkan orang lain untuk mengambil kode Anda dan memasukkannya ke dalam perangkat lunak komersial milik mereka dan menutup kode tersebut.

  3. Jika kode itu 100% dibuat oleh Anda dan tidak mengandung karya dari orang lain atau karya turunan, maka GPL memungkinkan Anda untuk melisensikan kode Anda di bawah lisensi lain juga, dalam hal ini Anda diizinkan untuk menggunakannya dalam pekerjaan Anda untuk iklan komersial. kode. Namun, Anda harus menjadikan atasan Anda pemegang lisensi dari lisensi kepemilikan alternatif ini.

  4. Solusi ini akan membuktikan bahwa Anda menulis kode Anda SEBELUM Anda menerima pekerjaan itu.

  5. Anda dapat mengiklankan bahwa kode Anda tersedia di bawah lisensi kepemilikan untuk dijual (untuk uang) dan kemudian pihak yang berkepentingan dapat menghubungi Anda untuk membelinya.

ruben2020
sumber
Saya tidak ingin melakukan 1 atau merilis kode dalam repositori publik. Saya mengerti ini adalah cara termudah untuk membuktikan kode itu ditulis sebelumnya. Saya pikir para profesional perangkat lunak kehilangan lisensi semacam ini, lisensi yang memungkinkan mereka untuk menggunakan kode mereka untuk suatu pekerjaan tanpa membuatnya menjadi sumber terbuka dan tanpa kehilangan lisensi tersebut. Jika Anda melakukan kembali semuanya, kode akan serupa, tidak ada jalan keluar dari itu. Dan desain kamar yang bersih tidak praktis untuk seorang karyawan.
JohnPristine
Tetapi solusi Anda memungkinkan majikan Anda untuk mempublikasikan kode sumber Anda di repositori publik. Saya pikir menggunakan lisensi open-source ketika Anda tidak ingin itu open source adalah tidak bijaksana.
markijbema
2

Apakah ada alasan khusus Anda tidak dapat bertanya kepada majikan Anda apakah mungkin bahwa Anda mempertahankan hak cipta pada kode umum yang Anda tulis untuk kerangka kerja Anda (yang pada gilirannya memberi mereka beberapa kode gratis saat ini), dan memberi mereka Anda-dapat-melakukan-segalanya -Anda inginkan dengan itu (setuju, ini seperti MIT).

Namun, jika Anda melisensikan kode MIT saat ini, tidak ada alasan mengapa perusahaan Anda harus membuka sumber versi modifikasi mereka (dimodifikasi oleh Anda), jadi saya akan mengatakan itu tidak menyelesaikan banyak. Bahkan LGPL tidak akan menyelesaikan ini, selama kode tersebut tidak 'didistribusikan'.

Semua dalam semua kesepakatan Anda kedengarannya tidak masuk akal: Anda memiliki beberapa kode kerangka kerja, dan Anda bersedia menyumbangkannya ke perusahaan, selama Anda dapat mempertahankan kode tersebut, dan menggunakannya kembali untuk proyek lain nanti, jadi mengapa tidak bertanya?

markijbema
sumber
Ya! Itu selalu pendekatan terbaik yang harus saya setujui. Hanya berani dan tanyakan. Jika mereka berpikir Anda aneh untuk menanyakan hal itu, maka mulailah mencari pekerjaan lain. Sesimpel itu. Hidup adalah tentang kejujuran dan risiko. :)
JohnPristine
2

IANAL, tanyakan pada pengacara sungguhan, dll.

Pertama-tama, saya pikir Anda percaya bahwa ketika Anda memiliki hak cipta, Anda hanya dapat melisensikan produk kepada diri Anda sendiri dengan persyaratan yang sama dengan Anda melisensikannya kepada orang lain. Ini salah: Anda dapat melisensikannya kepada diri Anda sendiri dalam lisensi apa pun yang sesuai, dan melisensikannya kepada orang lain di bawah lisensi yang berbeda.

Yang berarti Anda dapat membuat lisensi khusus untuk perusahaan yang akan mempekerjakan Anda, dan menjadikan perangkat lunak tersedia bagi mereka sebagai perjanjian terpisah. Tentu saja, ini harus dilakukan oleh pengacara sungguhan.

Mintalah perusahaan Anda menandatangani lisensi terpisah, yang secara eksplisit menyatakan bahwa Anda memiliki hak cipta dan Anda memberikan hak tertentu kepada mereka, bukan hak cipta.

Adapun masalah sekunder, ada cara lain untuk membuktikan tanggal sebelumnya, selain open-source proyek. Misalnya, Anda dapat meng-host pada server file yang tersedia secara publik, yang mengatakan bahwa Anda memang menulis perangkat lunak ini, pada tanggal yang ditentukan, berisi misalnya beberapa hash berbeda dari versi saat ini, atau bahkan versi proyek yang dienkripsi proyek.

Ini berarti bahwa jika Anda berada di bawah ancaman hukum, Anda dapat membuktikan tanggal penggunaan sebelumnya kepada hakim, namun Anda tidak mengungkapkan apa pun tentang proyek tersebut, selain itu Anda adalah penulis dan tanggal Anda mengungkapkannya. Anda harus berkonsultasi dengan pengacara tentang kemungkinan validitas argumen semacam itu, tetapi saya yakin itu akan diterima di sebagian besar pengadilan.

K.Steff
sumber