Apakah Anda cenderung menulis nama Anda sendiri atau nama perusahaan Anda dalam kode Anda?

13

Saya telah mengerjakan berbagai proyek di rumah dan di tempat kerja, dan selama bertahun-tahun saya telah mengembangkan dua API utama yang saya gunakan di hampir semua situs web berbasis AJAX. Saya telah mengkompilasi keduanya ke dalam DLL dan memanggil namespace Connell.Database dan Connell.Json.

Bos saya baru-baru ini melihat ruang nama ini dalam dokumentasi perangkat lunak untuk proyek untuk perusahaan dan mengatakan saya tidak boleh menggunakan nama saya sendiri dalam kode. (Tapi ini kode saya!)

Satu hal yang perlu diingat adalah bahwa kami bukan perusahaan perangkat lunak. Kami adalah perusahaan pendukung TI, dan saya satu-satunya pengembang perangkat lunak penuh waktu di sini, jadi tidak ada prosedur apa pun mengenai bagaimana kami harus menulis perangkat lunak di perusahaan.

Satu hal yang perlu diingat adalah bahwa suatu hari saya bermaksud merilis DLL ini sebagai proyek open-source.

Bagaimana pengembang lain mengelompokkan ruang nama mereka di dalam perusahaan mereka? Apakah ada yang menggunakan perpustakaan kelas yang sama dalam proyek pribadi dan proyek kerja?

Juga apakah ini bekerja sebaliknya? Jika saya menulis perpustakaan kelas sepenuhnya di tempat kerja, siapa yang memiliki kode itu? Jika saya telah melihat perpustakaan dari awal hingga selesai, dirancang dan diprogram. Bisakah saya menggunakannya untuk proyek lain di rumah?

Terima kasih,

Memperbarui

Saya telah berbicara dengan bos saya tentang masalah ini dan dia setuju bahwa itu adalah objek saya dan dia baik-baik saja bagi saya untuk membukanya. Sebelum percakapan ini, saya mulai mengubah objek, yang sebenarnya cukup produktif dan kode sekarang lebih cocok untuk proyek spesifik ini daripada sebelumnya.

Tapi terima kasih untuk semua yang terlibat untuk debat yang sangat menarik. Saya harap semua teks ini tidak sia-sia dan seseorang belajar darinya. Tentu saja saya lakukan.

Bersulang,

Connell
sumber
10
Saya pikir pertanyaan ini perlu peringatan seperti "Bidang ranjau legal di depan"
Matt Ellen
4
tidak perlu mengatakan apa-apa tentang perangkat lunak pada khususnya. Begitu mereka membayar Anda untuk waktu Anda, apa pun yang Anda lakukan pada waktu itu adalah milik mereka.
gbjbaanb
1
Di sinilah masalahnya terletak. Apa yang saya gunakan di rumah, saya lakukan di waktu saya sendiri. Namun, saya memiliki versi kode yang diedit untuk proyek kerja, yang saya edit pada waktunya.
Connell
1
@Connell - Bukan pengacara juga dan itu tergantung pada negara tempat Anda berada, tetapi biasanya mungkin ada area abu-abu tentang apa pun yang Anda lakukan di waktu Anda sendiri, apa pun yang Anda lakukan di waktu mereka hampir pasti adalah milik mereka dan mereka memiliki IP . Versi singkat - ini bukan kode Anda, ini milik mereka, Anda baru saja menulisnya.
Jon Hopkins
2
@Matt Saya pikir saya harus ngobrol dengan majikan saya kalau begitu. Lihat apakah saya bisa mendapatkannya secara tertulis, siapa yang memiliki kode yang saya lakukan di waktu saya. Satu pertanyaan terakhir. Jika saya merilis kode rumah sebagai sumber terbuka, itu akan memberi siapa pun hak untuk menggunakan dan mengedit kode saya, termasuk majikan saya? Bukankah itu akan menyelesaikan masalah? Terima kasih atas bantuan Anda!
Connell

Jawaban:

11

(Penafian standar - Saya bukan pengacara ...)

Dari profil Anda, Anda tampaknya berada di Inggris.

