Est-ce mal de prendre le code que vous avez produit au travail et de le réutiliser pour des projets personnels?

31

Tout au long de mes différents lieux de travail, j'ai toujours écrit du code qui m'a fait penser "ce serait vraiment utile dans d'autres situations". En effet, j'écris intentionnellement du code, même si cela me prend plus de temps à écrire, ce qui, je le sais, m'aidera à l'avenir (par exemple les SubString()fonctions personnalisées ). Un bon candidat pour ces extraits est diverses classes «Helper».

Je suis sûr que ces extraits peuvent être trouvés ailleurs en ligne, mais le fait est que je les ai écrits et je les utiliserai à nouveau plus tard dans d'autres emplois ou pour des projets personnels. Actuellement, je ne gère pas de bibliothèque de codes personnels, mais la question est: est-ce mal de prendre le code que vous avez produit au travail et de le réutiliser ( a ) pour des projets personnels et ( b ) dans d'autres emplois?

Arj
la source
2
@Michael Similaire, mais pas un double exact. Les réponses sont très similaires, mais ce sont en fait deux préoccupations différentes. Celui-ci concerne de petits extraits de code - quelques classes, une méthode ou deux. L'autre consiste à reproduire un projet entier.
Thomas Owens
Le plus drôle, c'est que je trouve toujours le flux dans l' autre sens . Je trouve généralement les morceaux de code vraiment intéressants dans mes projets de loisirs où j'expérimente davantage. Certes, personne ne se plaint lorsque ces idées réussies en font mon travail rémunéré. :-)
DaveGauer

Réponses:

25

J'ai toujours résolu ce problème en ayant un projet personnel dans lequel je mets toutes mes idées folles et mes trucs génériques, puis je les concède sous la licence BSD, qui permet aux gens de réutiliser, modifier, renommer, fermer et facturer de l'argent pour il. De cette façon, je conserve le droit d'auteur, mais je peux réutiliser le code à ma guise pour tel ou tel employeur, de sorte que je conserve le droit d'auteur sur l'original, mais l'employeur conserve le droit d'auteur sur l'instance réutilisée. Je pense que s'ils avaient un problème avec ça, alors ils devraient simplement me payer pour le réécrire sur le temps de travail, ce qui n'a aucun sens de leur point de vue. De plus, les entreprises utilisent le code BSD tout le temps, car l'idée derrière BSD est de permettre aux personnes et aux entreprises de faire à peu près tout ce qu'elles veulent, y compris le rebranding et la vente.

Ensuite, bien sûr, si des ajouts sont apportés au code sur le lieu de travail, je ne peux pas le réutiliser ailleurs sans le réécrire sur mon propre temps ... ce qui est bien parce que les trucs génériques ont tendance à être relativement petits, sauf si c'est un idée qui justifie de toute façon un effort considérable de temps libre.

L'écrire à votre guise et attribuer une licence au code sous une licence de type BSD devrait vous permettre de maintenir une bibliothèque pour vous que vous pouvez utiliser à peu près partout où vous le souhaitez.

