Ho trovato una soluzione migliore per un problema sul posto di lavoro - dovrei dissuadermi dal pubblicare lo snippet di codice online?

18

Penso che la maggior parte di noi, programmatori, abbia utilizzato Stack Overflow per risolvere i problemi quotidiani: cercava un algoritmo efficiente per fare qualcosa.

Ora immagina una situazione: hai un problema da risolvere. Cercate su Google un po ', trovate una domanda StackOverflow ma non siete veramente soddisfatti delle risposte finora. Quindi devi fare la tua ricerca: devi farlo perché lo vuoi nell'app dell'azienda.

Alla fine, dopo alcune ore, hai trovato la soluzione migliore. Sei felice, l'hai aggiunto al codice base dell'azienda, quindi vuoi inviare la tua risposta con un frammento di codice (solo alcune righe) alla domanda che hai trovato prima per aiutare anche gli altri.

Ma aspetta: il software dell'azienda è closed source e ci hai lavorato sull'orologio.

Quindi questo significa che non dovrei inviare la risposta né sul lavoro né a casa a quella domanda nel resto della mia vita, perché l'ho risolto al lavoro, e la società possiede quel pezzo di codice?

    
posta Calmarius 30.10.2013 - 17:34
fonte

5 risposte

15

Esporre informazioni aziendali proprietarie è qualcosa che non dovresti mai fare. La maggior parte degli snippet di codice su Stack Overflow è molto più banale di quello, comunque. Considera questo esempio :

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;  
        }  
    }  
}

Questo metodo inverte l'endianness di un numero a 32 bit, scambiando i byte in giro. La differenza tra questa implementazione e una versione ingenua è che questa viene eseguita due volte più velocemente, ma è possibile eseguirla solo su una piccola macchina endian. Viene utilizzato in un programma proprietario, ma descrive una tecnica generale, e non espone nulla di confidenziale.

    
risposta data 30.10.2013 - 18:37
fonte
7

invio frequentemente problemi e soluzioni che ho incontrato durante il lavoro, in azienda con il codice dell'azienda *. Ho parlato direttamente con il mio manager di questo, e lui sente che il valore che l'azienda ricava dal mio tempo trascorso qui supera di gran lunga qualsiasi preoccupazione per il mio tempo trascorso qui in generale.

* Sono cauto nel nascondere ciò che penso possa essere proprietario. Il nostro codice interno è molto proprietario, ma sarebbe in gran parte inutile per chiunque senza il nostro hardware proprietario (che non vendiamo).

Guardo le mie domande & risponde come aiutare me stesso e qualcun altro lungo la strada quando si imbattono in problemi simili come me.

    
risposta data 30.10.2013 - 18:47
fonte
1

Quanto costerebbe alla tua azienda il tempo aggiuntivo o il tempo perduto se non avessi questa risorsa?

Finché non vengono fornite informazioni compromettenti o proprietarie, ritengo che le soluzioni di pubblicazione che hai trovato siano un risarcimento per le risposte che hai ricevuto.

    
risposta data 05.11.2013 - 03:28
fonte
1

La risposta si trova negli accordi legali scritti che hai firmato con il tuo datore di lavoro (il tuo contratto) e con la giurisdizione in base alla quale tali accordi saranno giudicati. È normale che un accordo legale elenchi la giurisdizione che può o meno essere lo stato in cui lavori (anche se probabilmente il paese in cui lavori, ma non necessariamente).

Un ottimo libro è Proprietà intellettuale e Open Source di Van Lindberg. Da p. 185:

There are no legal repercussions for [a company] overreaching when defining "proprietary information." Several states limit the application of PIAs when an author or inventor doesn't use company property or time to create the new work... Even if state-imposed limits invalidate part of the PIA, other aspects of the agreement generally survive.

Leggi il tuo contratto. Rivelare le tue intenzioni al tuo datore di lavoro prima di agire. Quindi comunica le tue azioni al tuo datore di lavoro. Divulgare queste cose per iscritto e ottenere la loro risposta / permesso quando applicabile per iscritto. Almeno questo è quello che dice quel libro.

Non sono un avvocato, sono solo interessato a queste cose. Questo non è un consiglio legale, solo suggerimenti amichevoli. Per quanto mi riguarda, non faccio in modo casuale nulla di pubblico correlato al lavoro. Ho reso pubbliche alcune cose dopo lunghe discussioni con il mio capo, completa divulgazione, chiara etichettatura delle licenze e un accordo scritto su ciò che sto pubblicando, ma è raro.

    
risposta data 05.11.2013 - 04:48
fonte
0

Ho pubblicato snippet di codice online, ma modifico sempre il codice in modo da rimuovere qualsiasi riferimento alla società, eventuali dati dei clienti e spesso rinominare anche campi / variabili. Fondamentalmente finisco per riscrivere il codice in modo che non possa essere ricondotto a un datore di lavoro. Ci vuole un po 'di sforzo in più, ma penso che ne valga la pena.

Oltre all'aspetto legale, devi anche pensare che ti sia stata affidata la proprietà dei tuoi datori di lavoro. Se pubblichi gratuitamente dei post in rete, sembra che tu manchi di discrezione e non ti puoi fidare. Anche se tu avessi il permesso, un futuro datore di lavoro che trova il tuo snippet da un motore di ricerca potrebbe non saperlo.

Questo è il motivo per cui tenderei a peccare con cautela.

    
risposta data 07.11.2013 - 19:05
fonte

Leggi altre domande sui tag