Dalam hal itu tergantung pada bagaimana Anda bekerja. Jika Anda adalah anggota staf tetap, maka hampir dipastikan majikan Anda memiliki pekerjaan itu . Anda menulisnya dan memiliki hak untuk diidentifikasi sebagai penulis (yaitu Anda dapat memberi tahu orang-orang bahwa Anda menulisnya) tetapi kepemilikan kode dan kekayaan intelektual di dalamnya berada pada perusahaan Anda.

Jika Anda seorang kontraktor maka mungkin ada kasus bahwa Anda memiliki beberapa klaim kepada mereka tetapi itu akan tergantung pada sifat kontrak. Secara umum, sebagian besar kontraktor TI Inggris digolongkan sebagai pekerja untuk disewa yang berarti bahwa IP lagi berada di tangan perusahaan dan bukan individu. Tentu saja berbicara tentang kontrak kerja standar menunjukkan bahwa ini akan menjadi masalah apakah Anda tetap kontrak.

Dalam keadaan ini Anda tidak memiliki hak untuk merilisnya sebagai open source (atau memang untuk membawanya ke perusahaan Anda berikutnya) dan Anda harus memikirkan mereka dengan cara yang sama seperti Anda memikirkan perangkat lunak berpemilik lainnya dan bertindak sesuai - mereka ' Anda bukan milik Anda, Anda hanya memiliki akses ke kode sumber.

EDIT : Mengenai fakta bahwa Anda mengembangkan sebagian di waktu Anda sendiri. Begitu Anda mulai menggunakannya di tempat kerja tanpa menegaskan hak-hak Anda dan melisensikannya kepada perusahaan sebelumnya, Anda membuatnya sangat keruh karena sekarang sangat sulit untuk menunjukkan apa yang dilakukan saat itu. Dari apa yang Anda katakan, pustaka kode telah diuji, didebug, dan diperbaiki dalam waktu kerja (dan perusahaan memiliki apa pun yang dilakukan dalam waktu mereka), ditambah tumpang tindih yang jelas dengan pekerjaan yang Anda lakukan untuk mereka (sebagaimana dibuktikan oleh fakta bahwa mereka memenuhi persyaratan yang dimiliki perusahaan yang sedang Anda kerjakan) berarti mereka memang memiliki klaim dan mungkin yang cukup kuat.

Unite Union memiliki bagian tentang ini . Bagian kuncinya adalah:

"Ada ketentuan hukum yang tegas:

· Bagian 11 (2) Undang-Undang Hak Cipta, Desain, dan Paten (CDPA) 1988 dan

· Bagian 39 dari Undang-Undang Paten 1977

berurusan dengan kepemilikan karya karyawan. Berdasarkan ketentuan ini, pengusaha pada dasarnya mendapatkan kepemilikan atas hak kekayaan intelektual sehubungan dengan setiap karya yang dibuat oleh seorang karyawan yang ia miliki

· Diharuskan untuk memproduksi berdasarkan ketentuan kontrak kerja mereka atau

· Secara wajar dapat diharapkan untuk menghasilkan berdasarkan ketentuan-ketentuan kontrak itu.

Jelas, semakin luas deskripsi pekerjaan dari masing-masing karyawan, semakin sulit baginya untuk menghindari efek dari Bagian 11 (2) dan 39 di atas.

Bahkan jika pekerjaan itu dibuat oleh karyawan pada waktu mereka sendiri dan menggunakan sumber daya mereka sendiri, karyawan tersebut tidak akan selalu dapat mengklaim hak apa pun dalam pekerjaan itu, jika pemberi kerja menunjukkan bahwa sifat pekerjaan yang diciptakan adalah apa yang bisa direnungkan secara wajar sebagai bagian dari tugas karyawan. Hal ini ditunjukkan oleh kasus Missing Link Software v Magee [1989] FSR 361. Di sana, pengadilan berpendapat bahwa hak cipta dalam program perangkat lunak yang ditulis oleh seorang karyawan di luar waktu kerjanya dan pada peralatannya sendiri dibuat selama masa kerja, karena itu termasuk dalam ruang lingkup tugas yang Tuan Magee lakukan untuk dilaksanakan. "

Pada dasarnya karena pustaka-pustaka ini memenuhi persyaratan khusus pada proyek yang Anda kerjakan untuk mereka, mereka memiliki klaim atas pustaka tersebut.

