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.