Haruskah Anda menyimpan salinan semua kode yang Anda tulis? [Tutup]

197

Saya tahu perusahaan tempat Anda bekerja memiliki kode dan jelas Anda akan ditangkap jika Anda mencoba menjualnya. Tetapi apakah itu biasa bagi pengembang untuk menyimpan salinan pribadi dari kode yang mereka tulis (untuk referensi di masa mendatang)?

Rupanya orang ini dikirim ke penjara karena menyalin kode sumber.

superFoo
sumber
13
itu mungkin masalah hukum serius jika Anda entah bagaimana menjual / menggunakannya kembali kepada perusahaan pesaing.
EL Yusubov
19
Perhatikan bahwa dalam artikel yang ditautkan, ini adalah kasus yang agak spesifik ketika ia berjalan pergi dengan kode yang kemungkinan besar dicakup oleh NDA (mempertimbangkan klien), dan bahkan jika tidak, saya tidak yakin saya akan mengambil risiko. berjalan dengan kode yang dikembangkan untuk Federal Reserve Bank yang panik ! Anda tidak boleh memiliki semuanya di sana jika Anda berpikir tidak ada yang salah dengan itu dan bahwa tidak akan ada setidaknya beberapa orang berpengaruh yang tidak akan menyukai ide ini sama sekali jika mereka pernah mendengar Anda membawa kode bersama Anda .
haylem
10
Dengan asumsi bahwa itu adalah pekerjaan untuk disewa, dan karena itu mantan majikan Anda memiliki hak cipta pada kode yang Anda tulis untuk mereka dan belum merilisnya sebagai sumber terbuka, saya akan mengatakan bahwa menyimpan salinan kode yang Anda tulis persis sama tidak pantasnya dengan menjaga salinan kode yang ditulis rekan kerja Anda.
Keith Thompson
37
@ Davidvidetet - mengapa majikan tidak akan mempekerjakan Anda untuk memiliki semua yang Anda lakukan untuk mereka? Apakah Anda pikir bagian dari rumah Anda adalah milik tukang kayu yang melakukan pembingkaian?
Reactgular
10
@MathewFoscarini Saya mengerti apa yang Anda katakan, tapi saya berbicara tentang algoritme. Itu akan seperti mengatakan tukang kayu tidak memiliki langkah-langkah yang ia ambil untuk membangun rumah
David Peterman

Jawaban:

303

Tetapi apakah itu biasa bagi pengembang untuk menyimpan salinan pribadi dari kode yang mereka tulis (untuk referensi di masa mendatang)?

Saya tidak tahu seberapa umum itu, tetapi umum atau tidak, itu masih ide yang buruk.

Pemrogram sering beroperasi dalam pola pikir bahwa menyelesaikan masalah yang sama dua kali adalah buang-buang waktu. Kami mencoba mendesain kode kami agar dapat digunakan kembali (kadang-kadang). Kami membangun perpustakaan kelas dan fungsi untuk digunakan kembali di beberapa titik di masa depan. Kami kadang-kadang bahkan memberikan kode kami sehingga tidak ada orang lain yang harus menulis kode untuk menyelesaikan masalah yang sama seperti yang baru saja kami lakukan. Jadi bisa dimengerti jika Anda ingin membawa kode "Anda" saat berpindah dari satu pekerjaan ke pekerjaan lain. Tetapi Anda tetap tidak harus melakukannya, karena alasan berikut:

  1. Bukan kode yang harus Anda ambil.

  2. Kode yang Anda tulis untuk mantan majikan Anda adalah bagian dari bisnis yang mereka bangun. Kode mereka adalah bagian dari keunggulan kompetitif mereka. Tentu, pesaing dapat menulis kode mereka sendiri untuk menyelesaikan masalah yang sama, tetapi mereka seharusnya tidak mendapatkan keuntungan dari membangun pekerjaan yang dibayar oleh majikan Anda, memiliki, dan tidak mengizinkan Anda mengambilnya.

  3. Jika mereka sama sekali tidak masuk akal, majikan baru Anda tidak ingin ada bagian dari kode yang Anda ambil dari mantan majikan Anda. Semakin Anda "merujuk" pada pekerjaan yang Anda lakukan untuk beberapa majikan sebelumnya, semakin Anda menempatkan majikan baru Anda dalam bahaya hukum.

  4. Jika Anda secara tidak sengaja membiarkannya tergelincir di Majikan Baru bahwa Anda masih memiliki salinan barang-barang yang Anda lakukan untuk Majikan Lama, atasan Anda di New mungkin akan menyadari bahwa Anda akan mengambil salinan kode mereka ketika Anda pergi ke tempat lain. pekerjaan. Itu mungkin tidak cocok dengannya.

  5. Bahkan jika Anda tidak mengutip garis yang sebenarnya atau hanya ide-ide yang kabur dari barang lama Anda, hanya memiliki barang lama Anda miliki dapat menimbulkan kecurigaan bahwa Anda mungkin menggunakannya untuk sesuatu. Bayangkan Majikan Tua menuntut Majikan Baru, dan sebagai salah satu dari segelintir karyawan yang pindah dari Lama ke Baru, Anda tiba-tiba mendapati diri Anda memberikan deposisi. Tidak ada di antara Anda yang benar-benar menyalin kode Old ke dalam produk New, tetapi pengacara di depan Anda bertanya: "Mr. SuperFoo, apakah Anda sekarang atau sudah kapan saja sejak meninggalkan Old Employer memiliki salinan kode apa pun yang Anda atau miliki adakah yang menulis ketika bekerja di Old Employer? "

  6. Anda tidak memerlukan kode yang Anda tulis bulan lalu, tahun lalu, atau lebih lama. Anda pernah memecahkan masalah, dan sekarang Anda tahu cara memecahkan masalah lagi. Atau, Anda mungkin tahu bagaimana tidak menyelesaikan masalah - implementasi baru Anda akan lebih baik karena Anda memiliki pengalaman.

  7. Ada cara yang lebih baik. Sulit untuk kembali dan mempelajari sesuatu yang berguna dengan membaca kode lama di luar konteks. Buku harian atau jurnal yang menjelaskan apa yang Anda pelajari, ide-ide yang Anda miliki, dll. Jauh lebih berguna nantinya.

  8. Bahkan jika Majikan Tua tahu bahwa Anda telah mendapatkan kode mereka dan tidak masalah dengan itu, Anda tetap tidak menginginkannya! Satu-satunya hal yang dapat terjadi adalah menelepon 3:00: "Hei, SuperFoo? Bagaimana kabarmu? Dengar, Anda punya salinan barang-barang kami, kan? Lihat, kami punya masalah dengan sistem, dan kami mempersempitnya menjadi beberapa file yang Anda tulis bahwa orang baru kami tidak mengerti. Saya tahu ini terlambat, tetapi bisakah Anda mengantarnya melalui SuperDuper.pl? "