EDIT 2 : Anda perlu memahami bahwa fakta bahwa ada dua versi kode ini mungkin tidak relevan. Kode memenuhi kebutuhan perusahaan pada proyek yang sedang Anda kerjakan dan Anda menulisnya saat dipekerjakan oleh perusahaan (bahkan jika itu dalam waktu Anda sendiri). Itu memberi mereka klaim kuat pada "IP inti" dari kode, tidak hanya pada salinan spesifik dari hal itu yang Anda implementasikan pada proyek mereka - melihatnya sebagai dua cabang tidak mengubah itu.

Perlu dicatat bahwa bahkan menulis ulang itu akan disebut karya turunan dan IP masih akan duduk dengan perusahaan, bahkan pada versi baru.

Saya pikir Anda memiliki gagasan tentang apa yang Anda inginkan menjadi kenyataan dan Anda mencoba untuk memutar hal-hal untuk membuatnya begitu, tetapi dari apa yang Anda katakan saya percaya perusahaan memiliki klaim yang cukup kuat untuk kode yang Anda tidak akan dapat bekerja di sekitar.

Jon Hopkins
sumber
Semua orang sepertinya mengatakan hal yang sama. Satu hal yang saya benar-benar bingung tentang hal itu adalah mayoritas orang mengatakan kepada saya untuk tidak melepaskan mereka sebagai sumber terbuka. Jika itu kode saya, yang saya kembangkan di waktu saya sendiri, dengan IDE saya sendiri di komputer saya sendiri. Tentunya saya memiliki hak untuk merilis kode itu? Ini kemudian akan memungkinkan saya untuk menggunakan dan mengedit kode ini untuk perusahaan, seolah-olah itu kode sumber terbuka lainnya?
Connell
@Connell - lihat edit di atas, versi TL; DR: haknya mungkin masih milik perusahaan, bukan Anda.
Jon Hopkins
Jawaban yang sangat bagus Terima kasih. Saya memutuskan untuk menulis ulang perpustakaan di tempat kerja. Meskipun masih melakukan hal yang sangat mirip, kode itu akan menjadi milik perusahaan. Tidak ada yang dapat dikatakan tentang kesamaan antara proyek-proyek tersebut, karena tidak ada kontrak atau hukum yang menghilangkan hak saya untuk belajar dari pengalaman di rumah untuk menulis perangkat lunak di tempat kerja atau sebaliknya.
Connell
1
@ Connell - Saya pikir Anda telah melewatkan intinya. Kode yang ada sudah menjadi milik perusahaan - Anda harus menulis ulang di rumah sepenuhnya di waktu Anda untuk memiliki versi yang Anda miliki. Bahkan kemudian itu akan dipertanyakan. Saya melihat dari situs web Anda bahwa Anda ingin pergi. Hal terbaik untuk dilakukan adalah mendapatkan pekerjaan baru dengan kontrak yang menjelaskan siapa yang memiliki apa dan kemudian mulai mengerjakan penulisan ulang.
Jon Hopkins
5
@Connell - Anda mengatakan bahwa kode di rumah belum disentuh waktu perusahaan. Bisakah Anda membuktikannya? Sepenuhnya dan meyakinkan? Fakta bahwa ada versi di tempat kerja Anda yang merupakan versi modifikasi dari kode membuat air terlalu banyak untuk dibuktikan. Anda telah memberi majikan Anda kepemilikan kode tersebut karena versi kode itu ada di sistem mereka. VCS mereka (Mereka memiliki satu saya berasumsi) akan memiliki log dari versi kode yang (di mata mereka) dikembangkan pada waktu mereka, jadi menghapusnya tidak akan membuat perbedaan kecuali bahwa mereka sekarang dapat mengklaim telah membayar untuk mengembangkan dua kali.
uɐɪ
12

Jika perusahaan Anda membayar Anda untuk kode, itu kode mereka. Saya tidak akan merilisnya sebagai proyek open source kecuali Anda memiliki izin.