Maintenant, en ce qui concerne les contrats qui prétendent aspirer le droit d'auteur de tous vos projets personnels ... cela diffère probablement radicalement entre les juridictions, mais dans au moins certaines juridictions occidentales, je crois qu'un contrat ne peut pas faire cela. Le contrat peut le dire, mais il ne serait pas appliqué par un tribunal parce que le droit d'auteur doit être explicitement transféré, par opposition à "toute votre base nous appartient" - accord kinda qui ne serait jamais respecté (en la juridiction d'où je viens de toute façon). Il y a un certain nombre de restrictions sur ce qui peut être confirmé par un tribunal par le biais d'un contrat, c'est pourquoi vous verrez généralement (et j'espère) une clause disant quelque chose selon laquelle si une partie du contrat ne fonctionne pas légalement , le reste du contrat est toujours valable.

Mais comme toujours, consultez un avocat avant d'interpréter cela comme un conseil juridique précis. Je n'ai jamais été traduit en justice à ce sujet, donc je ne connais rien de tout cela comme des faits à l'épreuve des avocats. :)

Teekin
la source
31

Cela dépend de votre contrat de travail. De nos jours, la réponse la plus probable est (a) oui, c'est faux et (b) oui, c'est vraiment faux. Presque tous les contrats proposés aux développeurs aujourd'hui contiennent des dispositions stipulant que tout code que vous écrivez lorsque vous êtes employé par l'entreprise (que ce soit pendant les heures de bureau ou non) leur appartient et que vous leur transférez automatiquement vos droits d'auteur. À moins que vous n'ayez spécifiquement négocié contre cela, cela s'applique probablement à vous.

Cependant, comme toujours:

Ne nous croyez pas! Consultez un avocat avant de faire quelque chose de potentiellement dangereux.

Kilian Foth
la source
7
+10 (si je pouvais) pour "Ne nous croyez pas! Consultez un avocat avant de faire quelque chose de potentiellement dangereux." Meilleur. Conseiller. Déjà.
Sardathrion
2
Avez-vous une source pour l'affirmation selon laquelle «presque tous les contrats proposés aux développeurs» stipulent que «tout code que vous écrivez alors qu'il est employé par l'entreprise (que ce soit pendant les heures de bureau ou non)» appartient à l'employeur?
un CVn
3
Ces termes sont routiniers de manière à ce que l'employeur se couvre trop plutôt que trop peu, et dans de nombreux cas, il y a de la place pour le bon sens. Cela dit, (1) vous devez être sûr que votre point de vue de bon sens est d'accord avec le leur, et (2) c'est un gros risque. Quelques années plus tard, les opinions peuvent changer - surtout si vous gagnez beaucoup d'argent ou s'ils pensent que quelque chose que vous avez écrit pourrait nuire à leurs ventes. Pour une bibliothèque de petites fonctions utilitaires générales, il est probablement plus facile de réécrire et ne vous inquiétez pas. Quelque chose de plus substantiel et vous êtes sur un terrain très dangereux.
Steve314
4
@ MichaelKjörling. La source que vous recherchez se trouve dans l'excellente réponse de Joel Spolsky à ce sujet dans Start Ups .
TRiG
22
En fait .. Je pense que c'est ennuyeux et irréaliste de toujours dire à un avocat. D'abord parce que c'est du bon sens que vous pouvez vous tromper; si vous conseillez sur la façon de corriger une vulnérabilité de sécurité critique sur SO, vous ne dites pas "Demandez à un programmeur!" à chaque fois. Les seconds avocats coûtent cher; Honnêtement, combien de personnes, selon vous, embaucheront un avocat pour avoir posé - généralement - une question / curiosité? Avez- vous déjà engagé un avocat pour demander quelque chose comme ça?
Thomas Bonini
9

Réécrivez simplement le code au fur et à mesure de vos besoins . Cela évite complètement le problème pour quelques minutes de codage.

Il y a des chances pour que vous ayez appris plus et que vous écriviez mieux. La réécriture du code le rend généralement plus élégant.

Tom Squires
la source
D'accord, mais qu'en est-il des sous-bibliothèques qui ne valent pas seulement quelques minutes de code? Des classes pour accéder aux bases de données, créer des fichiers, etc.? Il est vrai que la réécriture améliore le code
Arj
3
Ce n'est pas aussi simple. Toute réimplémentation doit être complètement différente du code d'origine. Même la réécriture pourrait être mauvaise. Faire une meilleure version de choses existantes est définitivement mauvais. Il vaut mieux le garder complètement séparé.
tp1
Si vous développez une sorte d'algorithme propriétaire pour quelqu'un, vous auriez (probablement) des ennuis si vous le réécriviez pour quelqu'un d'autre. C'est un peu sommaire. Si c'est juste du code passe-partout, oui, assez facile pour commencer une nouvelle collection.
Tim Post
@ tp1 Attendez, que se passe-t-il si l'objectif de la fonction x()est si spécifique et utile qu'il n'y a pas tant de façons de l'écrire? Dans ce cas, comment pouvez-vous le séparer si la mise en œuvre est si similaire?
Arj
@ a12jun, eh bien, c'est pourquoi il doit être considéré séparément pour chaque situation. Le concept de tri est probablement l'expérience existante du programmeur en informatique, et l'écriture est correcte. Mais si c'est quelque chose de spécifique qui est rare ou spécifique à une sorte de logiciel, alors ça va être mauvais.
tp1
6

Selon vos conditions d'emploi, cela pourrait l'être. Consultez votre superviseur, le service des ressources humaines, le service juridique et / ou le service d'éthique pour déterminer ce qui appartient à votre entreprise et ce qui vous appartient, ainsi que la procédure à suivre pour demander l'obtention des droits d'utilisation ou de propriété des choses. que vous produisez au travail.

Presque tous les endroits où j'ai travaillé, les choses qui entrent dans les projets appartiennent à l'entreprise, mais j'ai demandé et obtenu la permission de sortir les choses pour des projets personnels au cas par cas, ce qui exigeait généralement d'expliquer ce que je veux à voir avec cela et comment il ne serait pas préjudiciable à l'organisation de le laisser partir.

Thomas Owens
la source
Je suis d'accord avec ça; parler aux gens de votre propre entreprise est un bon point de départ (en supposant que vous ayez une bonne relation avec eux). Il n'est pas improbable qu'ils se contentent de dire "bien sûr, faites ce que vous voulez avec cela tant qu'il n'est pas intimement lié à nos affaires".
Keith Thompson
Oui, c'est une bonne idée d'essayer de demander la permission: le contrat pourrait dire "toute votre base nous appartient", mais c'est généralement juste pour les besoins de l'ACY, et ils pourraient bien être disposés à autoriser des choses que votre contrat ne garantit pas . (Mais vous voudrez peut-être vous assurer de l'obtenir par écrit, juste au cas où.)
SamB
4

J'ai eu un certain succès (pas un succès total) à amener mes employeurs à accepter de publier sous une licence open source une partie de mon code écrit pendant que je travaillais pour eux. Surtout du code que j'ai écrit pendant mon temps libre, mais parfois non. Tout ce code n'est spécifique à aucune industrie.

J'ai commencé le tout en écrivant quelques bibliothèques pendant que j'étais au chômage, puis en les libérant sous la licence MIT. Ensuite, pendant le processus d'embauche à des emplois ultérieurs, je le mentionnerais et dirais que j'utiliserais mon code pour les aider, si cela était possible, mais cela leur dérangerait-il d'ajouter des choses que j'ai écrites en travaillant pour eux, mais seulement des choses qui n'étaient pas spécifiques à leur entreprise et uniquement avec leur approbation.

Les résultats ont varié, mais j'ai pu construire ma bibliothèque au fil du temps. Et il y a eu des cas où avoir la bibliothèque a accéléré le temps de développement pour mes employeurs.

psr
la source
4

Je suis surpris que la réponse la plus votée ici soit «oui». En tant que développeur, la réponse a toujours été "absolument pas", sauf dans les cas où le code est soit:

  1. Une bibliothèque composée précédente que j'ai développée indépendamment du projet actuel et de tous les projets précédents, ou
  2. Une bibliothèque qui a été mise à disposition à cet effet, par exemple, des trucs open source.

Quelqu'un vous a payé pour écrire le code. À moins d'une entente et d'un accord différents, ce qui est bien, il n'est pas juste que quelqu'un d'autre en profite DIRECTEMENT.

Maintenant - le mot DIRECT. Si vous arrivez à la fin d'un projet et que vous avez appris quelque chose d'intéressant et que vous avez créé quelque chose d'utile qui n'est pas directement lié à la propriété intellectuelle du client, prenez du temps et créez-vous une bibliothèque pour cela. Encore mieux - COMMENCEZ UN PROJET DE SOURCE OUVERTE AVEC ELLE, pour que tout le monde s'en retrouve plus riche. Je pense que c'est absolument 100% éthiquement pur comme la neige entraînée, et en effet, je l'ai fait moi-même.

À court terme, la réutilisation du code que vous avez payé pour écrire pour quelqu'un d'autre vous causera des maux de tête légaux. À long terme, cela vous causera des maux de tête.

Chris B. Behrens
la source
1
Bravo d'avoir répondu sur une base éthique plutôt que juridique. Rappelez-vous: toute la morale n'est pas contenue par la loi. Aux États-Unis du moins, la loi s'est détachée de la réalité et de la société. La loi et les avocats semblent travailler activement contre le bien commun.
Bruce Ediger
Réponse fine et dandy mais rien à voir avec la loi. Juridiquement, cette réponse est en effet instable dans la plupart des pays occidentaux.
quick_now
2

Je suis sûr que c'est une question juridique selon l'endroit où vous vivez / travaillez et ce qui a été convenu / votre contrat.

Si j'apprends quelque chose par moi-même, pendant mon temps libre, toutes les dépenses que je paie (ordinateur, accès Internet, logiciels, etc.), ne voudraient-ils pas que je l'utilise dans mon travail? Vous trouvez une expression régulière pour un projet personnel et décidez de l'envoyer par e-mail à votre compte professionnel car vous pourriez probablement l'utiliser. Il serait un peu idiot de passer du temps en compagnie à faire semblant de le rechercher à nouveau sur Internet. Bien sûr, nous nous efforçons d'améliorer notre métier, c'est ce que l'on attend des programmeurs, bla, bla, bla, mais si c'était dans un domaine en dehors de la programmation ou même de l'informatique? Je peux me retenir s'ils veulent jouer à ce jeu.

L'entreprise peut essayer de garder une emprise serrée sur le code que je produis. C'est juste une mauvaise fondation pour construire une relation. S'ils se soucient autant de quelques lignes de code, je ne peux pas imaginer dans quelle mesure ils vont dominer mon temps; ce qui vaut beaucoup plus.

JeffO
la source
1

J'ai également eu les mêmes pensées dans le passé. Malheureusement, je pense que tout ce que vous écrivez directement pour votre travail serait techniquement protégé par le droit d'auteur par votre employeur. Vous devez demander l'autorisation de réutiliser ce code dans d'autres travaux non liés à l'entreprise.

D'un autre côté, si vous avez écrit du code pendant votre temps libre pour l'un de vos propres projets, vous pouvez protéger votre code avec une sorte de droit d'auteur, puis proposer de le donner à votre employeur pour l'utiliser.

Dans tous les cas, il doit y avoir une communication claire sur la question.

Bien sûr, IANAL.

Mike Cellini
la source
1

Votre question est très similaire à celle-ci " Open Source - Est-il légal de recréer / open source un programme que vous avez créé précédemment pour une autre entreprise? "

Je dirais que vous êtes sur des bases juridiques précaires car les entreprises pour lesquelles vous avez travaillé possèdent probablement le code que vous avez écrit pour elles. Il serait préférable de coder les routines à partir de zéro, mais même dans ce cas, il pourrait y avoir des questions si vous aviez encore des copies de l'autre code.

[Je ne suis pas avocat, alors ne vous attendez pas à ce que mon conseil vous aide devant un tribunal.]

jwernerny
la source
+1 pour "Je ne suis pas avocat, alors ne vous attendez pas à ce que mon conseil vous aide devant un tribunal".
Sardathrion
1

Je dirais qu'il vaut mieux ne pas conserver ces petites méthodes / fonctions génériques entre les projets. La plupart du temps, vous pouvez utiliser Boost ou ce que votre langue propose pour ce faire. La plupart du temps, ceux-ci sont mieux écrits que les vôtres.

Ce qui est une bonne idée, c'est d'avoir un ensemble de tests unitaires pour ceux-ci et de les utiliser pour tester votre code kata.

Sardathrion - Rétablir Monica
la source
1

Les emplois se dirigent vers l'Asie, alors réécrivez le code pendant que le train de sauce existe toujours. Si vous êtes payé pour écrire du code, écrivez-le ou collez-le et faites comme si vous l'aviez réécrit tout en faisant quelque chose d'amusant. Ou encore mieux, travaillez à domicile et payez des codeurs asiatiques plus qualifiés, plus intelligents et surtout, beaucoup moins chers pour écrire le code pour vous et faire la différence. Ensuite, vous pouvez sortir et profiter du monde avant que nos dieux d'entreprise ne nous déposent et nous sommes tous démunis travaillant dans des usines de puces fabriquant des puces à 2 cents l'heure pour les riches consommateurs d'iphone chinois et indiens.

marabutt
la source
0

Je sais que c'est une vieille question mais quelqu'un l'a heurtée et j'ai pensé que ce serait une bonne idée d'ajouter une référence à la très triste histoire de Sergey Aleynikov . Avant de prendre un code du travail, lisez comment cela a ruiné sa vie et l'a mis en prison .

JimmyJames
la source