Biarkan saja. Anda tidak membutuhkannya.

Caleb
sumber
7
Selain itu, jika media tempat Anda menyimpan konten hilang atau dicuri, itu akan sangat merepotkan. Sejujurnya, saya lebih suka untuk menghindari segala jenis konektivitas VPN atau sumber pada PC pribadi saya jika memungkinkan. PC Anda mungkin menjadi bagian dari botnet tanpa Anda sadari, mengapa mengambil risiko?
Coder
8
Jawaban yang sangat bagus! Saya sebenarnya ditawari salinan kode (atau akses terus) ketika meninggalkan majikan lama saya. Saya menolak, tepatnya karena alasan yang dekat dengan nomor 8. Lagipula, ada alasan untuk mengundurkan diri dari mereka. Jika saya masih ingin membayar untuk mereka, saya akan tetap :)
Harald
79
+1: Anda tidak membutuhkannya Bagian yang sulit adalah mencari tahu apa yang harus ditulis, bukan benar-benar menulisnya. Jika Anda menulisnya untuk kedua kalinya, mungkin akan lebih baik.
kevin cline
6
Ketika saya memecahkan masalah dengan kode saya, saya cenderung menuliskan solusi untuk sebuah blog. Bukan kode sumber dari pekerjaan saya, tetapi kode umum yang mengikuti pola yang sama (satu baris sederhana atau beberapa baris untuk mencapai tujuan - bukan kode raksasa). Saya menemukan ini menjadi metode yang hebat untuk menyimpan apa yang saya pelajari di pekerjaan sebelumnya. +1 untuk peluru # 7!
Gaʀʀʏ
11
Tidakkah seharusnya ada semacam ambang batas untuk jumlah kode yang memenuhi syarat? Jika saya menggunakan for (int i=0; i < N; ++i)dalam kode saya, itu pasti tidak ilegal untuk menggunakannya di tempat lain di perusahaan lain ...
vsz
159

Saya selalu menyimpan salinan kode yang saya tulis dan membawanya di antara pekerjaan. Majikan selanjutnya tidak pernah bisa melihat / menjalankan kode, tetapi saya menggunakannya sebagai referensi di rumah: 'Ah ya, bukankah saya melakukan sesuatu yang serupa dengan itu di Proyek X?'.

Apakah ini legal? Tergantung pada yurisdiksi dan keadaan, tetapi itu cukup umum. Secara moral, saya tidak punya masalah dengan itu, asalkan Anda tidak hanya memberikan kode kepada majikan baru ... Ini adalah pengingat dan demonstrasi dari apa yang telah Anda lakukan, daripada sumber daya gratis untuk majikan Anda.

[Sisi lain dari ini adalah rasa malu yang tak terhindarkan yang muncul ketika Anda melihat kode lama: 'Apa yang saya pikirkan ?? Kenapa aku melakukannya seperti itu ?? ']

