Menemukan solusi yang lebih baik untuk masalah di tempat kerja - haruskah saya mencegah memposting potongan kode online?

18

Saya pikir sebagian besar dari kita, programmer, menggunakan Stack Overflow untuk menyelesaikan masalah setiap hari: mencari algoritma yang efisien untuk melakukan sesuatu.

Sekarang bayangkan sebuah situasi: Anda memiliki masalah untuk dipecahkan. Googled sedikit, menemukan pertanyaan StackOverflow tetapi Anda tidak benar-benar puas dengan jawaban sejauh ini. Jadi, Anda harus melakukan riset sendiri: Anda perlu melakukannya karena Anda menginginkannya di aplikasi perusahaan.

Akhirnya setelah beberapa jam Anda telah menemukan solusi yang lebih baik. Anda senang, Anda menambahkannya ke basis kode perusahaan, lalu Anda ingin mengirimkan jawaban Anda dengan potongan kode (hanya beberapa baris) ke pertanyaan yang Anda temukan sebelumnya untuk membantu orang lain juga.

Tapi tunggu: perangkat lunak perusahaan adalah sumber tertutup, dan Anda mengerjakannya setiap saat.

Jadi apakah ini berarti saya tidak boleh memposting jawaban baik di tempat kerja atau di rumah untuk pertanyaan itu di sisa hidup saya, karena saya menyelesaikannya di tempat kerja, dan perusahaan memiliki sepotong kode itu?

Calmarius
sumber
Saya pikir itu tergantung pada kebijakan perusahaan Anda. Saya akan meminta izin untuk berada di sisi yang aman.
MrSmith42
1
Tanyakan kepada pengacara perusahaan apakah ia dapat membuat pengecualian kecil yang sangat kecil dalam satu kasus kecil ini, dan jika ia mengatakan ya, ia akan menjadi mantan pengacara perusahaan yang baik hati. Mustahil dia hanya akan memberi tahu Anda apa yang menjadi kepentingan terbaik pekerjaannya dan perusahaan, yaitu "tidak."
Neil
1
@ MrSmith42 Tentu. Tetapi sejujurnya, saya sudah bersalah beberapa kali, dan saya melakukannya tanpa memikirkan kemungkinan akibatnya, sampai sekarang. Dan mungkin, saya tidak sendirian dengan ini. Itu sebabnya saya bertanya di sini ... Atau apakah semua orang peduli untuk tidak mengungkapkan ide atau mengirimkan kode online saat dipekerjakan? Saya tidak dapat percaya.
Calmarius
5
Salah satu kekhawatirannya adalah bahwa jika solusi / algoritma Anda memberi perusahaan Anda keunggulan kompetitif, maka membagikannya mungkin berdampak bagi perusahaan Anda.
cYn
3
Jika Anda pikir itu akan membantu seseorang, dan tidak memberikan ip perusahaan, cukup kirimkan versi generiknya. Secara pribadi, saya pikir jika solusinya sebagian berasal dari orang lain yang Anda temukan di sini, perusahaan tidak memiliki klaim pada teknik di tempat pertama karena konten di sini adalah cc.
GrandmasterB

Jawaban:

15

Mengekspos informasi perusahaan yang eksklusif adalah sesuatu yang tidak boleh Anda lakukan. Sebagian besar cuplikan kode di Stack Overflow jauh lebih biasa dari itu. Pertimbangkan contoh ini :

public static unsafe void SwapX4(Byte[] Source)  
{  
    fixed (Byte* pSource = &Source[0])  
    {  
        Byte* bp = pSource;  
        Byte* bp_stop = bp + Source.Length;  

        while (bp < bp_stop)  
        {
            *(UInt32*)bp = (UInt32)(
                (*bp       << 24) |
                (*(bp + 1) << 16) |
                (*(bp + 2) <<  8) |
                (*(bp + 3)      ));
            bp += 4;  
        }  
    }  
}

Metode ini membalikkan endianness dari nomor 32 bit, dengan menukar byte di sekitar. Perbedaan antara implementasi ini dan yang naif adalah bahwa ini berjalan dua kali lebih cepat, tetapi Anda hanya dapat menjalankannya pada mesin endian kecil. Ini digunakan dalam program berpemilik, tetapi menggambarkan teknik umum, dan tidak memaparkan rahasia apa pun.