RoboShop
sumber
Saya sudah menulis mungkin 90% dari proyek ini di rumah. Saya telah membuat beberapa perubahan di kantor, dan pada kenyataannya, saya tidak menggunakan perubahan ini di rumah sama sekali, jadi jika saya merilisnya tanpa perubahan ini? Apakah saya perlu meminta izin?
Connell
1
@Connell: Pertama, saya bukan pengacara. Jika itu masalahnya, saya akan memastikan bahwa saya akan membuat pemisahan yang jelas antara API Anda dan kode mereka. Saya bahkan tidak memiliki kode sumber di tempat kerja, dan hanya referensi DLL.
RoboShop
@ Connell: Dan juga untuk mengulangi sekali lagi, saya bukan pengacara. Itulah yang akan saya lakukan ...
RoboShop
Ya saya berpikir tentang menempelkannya di DLL. Saya menjadi agak khawatir tentang itu semua, jadi saya harus mengambil beberapa tindakan .. Saya pikir pilihan saya adalah menggunakan DLL (tapi jika saya tidak lagi bekerja di sini dan mereka perlu membuat perubahan pada lapisan kode, mereka harus menulis ulang, yang mungkin tidak mereka sukai), atau mengganti nama dan menulis ulang dengan desain yang sedikit berbeda.
Connell
3

Ada kasus di mana kode ditulis di rumah ketika bekerja untuk sebuah perusahaan dianggap milik perusahaan. Saya tidak yakin apakah itu pernah diuji di pengadilan tetapi saya pikir cukup jelas bahwa setiap kode yang Anda tulis menggunakan peralatan perusahaan, selama waktu perusahaan (yaitu saat Anda duduk di meja Anda dibayar oleh perusahaan untuk menulis kode) dan untuk perangkat lunak perusahaan adalah milik perusahaan. Anda membuat perjanjian dengan mereka (periksa kontrak kerja Anda) yang mengatakan mereka akan memberi Anda uang sebagai imbalan bagi Anda untuk menulis kode untuk mereka. Anda tidak akan terkesan jika mereka mengatakan bahwa mereka akan menahan gaji Anda karena mereka bermaksud memberikannya sebagai amal.

Jadi, singkatnya, itu bukan kode Anda. Anda tidak memilikinya. Ruang nama harus nama perusahaan karena itu milik mereka. Mereka membayar seseorang untuk menulisnya! (yaitu Anda).


  • peringatan: Anda perlu memeriksa kontrak Anda, atau ketentuan kerja untuk menentukan apakah hal di atas benar dalam kasus Anda, saya akan mengatakan itu tetap karena mereka dapat dengan mudah memecat Anda karena melakukan hal Anda sendiri di waktu perusahaan setidaknya, dan kemudian mengklaim itu milik mereka. saran terbaik untuk masa depan adalah menjaga apa yang Anda lakukan untuk diri sendiri dan apa yang Anda lakukan untuk majikan Anda benar - benar terpisah.
gbjbaanb
sumber
Terima kasih atas sarannya, saya pikir saya akan menulis ulang kode untuk perusahaan dan memisahkannya. Saya pikir itu kode saya dan saya menggunakannya untuk perusahaan, hampir seolah-olah saya memiliki lisensi dan memberikan izin kepada perusahaan untuk menggunakannya.
Connell
2

Saya pikir ada tempat di mana Anda membuat kesalahan. Masalahnya adalah Anda menulis kode di rumah pada waktu Anda sendiri, dan kemudian menemukan bahwa kode itu akan berguna di tempat kerja, jadi Anda baru saja mulai menggunakannya di sana juga. Apa yang mungkin menjadi hal yang tepat untuk dilakukan dalam kasus ini, adalah tidak memasukkan kode yang dilakukan di luar pekerjaan ke dalam kode perusahaan Anda. Anda harus menggunakan waktu perusahaan untuk menulis ulang fungsionalitas yang sudah Anda tulis, sehingga mereka dapat menggunakannya. "Tapi itu buang-buang waktu," katamu. Jadi pilihan lain adalah mereka melisensikan / membeli kode dari Anda dengan harga atau gratis sehingga mereka tahu mereka secara hukum diizinkan untuk menggunakan kode tersebut. Saya pikir apa yang mungkin terjadi dalam pikiran atasan Anda adalah mereka bertanya-tanya apa yang terjadi pada kode itu ketika Anda pergi? Apakah mereka masih memiliki hak untuk menggunakan kode itu?

Banyak pemrogram mengerjakan hal-hal di waktu luang mereka yang mungkin akan berguna bagi majikan mereka, tetapi Anda tidak boleh mulai mencampur kode tanpa persetujuan dari perusahaan.