cjmUK
sumber
35
+1 Dan bahkan tidak relevan apakah itu legal. Banyak dari kita yang melakukannya. Itu tidak membahayakan majikan Anda sebelumnya (Anda tidak menjual kode ke pesaing), dan toh itu tidak bisa diatur. Di satu sisi, jika Anda "ingat" bagaimana Anda memecahkan masalah untuk majikan sebelumnya, Anda "mencuri" rahasia ini untuk mereka - dengan cara yang tidak dapat diatur sampai mereka menemukan pengendalian pikiran;)
Andres F.
89
@AndresF. Itu tidak lain adalah rasionalisasi. Kode tersebut adalah milik perusahaan lama Anda, ingatan Anda tidak. Jika Anda ingat bagaimana Anda memecahkan masalah Anda tidak perlu kode, jadi apa gunanya mengambilnya?
Caleb
10
+1 untuk membuat argumen moral. Secara pribadi saya mengikuti ini, sebagian besar karena sebagian besar kode saya tidak spesifik domain. Saya ingat bagaimana saya memecahkan sesuatu, tetapi belum tentu nuansa itu.
Telastyn
46
Dalam kasus tuduhan perusahaan terhadap pencurian IP, memiliki salinan kode akan bertindak sebagai faktor besar yang memberatkan Anda. Memiliki ingatan itu tidak. Itulah bedanya.
Oleksi
13
@ Caleb Apapun, banyak pengembang yang mengambil potongan kode setelah mereka pergi. Ini adalah tindakan yang sepenuhnya terpisah dari menggunakan kode ini untuk bersaing atau melukai majikan lama Anda, dan biasanya diambil hanya sebagai referensi, seperti pada "bagaimana saya memecahkan masalah ini / mengkonfigurasi perangkat lunak ini sebelumnya? Rail to it all Anda ingin, tetapi ini masih merupakan praktik yang luas, dan tidak benar-benar menyakiti siapa pun. Anda dapat mengubur kepala kolektif Anda di pasir, atau mengklaim itu salah, tetapi itu masih terjadi. Terutama dengan outsourcing / offshoring - jika Anda pikir itu tidak terjadi, Anda berada dalam kejutan!
Andres F.
51

Ini ide yang sangat buruk. Kode itu bukan milik Anda (secara hukum) dan memiliki kode itu dapat membuat Anda mendapat banyak masalah. Ini menjadi lebih benar ketika Anda pindah ke pekerjaan baru dan masih menyimpan kode sumber itu. Lebih buruk lagi jika itu adalah pesaing. Perusahaan Anda tidak akan senang jika Anda memiliki akses ke kode sumber mereka ketika Anda tidak bekerja untuk mereka lagi.

Ini semua tentang mengelola risiko Anda. Jelas diharapkan bahwa Anda menyimpan barang-barang dari majikan sebelumnya yang dapat Anda gunakan di tempat lain. Inilah sebabnya mengapa mereka membuat klausa tanda non-bersaing Anda yang bertahan X bulan / tahun setelah Anda meninggalkannya, namun memiliki kode tersebut membuat Anda lebih rentan terhadap seseorang yang menuduh Anda secara terang-terangan menyalin kode perusahaan (bahkan jika Anda tidak, dan hanya menggunakan ide yang sama). Apakah memiliki kode layak mengelola risiko ini?

Tentunya hal-hal berguna yang Anda dapatkan dari menulis kode bukanlah sintaks yang tepat; itu adalah pengetahuan yang Anda peroleh. Mungkin tidak layak berurusan dengan semua hal hukum ini.

Oleksi
sumber
9
Itu bukan ide yang buruk, kecuali ada pemeriksaan keamanan yang ketat di kantor Anda (seperti melarang email dan pendrives). Bagaimanapun, tidak ada yang akan mencari melalui komputer di rumah Anda, dan dipahami bahwa pengembang mengambil pengetahuan dari pekerjaan sebelumnya. Anda tidak dapat mencegahnya, dan itu tidak masuk akal untuk melakukannya, apakah kode itu "diingat" atau disalin kata demi kata. Apa yang dapat Anda lakukan sebagai pemberi kerja adalah menegakkan tidak ada klausul atau NDA yang bersaing atau mekanisme hukum apa pun yang tersedia di negara Anda.
Andres F.
14
@Malfist Tidak, kamu tidak. IANAL, tetapi cukup mapan bahwa, setidaknya di AS, produk pekerjaan yang dibayar seseorang untuk Anda buat adalah milik mereka, bukan milik Anda. Lihat pekerjaan untuk disewa di Wikipedia.
Caleb
5
@Malfist Lagi, tidak. Lihat tautan di komentar saya sebelumnya.
Caleb
4
@Malfist: "jika Anda adalah satu-satunya pengembang, dan mereka tidak membuat Anda melepaskan hak cipta Anda, Anda dapat membawa kode ketika Anda pergi (saya selalu melakukannya)". Tidak yakin kontrak Anda mencerminkan sebagian besar kenyataan. Sebagian besar kontrak untuk menyewa perangkat lunak akan secara eksplisit mengatakan bahwa Anda perlu memberikan semua sumber dan binari, dan menyerahkan kepemilikan dan hak cipta kepada mereka. Yang cukup normal untuk lepas. Anda dapat menegosiasikannya, tetapi cukup banyak klausa de-facto yang saya harapkan untuk dilihat dalam kontrak (baik untuk kontrak internal atau lepas).
haylem
5
Mari kita secara hipotetis mempertimbangkan pengembang yang mengingat satu baris apa pun yang ditulisnya selama kariernya. Apakah itu ilegal jika dia menggunakan memori ini saat bekerja pada proyek masa depan? Mengapa Anda membuat perbedaan antara mengingat kode Anda dan menyimpan salinannya di hd pribadi Anda? Jika Anda diizinkan untuk mengambil contoh dari pengalaman Anda, Anda harus melakukannya walaupun itu ditulis dalam buku catatan Anda dan bukannya disimpan di otak Anda. Dan jika Anda tidak diizinkan membaca ulang kode lama Anda, yang Anda simpan di PC, maka Anda tidak boleh "mengingatkan" itu, yang jelas tidak masuk akal.
Nadir Sampaoli
36

Ini tidak biasa.

