Come posso riutilizzare il codice generico per la consultazione tra le aziende?

7

Sono impiegato a tempo pieno per la compagnia X e mi sono avvicinato alla compagnia Y per fare servizi di consulenza per scrivere C incorporato per loro. Sebbene conosca le basi dei conflitti di interessi e il grande no-no di condivisione di informazioni proprietarie, conoscenza aziendale e algoritmi proprietari, ho alcune domande riguardanti gli elementi generici di base che devo riutilizzare:

  • Architettura software: ho una preferenza personale per l'applicazione di livelli, il livello di astrazione e i driver hardware. Non voglio dover fare qualcosa di diverso e non è proprietario dell'azienda. Questo sarebbe un problema se condiviso?

  • Funzioni generiche: ricerca di tabelle, funzioni seno / coseno, parser, ecc. Ho scritto tutto questo codice da solo. Posso copiare / incollare questo o devo riscrivere, inserire spazi casuali, cambiare indentazione, nomi var, dimensioni tabella, ecc?

  • Denominazione delle funzioni: utilizzo una convenzione di denominazione specifica, ad es. MATH_Sin (). Tuttavia, compilato su una DLL, la società X può trovare una funzione MATH_Sin () disponibile nella DLL della società Y e assumere che abbia copiato il proprio codice. Devo rinominare tutte le funzioni per nascondere eventuali somiglianze?

  • Conoscenza del pubblico trasformata in codice sorgente: dì che trovi un algoritmo su un foglio che descrive come cercare un motivo in una stringa e hai trasformato il contenuto cartaceo in codice sorgente. Ancora una volta, una copia-incolla sarebbe un no-no anche qui? Riscrivi di cambiare alcune cose o del tutto respingere e trovare un altro modo per farlo? Alla fine è un'implementazione di pubblico dominio.

Ho chiesto informazioni ai miei colleghi e non riesco a ottenere una risposta diretta su cosa fare. Il software è digitale e molto tracciabile e può sempre essere ricondotto allo sviluppatore.

Grazie.

Aggiornamento : ho contattato il mio manager e l'HR e mi hanno strongmente scoraggiato a perseguire questo obiettivo. Sostenevano che utilizzando lo stesso set di abilità (programmazione incorporata o programmazione in generale) per un'altra società, ci sarebbe sempre l'opportunità per la società X di mettersi alla prova con me stesso o con la compagnia Y. Ho chiesto quindi che cosa NON sarebbe considerato un conflitto di interessi e hanno risposto "Potresti investire in un ristorante ...". Sul serio?

L'azienda X è una società molto grande. Non vi è alcuna negoziazione tra datore di lavoro e società, non vi è alcuna accettazione di codice open source / concesso in licenza e sembra che credano di possedere me e il mio bagaglio di competenze. Anche se sono d'accordo con alcuni dei loro ragionamenti, non sono d'accordo sul fatto che possiedono la mia istruzione e, mentre sono impiegati per loro, non posso usare le mie abilità di base per altri sforzi. Pertanto ho deciso di seguire il consiglio qui di seguito e di aprire all'Origine tutto il mio codice personale che non appartiene alla società, né è stato scritto utilizzando attrezzature aziendali o orari aziendali. Non farò soldi o firmare contratti, ma almeno posso mantenere il mio codice personale e continuare a sviluppare la mia carriera al di fuori di questo ambiente restrittivo.

Grazie per tutte le risposte. Spero che questo serva da riferimento per gli altri che perseguono lo stesso obiettivo.

    
posta PaulG 20.01.2012 - 05:03
fonte

2 risposte

6

Se hai addebitato il tempo necessario per lo sviluppo di codice in una determinata azienda, allora sei bloccato: quel codice appartiene a loro e non puoi portarlo con te.