Kibbee
sumber
2

Programmer masa depan perlu tahu siapa yang menulis kode jika tingkat dokumentasi tidak memadai (yang sayangnya sering demikian).

Saya selalu menandatangani nama saya karena alasan ini. Dan itu juga mengingatkan saya bahwa saya perlu memastikan saya melakukan pekerjaan dengan baik, karena saya tahu bahwa jika saya tidak melakukannya, seorang rekan yang marah akan menelepon saya di tengah malam! :)

Alex
sumber
3
Itulah gunanya log kontrol sumber.
Adam Lear
Ya, itu benar, tetapi sebagai pengembang lepas saya terlalu sering ditugaskan untuk proyek-proyek di mana kontrol sumber disalahgunakan atau tidak digunakan sama sekali. Tidak perlu lebih dari beberapa detik untuk menambahkan 'cap' Anda ke file sumber Anda. Perubahan ke kode yang ada Saya selalu mendokumentasikan dalam sistem kontrol sumber yang tersedia ... :)
Alex
Kecuali ketika kode dipindahkan ke repositori baru untuk alasan apa pun dan log hilang. Punya situasi seperti ini baru-baru ini, di mana masalah tidak dapat dilacak karena itu.
scrwtp
0

Seperti yang hampir semua orang katakan, mungkin perusahaan memiliki klaim atas kode tersebut (dengan frasa seperti "Saya sudah menulis mungkin 90% dari proyek ini di rumah." Itu keruh).

Salah satu hal yang perlu dipertimbangkan di masa depan adalah dengan hati-hati meninjau kontrak kerja dan baik mendapatkan selimut 'waktu sendiri, memiliki kit -> kepemilikan sendiri' atau mendapatkan pengabaian per proyek dari perusahaan. Sayangnya, itu tidak membantu saat ini.

Vatine
sumber
0

Apa yang salah dengan menggunakan nama lain? Nama putra / putri / kucing / anjing / hamster Anda? Maka Anda tidak harus mengalami kesulitan ini - Anda baru saja memilih nama 'ramah'.

Mathew
sumber
Anehnya saya hanya melihat ini. Saya mencoba memikirkan nama proyek unik yang bagus untuk itu :)
Connell
... Saat ini saya menggunakan 'Theodore' - nama kucing tetangga saya. Ini tidak pernah muncul selain dari tidak berbahaya. Nama-nama lain yang saya gunakan telah 'sepertinya ide bagus pada saat itu' dan tidak berhasil dalam jangka panjang. Berikut ini beberapa cara untuk membuat Anda berpikir: applemuseum.bott.org/sections/codenames.html
Mathew
0

Semua jawaban tampaknya berkonsentrasi pada kepemilikan.
Tetapi kepemilikan dan kepengarangan (penulis dan pemilik, resp) berbeda pendapat.
Penulis terkait dengan hak moral, atau tidak dapat dicabut, yang :

  • abadi
  • tidak dapat dicabut
  • Benar tidak dapat dijelaskan
  • Tidak bisa diubah
    Jika suatu karya telah dibuat, dan hasil eksploitasinya, dapat disita oleh kreditor, jika demikian, maka yang terakhir mungkin tidak menuntut bahwa karya tersebut dibocorkan untuk tujuan memulihkan uang yang disebabkan oleh penulisnya.

Hak moral, atau tidak dapat dicabut, hak penulis tidak dapat diabaikan di bawah sebagian besar yurisdiksi .

Sedangkan kepemilikan terkait dengan Ekonomi, alias properti, hak.

Mengapa tidak sekadar mengikuti praktik bagaimana artikel-artikel ilmiah ditandatangani, ketika para pekerja sering bekerja sebagai peneliti / profesor tamu, yang dipekerjakan / dibiayai oleh banyak entitas. atau di bawah pembiayaan independen pihak 3d: nama penulis + di mana pekerjaan telah dilakukan + kredit yang membiayai pekerjaan tersebut.

Perhatikan bahwa ini adalah banyak hubungan banyak (satu penulis, dan karyanya, dapat memiliki beberapa afiliasi dan pembiayaan).

Gennady Vanin Геннадий Ванин
sumber