Saya memiliki salinan hampir 1 setiap kode yang saya tulis secara profesional, dan tentu saja semua kode dari proyek saya saat ini, terlepas dari siapa yang menulisnya 2 . Seiring dengan kode saya memiliki tumpukan dokumen hukum yang jelas mendefinisikan apa yang saya bisa dan tidak bisa lakukan dengannya. Hanya memiliki kode tidak sama dengan mencoba mengambil untung dari kode.

Yang mengatakan, ini masalah hukum, dan masalah hukum cenderung sangat rumit dan terlokalisasi. Jika ragu, Anda benar-benar perlu berbicara dengan pengacara. Saya mungkin menyimpan kode saya, tetapi saya yakin 99% saya tidak akan mendapat masalah karena melakukannya.

1 Apa yang hilang sebagian besar adalah apa yang tidak ingin saya arsipkan. Hanya satu kode proyek kecil yang hilang karena alasan hukum.
2 Sifat dari proyek dan peran saya di dalamnya, saya salah satu dari orang-orang yang perlu memiliki setidaknya gagasan tentang apa yang terjadi, bahkan jika saya tidak terlibat dalam membangun modul tertentu.

Yannis Rizos
sumber
4
@haylem Saya tidak pernah di tempat perusahaan;)
yannis
3
namun saya yakin Anda tahu apa yang saya maksud, dan bahwa mungkin tidak masalah di mana Anda secara fisik :)
haylem
3
Saya mendengar satu pengembang berbicara di konferensi WordPress dan dia mengatakan sesuatu seperti "Jika saya melakukan pekerjaan kontrak untuk Anda, saya pastikan Anda tahu bahwa Anda memiliki kode yang saya tulis untuk Anda, tetapi itu tidak berarti bahwa saya belum belajar apa-apa baru dengan menulis kode Anda. "
programmer
3
@ Caleb Memiliki dokumentasi yang tepat mungkin tidak biasa (saya tidak tahu), namun saya tidak berpikir menyimpan salinan kode tersebut. Saya kebetulan memiliki keduanya;)
yannis
2
@ Krelp, kunci enkripsi, seperti kunci untuk brankas dapat dipaksa melalui panggilan pengadilan.
Malfist
29

Saya melihat pria China Anda yang ditangkap dan membesarkan Anda dengan "kode bukan properti, karena itu tidak dapat dicuri".

Ref.: Kode 'bukan properti fisik', aturan pengadilan dalam kasus spionase Goldman Sachs

Dengan mengatakan itu.

  • Apakah saya menyimpan kode yang saya tulis? Benar.
  • Apakah saya menyimpan proyek penuh? Benar.
  • Apakah saya memastikan saya menggerakkan kode saya dari PC kantor ke komputer rumah? Anda betcha!
  • Apakah saya pernah menggunakan kembali kode itu di perusahaan lain atau dalam proyek pribadi. Nggak.
  • Apakah saya sering melihat kode lama dan beralih ke WtF !? Sepanjang waktu.
TimSonOfSteve
sumber
14
+1 Hehe, jawaban yang bagus dan jujur. Bagian terbaiknya adalah bahwa Anda benar - benar tidak pernah kembali ke kode lama. Anda hanya merasa lebih aman jika Anda membawanya, tidak pernah melihatnya lagi dalam hidup Anda!
Andres F.
Bukankah ini masalah besar dalam kasus Oracle v Google baru-baru ini juga?
robertc
1
Sepenuhnya setuju dengan Anda. Saya melakukan hal yang sama. Referensi yang sangat bagus.
Andrea Girardi
2
kode bukan properti, oleh karena itu tidak dapat dicuri adalah ringkasan mengerikan dari kasus Goldman Sachs. Orang Rusia itu dibebaskan, bukan karena dia tidak melakukan kesalahan, tetapi karena pencuriannya tidak memenuhi syarat menurut hukum, jaksa penuntut berusaha menggunakannya untuk melawannya. Itu tidak berarti dia tidak melanggar kontraknya dengan GS, atau melanggar hukum IP. Silakan baca artikel ini dengan lebih seksama, dan mungkin ambil beberapa komentar di bawah ini.
Nate
Artikel terkait: Apakah Goldman Sachs Overstep dalam Pengisian Kriminal Terhadap Mantan Programmernya? . Ini juga merupakan contoh yang baik bahwa bahkan jika Anda menang pada akhirnya, pertempuran hukum itu sendiri dapat sangat menyakitkan.
CodesInChaos
10

Ini pertanyaan sederhana untuk Anda. Pergi ke bos Anda dan beri tahu mereka: "Saya memiliki salinan semua kode yang saya tulis saat saya bekerja di sini. Hanya kode yang saya tulis, bukan orang lain. Ini untuk pendidikan saya sendiri, dan saya tidak akan pernah memberikannya".

Tindakan mereka selanjutnya akan menentukan (ya, kata itu memang ada di Amerika Utara / Dunia) jika Anda salah atau benar di mata mereka.

Terlepas dari "etika" Anda sendiri, Anda bekerja untuk majikan. Jika mereka menganggap apa yang Anda lakukan salah, maka itu salah berdasarkan etika mereka. Ketika mereka membayar Anda, dan Anda dipekerjakan oleh mereka, maka di pengadilan Anda apakah setuju dengan mereka, atau tidak setuju, yang dapat membuat Anda dipecat.