Se hai costruito una libreria del tuo codice nel tuo tempo libero e vuoi essere in grado di riutilizzarlo in diversi progetti per aumentare la tua efficienza, una soluzione è quella di rilasciare quel codice sotto una licenza permissiva, che tu può fare semplicemente scrivendo "Licenza: LGPL" o qualsiasi altra cosa in un commento nell'intestazione.

Potresti pensare che questo ti perderà il tuo vantaggio competitivo, perché qualcun altro potrebbe semplicemente prendere il tuo codice e iniziare a usarlo, ma

  1. Sarai sempre il migliore in grado di utilizzare il tuo codice e

  2. Solo perché il codice è concesso in licenza per l'uso gratuito non significa che devi pubblicarlo sul tuo sito web da qualche parte per il mondo intero da rubare.

risposta data 20.01.2012 - 05:38
fonte
4

Questo è un consiglio legale confinante e questo sito non è la fonte definitiva se hai bisogno di informazioni accurate. Mentre cambiavo lavoro qualche tempo fa, questa stessa domanda mi è venuta in mente e ho fatto un po 'di ricerche, ma prendo tutto quello che dico con un pizzico di sale.

  1. Se sei un dipendente a tempo pieno, il codice scritto in orario aziendale appartiene a tale azienda.

  2. Devi stare molto attento a "sviluppare nel tuo tempo". Molte aziende considerano qualsiasi codice scritto mentre sono da loro impiegati per essere posseduti da loro. Qualche tempo fa Joel ha scritto molto buona scrittura su questo argomento esatto. Solleva punti positivi che in alcuni casi le aziende includono nel contratto che qualsiasi codice che produci mentre sono impiegati con loro è il loro. Dopotutto siamo stipendiati e non abbiamo orari prestabiliti. Potrei essere un caso speciale, ma per me il tempo più produttivo è dalle 12 alle 5 del mattino. Quindi, come provi ciò che costituisce il "tempo di compagnia"?

  3. Quando si passa da un lavoro a un altro, ho lasciato una raccolta personale di codice relativamente ampia. Non ho mai nemmeno preso in considerazione l'idea di prendere uno di quei codici perché a) probabilmente non è la cosa più etica da fare al mondo eb) Ho letto abbastanza storie da evitare completamente tutto ciò che riguarda il mio precedente codice del datore di lavoro. Tuttavia, quando ho iniziato a lavorare nella mia attuale azienda, ho scoperto che i primi 3-5 mesi che ho trascorso riscrivevano molto di ciò che avevo già scritto una volta. Era strano perché anche se non stavo guardando il vecchio codice, lo sapevo abbastanza bene da poter facilmente duplicare qualcosa che sarebbe molto simile. Dopo aver fatto un po 'di lettura, ho potuto solo concludere che mentre la società X possiede il copyright, non possiedono il tuo cervello. Sei libero di scrivere la stessa cosa tutte le volte che vuoi purché non possa mai essere fisicamente provato che avevi il codice X della compagnia davanti ai tuoi occhi mentre lavoravi per Y. Alla luce di ciò, ti consiglio di non cambiare semplicemente spaziatura bianca e nomi di variabili.

Nel mio caso, ho finito per scrivere un sacco di cose dalla memoria, ma allo stesso tempo, dal momento che ho lavorato con le librerie precedenti per anni, sapevo dove mancavano o erano dolorose con cui lavorare. Così, quando sono passato alla compagnia Y, mi sono anche preso il tempo necessario per ricostruire questo codice da zero ma con un'esperienza embedded extra.

Non vedo l'ora di farlo con il mio prossimo lavoro, ma l'unica cosa che posso pensare è in futuro prima di accettare un contratto di lavoro, trovando una posizione con la società la cui gestione non è completamente contro l'open source . Penso che sarei propenso alle aziende, a cui non dispiacerebbe se le librerie non correlate al business potessero essere rilasciate sotto licenza MIT.

    
risposta data 21.01.2012 - 05:24
fonte

Leggi altre domande sui tag