web-dev-qa-db-fra.com

Comment puis-je réutiliser le code générique pour consulter des entreprises?

Je suis employé à temps plein pour la société X et je suis approché par la société Y pour faire des services de conseil pour écrire C incorporé pour eux. Bien que je connaisse les bases des conflits d'intérêts et le grand non-non de partage d'informations exclusives, de connaissances en entreprise et d'algorithmes de propriété, j'ai quelques questions concernant des articles génériques de base que je dois réutiliser:

  • Architecture logicielle: j'ai une préférence personnelle d'application de superposition, de la couche d'abstraction et de pilotes matériels. Je ne veux pas avoir à faire quelque chose de différent et ce n'est pas exclusif pour la société. Ce serait-il un problème si partagé?

  • FONCTIONS GÉNÉRALES: RECHERCHE DE TABLE UPS, FONCTIONS SINES/COSINEES, ARSSERS, ETC. J'ai écrit tout ce code moi-même. Puis-je copier-coller ceci ou dois-je réécrire, insérer des espaces aléatoires, modifier l'indentation, les noms var, les tailles de table, etc.?

  • Fonction Nommage: J'utilise une convention de dénomination spécifique, par ex. Math_sin (). Cependant, compilé à une DLL, la société X peut trouver une fonction math_sin () disponible dans la société Y's DLL et supposons que j'ai copié leur code. Dois-je renommer toutes les fonctions pour masquer les similitudes?

  • Les connaissances publiques sont transformées en code source: disent que vous trouvez un algorithme sur un papier qui explique comment rechercher un motif dans une chaîne et vous avez tourné le contenu du papier en code source. Encore une fois, une pâte de copie serait-elle un non-non ici aussi? Réécrire la modification de quelques choses ou complètement rejeter et trouver pour une autre façon de le faire? En fin de compte, il s'agit d'une mise en œuvre des connaissances publiques.

J'ai demandé à mes pairs et je ne peux pas avoir une réponse directe sur quoi faire. Le logiciel est numérique et très traçable et peut toujours être retracé au développeur.

Merci.

Mise à jour: J'ai abordé mon manager et mon RH et ils m'ont fermement découragé pour poursuivre cela. Ils ont affirmé qu'en utilisant le même ensemble de compétences (programmation intégrée ou programmation en général) pour une autre entreprise, il y aura toujours la possibilité de se mettre au défi de la société X ou de la société Y. J'ai demandé à ce qui ne serait pas considéré comme un conflit d'intérêts et Ils ont répondu "Vous pourriez investir dans un restaurant ...". Sérieusement?

La société X est une très grande société. Il n'y a pas de négociation entre employeur et entreprise, il n'ya pas d'acceptation du code open source/sous licence et il semble qu'ils croient qu'ils possèdent de moi et de mes compétences. Bien que je suis d'accord avec une partie de leur raisonnement, je ne suis pas d'accord pour qu'ils possèdent mon éducation et, tout en employant pour eux, je ne peux pas utiliser mes compétences de base pour d'autres efforts. Par conséquent, j'ai décidé de suivre les conseils ci-dessous et Open Source Tout mon code personnel qui n'appartient pas à la société, ni écrit à l'aide de l'équipement de l'entreprise ou de l'heure de l'entreprise. Je ne ferai pas de l'argent ou de la signature de contrats, mais au moins je peux garder mon code personnel et continuer à développer ma carrière en dehors de cet environnement restrictif.

Merci pour toutes les réponses. J'espère que cela sert de référence aux autres poursuivant le même objectif.

7
PaulG

Si vous avez facturé le temps de développer un certain code à une entreprise particulière, alors vous êtes coincé - ce code leur appartient et vous ne pouvez pas le prendre avec vous.

Si vous avez construit une bibliothèque de votre propre code à votre guise et que vous souhaitez pouvoir le réutiliser dans différents projets afin de renforcer votre efficacité, une solution consiste à relâcher ce code sous une licence permisive que vous pouvez faire par Il suffit d'écrire "License: LGPL" ou peu importe dans un commentaire dans l'en-tête.

Vous pourriez penser que cela vous perdrait votre avantage concurrentiel, car quelqu'un d'autre pourrait simplement prendre votre code et commencer à l'utiliser, mais

  1. Vous serez toujours le mieux capable d'utiliser votre propre code et

  2. Ce n'est pas parce que le code est autorisé gratuitement que vous devez le poster sur votre site Web quelque part pour le monde entier de voler.

7
Russell Zahniser