Sekarang ini masalah integritas. Saya telah membiarkan karyawan sebelumnya mengambil beberapa kode kami, tetapi saya telah memeriksa semuanya terlebih dahulu.

Hanya karena Anda yakin Anda benar, tidak membuat Anda benar. Biasanya pengembang perangkat lunak menandatangani kontrak ketika mereka dipekerjakan. Jika Anda menandatanganinya, Anda harus hidup dengan kata-kata Anda.

Ryan Ternier
sumber
"selagi aku bekerja di sini" menyiratkan orang yang dimaksud bukan lagi bosmu. Jika itu mantan bos Anda, mengapa Anda mau bertanya padanya?
Alexander
Mengapa? Kontrak? Integritas?
Ryan Ternier
Anda dapat menyimpan kode yang Anda tulis saat tidak menggunakannya untuk apa pun dan tetap menegakkan kontrak serta menjaga integritas Anda.
Alexander
2
Jika Anda menandatangani kontrak yang menyatakan bahwa semua kode adalah milik majikan Anda, Anda membawanya pulang adalah pelanggaran kontrak itu jika mereka tidak tahu bahwa Anda memilikinya, atau memberi Anda izin untuk memilikinya. Ini pencurian efektif. Ya itu "kode", digital 0 dan 1, tetapi dalam kebanyakan kasus hitam dan putih.
Ryan Ternier
Ini adalah diskusi klasik "pembajakan adalah pencurian".
Alexander
8

apakah jarang bagi pengembang untuk menyimpan salinan kode yang mereka tulis secara pribadi

Menjawab pertanyaan secara langsung, saya akan mengatakan dalam pengalaman saya ini tidak biasa. The pengecualian untuk ini yang saya lihat adalah orang-orang yang melakukan banyak lepas dan mereka menjaga kode di tangan untuk pemeliharaan dan peningkatan masa depan proyek-proyek klien mereka, dan saya akan membayangkan bahwa ini jelas dinyatakan dalam kontrak (meskipun saya tidak berada di kebiasaan meninjau kontrak lepas teman saya, jadi siapa tahu). Orang yang saya kenal yang bekerja di perusahaan besar tidak pernah mengaku menyimpan kode dari mantan majikan.

Saya tahu saya tidak akan melakukannya karena saya tidak bisa memikirkan satu situasi di mana itu akan berguna (belum lagi bahwa saya cukup yakin majikan saya saat ini melarang hal-hal seperti itu - saya hanya perlu mencari dokumen untuk memastikan ). Kode yang saya tulis / perbaiki biasanya sangat spesifik untuk persyaratan bisnis tertentu sehingga saya tidak bisa membayangkannya pernah muncul lagi di masa depan sedemikian rupa sehingga akan lebih mudah untuk menggunakan kembali kode lama daripada menulis baru kode.

FrustratedWithFormsDesigner
sumber
3
Sebagai pekerja lepas, saya akan menyimpan semua kode. Menggunakan kembali itu sangat tidak mungkin, tetapi pada akhirnya tetap, saya akan menyimpannya (misalnya jika majikan mempekerjakan orang lain yang mengacaukan kode dan mempekerjakan saya lagi untuk memperbaikinya).
Camilo Martin
1
Dalam pekerjaan lepas saya, saya menemukan ada banyak kode yang biasanya digunakan kembali. Berapa kali saya akhirnya menulis kode login pengguna yang sama sebelum saya menggunakannya kembali. Sementara saya menyimpan kode untuk pemeliharaan, area umum kode biasanya disalin. Jika saya menemukan beberapa kode yang pada dasarnya sama antara dua proyek, saya membuat salinannya dalam bentuk umum dan saya akan menyalinnya ke proyek lain sesuai kebutuhan.
Chris
8

Kembali pada hari itu adalah hal biasa bagi para pengembang untuk memiliki perpustakaan rutin pribadi mereka yang akan mereka gunakan untuk menyelesaikan masalah pada pekerjaan saat ini. Sumber akan tertinggal ketika pengembang pergi, tetapi perangkat tambahan apa pun juga ikut dengannya.

Ini menghasilkan situasi win-win. Itu juga hanya sebagian dari semua kode yang ditulis.

Tentu saja sebagian besar dari apa yang ada di perpustakaan pribadi akan ada di perpustakaan standar hari ini.

Jon Strayer
sumber
Di beberapa lingkungan, ada penggambaran yang jelas antara Perpustakaan atau kode Komponen, atau Kelas yang secara eksplisit dirancang untuk digunakan kembali (parser, dll.) Dan yang spesifik untuk Masalah Domain. Kode yang merupakan masalah khusus domain (aplikasi inhouse utama XWare atau entitas komersial) mungkin tidak berguna di luar tempat itu, tetapi komponen / pustaka tingkat rendah atau yang dapat digunakan kembali memang sangat berguna.
Warren P
6

Di bawah hubungan majikan dengan karyawan di sebagian besar Amerika Utara, adalah ilegal untuk mentransfer atau mengirimkan materi digital (yaitu kode sumber) dari peralatan majikan Anda tanpa izin resmi sebelumnya dari majikan.

Bagian dari undang-undang hukum yang berkaitan dengan definisi karyawan di tempat kerja, adalah deskripsi bahwa karyawan tidak menyediakan peralatan kerjanya sendiri kecuali dinyatakan lain dalam kontrak karyawan, dengan pengecualian pada perdagangan yang mengharuskan karyawan untuk membeli peralatan mereka sendiri (yaitu pekerja konstruksi).