Robert Harvey
sumber
Ini cenderung mengikuti gagasan bahwa perusahaan tidak memiliki algoritma bukan?
Daniel Gratzer
8
Saya tidak bisa mengatakan itu dengan pasti, mengingat sifat sistem paten dari Bizantium.
Robert Harvey
@Jozefg: Sama seperti penemuan apa pun, algoritma, yang kompleks dan tidak cukup jelas dan dikembangkan dalam perusahaan, adalah salah satu dari beberapa hal di dunia perangkat lunak yang "mudah" dimiliki oleh perusahaan. Contoh yang disajikan di sini, cukup sederhana sehingga tidak termasuk dalam kategori itu. Dan meskipun ada kasus di mana pemikiran asli yang sebenarnya dan penelitian bertahun-tahun diinvestasikan dan perusahaan harus memiliki hak kepemilikan penuh, sebagian besar waktu sistem paten (setidaknya di AS) dilecehkan.
DXM
7

Saya sering memposting masalah dan solusi yang saya temukan di tempat kerja, di waktu perusahaan dengan kode perusahaan *. Saya telah berbicara dengan manajer saya secara langsung tentang hal ini, dan dia merasa bahwa nilai yang didapat perusahaan dari waktu yang saya habiskan di sini jauh melebihi kekhawatiran tentang waktu yang saya habiskan di sini secara umum.

* Saya berhati-hati untuk mengaburkan apa pun yang saya pikir bisa menjadi hak milik. Kode internal kami sangat eksklusif, tetapi sebagian besar tidak akan berguna bagi siapa pun tanpa perangkat keras milik kami (yang tidak kami jual).

Saya melihat pertanyaan & jawaban saya sebagai membantu diri sendiri dan juga orang lain ketika mereka mengalami masalah yang sama seperti saya.

delliottg
sumber
1

Berapa biaya perusahaan Anda untuk waktu tambahan Anda atau waktu yang hilang jika Anda tidak memiliki sumber daya ini?

Selama tidak ada kompromi atau informasi eksklusif yang diberikan, saya merasa bahwa solusi posting yang Anda temukan adalah kompensasi untuk jawaban yang telah Anda terima.

TheSteven
sumber
1

Jawabannya terletak pada perjanjian hukum tertulis yang Anda tandatangani dengan majikan Anda (kontrak Anda) dan dengan yurisdiksi di mana perjanjian tersebut akan dinilai. Adalah umum untuk perjanjian hukum untuk mendaftar yurisdiksi yang mungkin atau mungkin bukan negara tempat Anda bekerja (meskipun mungkin negara tempat Anda bekerja, tetapi tidak harus).

Sebuah buku hebat adalah Kekayaan Intelektual dan Sumber Terbuka oleh Van Lindberg. Dari hal. 185:

Tidak ada dampak hukum bagi [suatu perusahaan] yang melampaui batas ketika mendefinisikan "informasi hak milik". Beberapa negara membatasi penerapan PIA ketika seorang penulis atau penemu tidak menggunakan properti atau waktu perusahaan untuk membuat karya baru ... Bahkan jika batas yang diberlakukan negara membatalkan sebagian dari PIA, aspek-aspek lain dari perjanjian umumnya bertahan.

Baca kontrak Anda. Ungkapkan niat Anda kepada atasan Anda sebelum bertindak. Kemudian ungkapkan tindakan Anda kepada atasan Anda. Ungkapkan hal-hal ini secara tertulis dan dapatkan tanggapan / izinnya jika berlaku secara tertulis. Setidaknya itulah yang dikatakan buku itu.

Saya bukan pengacara, hanya tertarik pada hal ini. Ini bukan nasihat hukum, hanya saran ramah. Bagi saya sendiri, saya tidak biasa membuat sesuatu yang berhubungan dengan pekerjaan menjadi publik. Saya telah mengumumkan beberapa hal kepada publik setelah diskusi panjang dengan bos saya, pengungkapan penuh, pelabelan lisensi yang jelas, dan kesepakatan tertulis tentang apa yang saya rilis, tetapi itu jarang terjadi.

GlenPeterson
sumber
0

Saya telah memposting potongan kode secara online tetapi saya selalu mengedit kode untuk menghapus referensi ke perusahaan, data pelanggan, dan sering saya juga mengganti nama bidang / variabel. Pada dasarnya saya akhirnya menulis ulang kode sehingga tidak dapat dilacak kembali ke majikan. Dibutuhkan sedikit usaha ekstra tapi saya pikir itu sepadan.

Selain dari aspek hukum Anda juga harus berpikir bahwa Anda telah dipercaya dengan properti majikan Anda. Jika Anda secara bebas memposting bit secara online maka sepertinya Anda tidak memiliki keleluasaan dan tidak dapat dipercaya. Bahkan jika Anda memiliki izin, majikan masa depan yang menemukan cuplikan Anda dari mesin pencari mungkin tidak mengetahui hal ini.

Inilah sebabnya saya cenderung berbuat salah di sisi kehati-hatian.

Ben Thurley
sumber