Sebagian besar undang-undang ketenagakerjaan di Amerika Utara mendefinisikan majikan sebagai pengambil risiko utama dalam hubungan karyawan dengan majikan. Pekerja dibayar untuk waktunya sementara majikan menyediakan bahan, peralatan, dan mengontrol kegiatan yang terkait dengan pekerjaan karyawan.

Pada jam berapa selama hubungan ini, apakah boleh untuk mencuri materi berharga dari majikan, yang telah membayar dan mengambil risiko karena mengatakan materi itu dibuat?

Masalah utama dengan ini adalah pertanyaan "kode sumber yang Anda tulis?" Tidak pak, bukan kamu yang menulisnya. Di bawah bimbingan majikan Anda, merekalah yang menulisnya. Anda hanyalah tangan upahan yang mengetiknya. Tidak ada pengadilan di Amerika Utara yang akan memihak Anda jika majikan Anda mengambil tindakan hukum untuk mengamankan properti mereka. Hanya menyalin kode sumber ke USB thumb drive dapat membawa Anda ke air panas.

Dengan itu, jika seorang majikan mengizinkan Anda untuk menggunakan peralatan Anda sendiri (yaitu laptop) atau mengirimkan materi, maka itu masalah yang berbeda. Majikan harus memberi tahu Anda setelah pemutusan bahwa materi apa pun harus dikembalikan / dihancurkan.

Saya kira saya akan memposting jawaban ini, karena sepertinya beberapa orang mengira ini adalah area abu-abu. Saya benar-benar tidak berpikir jika Anda seorang pengembang, bahwa Anda harus berkeliling posting Internet bahwa Anda menyimpan salinan materi majikan. Maksud saya, Anda jelas sudah tahu jawaban untuk pertanyaan ini karena Anda membuat akun anggota baru hanya untuk menanyakan pertanyaan ini. ;)

Mathew Foscarini
sumber
Majikan harus memberi tahu Anda setelah pemutusan bahwa materi apa pun harus dikembalikan / dihancurkan. Apakah ini benar? Apakah majikan di bawah kewajiban hukum dan / atau kontrak untuk melakukan ini?
Radu Murzea
Majikan tidak memiliki kewajiban hukum untuk melakukan hal ini, tetapi ia dapat meminta kapan saja bahwa semua materi yang dimiliki mereka dikembalikan dari seorang karyawan, kecuali jika ada perjanjian antara majikan dan karyawan yang memungkinkan karyawan untuk menyimpan materi tersebut.
Reactgular
5

Saya sudah melakukan ini di masa lalu beberapa pekerjaan yang lalu.

Namun saya belum pernah kembali dan melihatnya. Saya kadang-kadang menggunakan kembali ide-ide dan hal-hal yang saya pelajari tetapi saya tidak pernah menemukan alasan untuk kembali dan melihat kode.

Jadi saya tidak akan repot lagi. Ini meragukan secara hukum, dan saya tidak pernah benar-benar menemukannya berguna dalam latihan.

JohnB
sumber
4

Tentu. Saya suka menyimpan salinan semua pekerjaan yang saya lakukan - apakah itu menulis kode atau tidak. Sebut saja scrapbook, jika Anda mau. Melanggar peraturan? Mungkin.

Komentar tentang keunggulan kompetitif tidak relevan kecuali jika majikan Anda berikutnya adalah pesaing langsung. Jika Anda berpindah dari perusahaan telepon ke perusahaan perangkat lunak, atau dari pengembang game ke pengembang basis data, itu tidak masalah. Jika Anda benar-benar berencana untuk menggunakan kembali kode - ya, itu cerita yang berbeda.

Menariknya, Anda sering mendengar tentang pengembang web yang membawa "kotak alat" bersama mereka, dengan seperangkat pustaka JavaScript standar dan lembar gaya CSS . Tapi saya belum melihat yang disebutkan di sini.

Steve Bennett
sumber
3

Saya baru saja menghapus semua kode lama yang saya simpan dari majikan sebelumnya. Saya hanya menyimpan potongan kode yang saya pikir bagus untuk referensi di masa mendatang. Saya benar-benar menemukan bahwa saya telah pindah jauh sejak saya pergi dan saya tidak pernah merujuk pada kode lama. Saya telah menemukan / menemukan / belajar cara yang jauh lebih baik untuk menyelesaikan masalah yang sama.

Itu adalah perjalanan kecil yang menyenangkan ke jalur memori :)

Antony Scott
sumber
2

Saya pikir perlu ada perbedaan antara pola-desain dan kode aktual (menyalin baris demi baris)

Menuliskan sesuatu seperti psuedocode - ini adalah cara yang bagus untuk memuat malas X dalam Y adalah satu hal. Menuliskan semua kode adalah hal lain.

PSU_Kardi
sumber
1

Dengan izin atasan Anda, publikasikan kode yang dapat digunakan kembali dengan rapi sebagai proyek sumber terbuka untuk digunakan orang lain. Kemudian majikan Anda juga dapat mengambil manfaat dari kontribusi orang lain terhadap kode ini.

Dengan cara ini Anda dapat menyimpan kode secara legal, membangun portofolio publik dari kode yang Anda tulis dan kode tersebut dapat bermanfaat bagi orang lain.

Sarel Botha
sumber
1

Untuk berbagai alasan, seperti bekerja dari rumah, Anda mungkin sudah memiliki salinannya, dan saya karena satu tidak akan menghapus ini setelah pekerjaan, mengapa melakukan itu? Itu tidak bertentangan dengan kepercayaan saya atau sesuatu.

Tapi, mengenai penggunaannya, itu tidak begitu berguna sebagai posting blog!

Intinya: tulis kode Anda, blog tentang masalah yang Anda hadapi dan bagaimana Anda menyelesaikannya (terutama ketika hal-hal umum dan luas), dan tidak keberatan menyimpan suvenir (mungkin dienkripsi) dari pekerjaan terakhir.

Camilo Martin
sumber
1

Dalam keuangan, CFA menangani masalah ini. Anda tidak diizinkan untuk mengambil informasi yang terkait dengan klien atau pekerjaan Anda untuk perusahaan (dalam kode kasus ini). Tetapi tidak ada yang menghalangi Anda untuk menghafal apa yang Anda bisa dan kemudian menuliskannya nanti.

Tidak yakin seberapa sah itu, tapi saya pikir taruhan terbaik Anda adalah meninggalkan kode sumber Anda tetapi tulis ide-ide Anda dan bagaimana Anda melakukannya segera setelah Anda tiba di rumah. Mencuri adalah mencuri dan di pengadilan semua yang mereka coba cari tahu untuk memutuskan adalah apakah Anda menyalin kode atau tidak.

Peter Mortensen
sumber
Perlu diingat beberapa majikan akan melakukan yang terbaik untuk menghentikan Anda dari "menuliskan ide-ide Anda" ketika Anda tiba di rumah. Skenario yang hilang bagi mereka bukanlah kode yang disalin, tetapi persaingan melawan mereka - dan untuk itu, gagasan jauh lebih baik. Tidak yakin apakah itu dapat diterapkan, tetapi beberapa mencoba menggertak Anda agar berpikir mereka memiliki ide yang mungkin Anda miliki selama jam kerja.
Andres F.
1
@AndresF. Saya pernah bekerja di hedge fund yang berusaha mencegah hal ini. Mereka dengan jujur ​​tidak dapat mencegahnya sehingga mereka membuat orang menandatangani kontrak yang tidak bersaing dan membayar mereka untuk tidak bekerja selama 1-2 tahun setelah mereka mengundurkan diri. Meskipun sangat mahal (Anda membayar 2 tahun gaji kepada seseorang yang tidak bekerja untuk Anda), itu membuat pengetahuan Anda basi ketika Anda pergi dan tidak berguna sebagai ancaman kompetitif.
Lostsoul
+1 hanya untuk gagasan dan bukan kode. Terlibat dengan perusahaan yang menuntut mantan programmer karena mencuri kode dan menjual produk serupa. Hakim memutuskan bahwa karena bug itu identik, dia pasti mencuri kode itu.
jqa
Saya telah melihat banyak majikan meminta karyawan baru untuk setuju secara tertulis bahwa mereka tidak akan terlibat dalam kegiatan bisnis lain saat dipekerjakan oleh majikan, dan setiap proyek lain yang dilakukan karyawan di samping juga merupakan milik majikan. Saya pikir subjek ini sendiri merupakan masalah lain, tetapi perjanjian ini ada di sebagian besar kontrak kerja.
Reactgular
@MathewFoscarini saya setuju. Di perusahaan saya, kami meminta karyawan untuk memiliki persetujuan tertulis sebelum terlibat dalam apa pun yang mereka terima manfaatnya (termasuk proyek sampingan, pekerjaan amal, dll.). Jika Anda memperbaiki mobil tetangga Anda dan dia membelikan Anda bir, itu akan berkualitas meskipun karyawan menyadari bahwa kemungkinan besar kami tidak akan mengejarnya.
Lostsoul
1

Jika Anda menyimpan kode Anda dengan tujuan untuk menggunakannya kembali nanti, saya memiliki dua masalah dengan itu:

  • Jika kode tersebut spesifik untuk domain, mungkin juga miliknya. Bagaimanapun, tidak ada dua bisnis atau masalah yang persis sama dan mencoba untuk memperbaiki satu masalah dengan solusi untuk yang lain bukanlah pola yang baik.

  • Jika kode yang Anda simpan memecahkan masalah umum, Anda harus mempertanyakan pendekatan Anda. Mengapa Anda menghabiskan banyak upaya untuk memecahkan masalah umum ketika mereka kemungkinan ada solusi open source (dan lebih baik)?

    Jika Anda percaya bahwa Anda memiliki solusi terbaik untuk masalah umum, Anda harus benar-benar mencoba membagikan kode Anda secara publik di repositori publik dan / atau blog kode ketika Anda menulisnya, bukan menyimpannya sendiri. Bos Anda seharusnya tidak keberatan berbagi perpustakaan umum atau memaksa Anda untuk menemukan kembali roda (jika ya, cari pekerjaan baru).

Jika Anda menyimpan kode Anda karena ingin menunjukkannya kepada pemberi kerja potensial atau untuk meningkatkan keterampilan Anda, saya sarankan Anda berkontribusi pada proyek sumber terbuka.

David Veksler
sumber
1
Butir kedua mengasumsikan bahwa akan ada solusi open source, yang jauh dari pasti. Tetapi yang paling penting, beberapa kode yang saya simpan adalah kode yang menunjukkan bagaimana saya menggunakan komponen / layanan pihak ke-3. Misalnya, jika saya mengembangkan solusi pembayaran yang layak yang terintegrasi dengan Paypal, saya akan mengambil kode untuk merujuk nanti - jadi saya tidak perlu menemukan kembali kemudi di lain waktu.
cjmUK
0

Saya belum menyimpan kode apa pun yang telah saya lakukan untuk majikan. Hal-hal lepas yang saya simpan (mungkin sulit untuk mendukung klien jika saya kehilangan kode saya).

Namun, saya sedang mempertimbangkan untuk menjaga kode yang saya buat untuk majikan ini. Alasannya adalah saya seorang pengembang web, dan saya telah mengembangkan banyak hal di sisi klien yang terlihat lebih cantik. Saya tidak merancang mereka, tetapi saya menerapkannya dan sering muncul dengan ide. Saya ingin menyimpan salinan dari barang-barang ini untuk membangun portofolio online. Seperti yang kita semua tahu, situs tidak bertahan selamanya, jadi saya tidak bisa secara realistis mengandalkan pekerjaan saya untuk tetap online. Memiliki salinan cadangan akan memungkinkan saya untuk memiliki portofolio online.

Saya tahu bahwa desainer sering menyimpan salinan karya mereka (bahkan jika itu adalah pekerjaan untuk disewa) untuk keperluan portofolio.

Saya tidak yakin apa legalitas ini (tidak disebutkan secara eksplisit dalam kontrak saya).

Xandor Schiefer
sumber
4
but what are your thoughts on this?Tolong jangan secara terbuka mengundang percakapan tentang jawaban Anda dengan memperkenalkan pertanyaan lain. Anda memberi tahu kami jika kami harus menyimpan salinan semua kode yang kami tulis. Anda dapat meningkatkan jawabannya dengan mengeditnya.
maple_shaft
1
Saya pikir ada perbedaan dalam menjaga file sumber asli (dalam kasus Anda file grafik seperti .ai atau .psd) vs memiliki tangkapan layar produk akhir untuk portofolio Anda. Anda masih harus meminta izin kepada majikan Anda, tetapi mereka harus lebih setuju dengan yang terakhir.
Sarel Botha
Karena pekerjaan sering bersifat interaktif, tangkapan layar tidak akan memotongnya untuk portofolio. Itu hanya akan menunjukkan desain (yang sebagian besar bukan milikku). Saya bisa mengambil screencast saya menggunakan pekerjaan yang dimaksud, tetapi itu masih tidak menyampaikan hal-hal seperti latensi, kinerja, kompatibilitas lintas-browser.
Xandor Schiefer
0

Nah, untuk mengembangkan logika bisnis untuk perusahaan saya, saya tidak dapat menyimpan kode karena itu ilegal & milik pribadi perusahaan. Sebagai pengembang, saya tahu bagaimana mengembangkan logika itu, jadi saya bisa menyimpan logika itu di pikiran saya. Pada dasarnya secara default disimpan dalam pikiran Anda, dan jika Anda membutuhkannya di lain waktu, maka secara otomatis Anda harus menerapkan logika / logika yang lebih baik daripada yang sebelumnya. Ini adalah sifat & kecerdasan manusia. :)

Tetapi masalah ini terjadi ketika Anda mengembangkan beberapa logika utilitas, mereka dapat digunakan kembali & selalu penting, Anda mungkin sering membutuhkannya dalam proyek yang berbeda. Jadi, Anda harus menyimpannya bersama Anda.

Saya punya solusi alternatif untuk itu. Cukup buat JAR tanpa sumber / dokumentasi untuk kegunaannya dan tambahkan sebagai JAR pihak ketiga eksternal dalam proyek Anda. Mungkin dengan melakukan ini, Anda dapat mengonfirmasi tanggung jawab Anda serta kepuasan diri Anda bahwa Anda memiliki kode ;)

Soumyadip Das
sumber
1
Pendekatan lain untuk ini adalah ketika saya menemukan sedikit kode yang berguna / dapat digunakan kembali yang saya ingin "bawa", saya pulang saja, dan menulis posting blog tentang API atau teknik tertentu yang menarik saya. Posting blog ini tentu saja tidak merujuk majikan saya, juga tidak menggunakan, baris demi baris, kode yang ditulis pada sepeser pun majikan saya.
Joel Martinez
Jika ada aturan, maka itu harus anti aturan. Yang dapat Anda gunakan untuk Anda. Mereka adalah teknik yang berbeda untuk mencapai ini. Yang paling penting adalah - menjaga pekerjaan tetap jelas.
Soumyadip Das
0

Saya tidak menyimpan kode karena alasan sederhana: Perusahaan membayar saya untuk menulis kode untuk mereka. Saya memberi mereka kode saya, dan mereka memberi saya gaji saya. Orang yang membuat makan siang saya, tidak bisa menyimpannya sendiri, mengapa kode berbeda?

Juga, poin yang dibuat sebelumnya, saya keluar dari pekerjaan, semua sakit kepala itu tetap di sana, pekerjaan baru, awal baru, tetapi dengan sedikit lebih banyak pengalaman dan pemahaman tentang jenis masalah dalam domain pekerjaan lama itu.

Scott S
sumber