J'ai trouvé une meilleure solution à un problème au travail - dois-je éviter de publier l'extrait de code en ligne?

18

Je pense que la plupart d'entre nous, les programmeurs, ont utilisé Stack Overflow pour résoudre les problèmes de tous les jours: ont cherché un algorithme efficace pour faire quelque chose.

Imaginez maintenant une situation: vous avez un problème à résoudre. Googlé un peu, a trouvé une question StackOverflow mais vous n'êtes pas vraiment satisfait des réponses jusqu'à présent. Vous devez donc faire vos propres recherches: vous devez le faire parce que vous le souhaitez dans l'application de l'entreprise.

Finalement, après quelques heures, vous avez trouvé la meilleure solution. Vous êtes heureux, vous l'avez ajouté à la base de code de l'entreprise, puis vous souhaitez soumettre votre réponse avec un extrait de code (quelques lignes seulement) à la question que vous avez trouvée auparavant pour aider les autres aussi.

Mais attendez: le logiciel de l'entreprise est en source fermée, et vous y avez travaillé sur l'horloge.

Cela signifie-t-il que je ne devrais pas poster la réponse ni au travail ni à la maison à cette question dans le reste de ma vie, parce que je l'ai résolue au travail et que l'entreprise possède ce morceau de code?

Calmarius
la source
Je pense que cela dépend de la politique de votre entreprise. Je demanderais la permission d'être du bon côté.
MrSmith42
1
Demandez à l'avocat de la société s'il peut faire une toute petite exception dans ce petit cas, et s'il dit oui, il sera un ex -avocat de bonne compagnie. Il y a de fortes chances qu'il vous dise simplement ce qui est dans le meilleur intérêt de son travail et de l'entreprise, qui est "non".
Neil
1
@ MrSmith42 Bien sûr. Mais à vrai dire, je suis déjà coupable de cela à plusieurs reprises, et je l'ai fait sans réfléchir aux conséquences potentielles, jusqu'à présent. Et probablement, je ne suis pas seul avec ça. C'est pourquoi je l'ai demandé ici ... Ou est-ce que tout le monde ne veut pas exprimer d'idées ou soumettre un code en ligne pendant son emploi? Je ne peux pas croire.
Calmarius
5
L'une des préoccupations pourrait être que si votre solution / algorithme donne à votre entreprise un avantage concurrentiel, le partager pourrait avoir un impact sur votre entreprise.
2013
3
Si vous pensez que ce serait utile à quelqu'un et que vous ne donnez pas l'IP de votre entreprise, postez simplement une version générique de la chose. Personnellement, je pense que si la solution était partiellement dérivée d'autres que vous avez trouvées ici, la société n'a pas de droit sur la technique en premier lieu car le contenu ici est cc.
GrandmasterB

Réponses:

15

La divulgation d'informations exclusives sur l'entreprise est quelque chose que vous ne devriez jamais faire. Cependant, la plupart des extraits de code sur Stack Overflow sont beaucoup plus banals que cela. Considérez cet exemple :

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

Cette méthode inverse l'endianité d'un nombre de 32 bits, en échangeant les octets autour. La différence entre cette implémentation et une implémentation naïve est que celle-ci s'exécute deux fois plus vite, mais vous ne pouvez l'exécuter que sur une petite machine endian. Il est utilisé dans un programme propriétaire, mais il décrit une technique générale et n'expose rien de confidentiel.

Robert Harvey
la source
Cela tend à suivre l'idée qu'une entreprise ne possède pas d'algorithmes, n'est-ce pas?
Daniel Gratzer
8
Je ne peux pas dire cela avec certitude, étant donné la nature byzantine du système des brevets.
Robert Harvey
@Jozefg: Comme toute invention, les algorithmes, qui sont complexes et pas assez évidents et développés au sein de l'entreprise, sont l'une des rares choses dans le monde du logiciel qui peuvent "facilement" appartenir aux entreprises. Un exemple présenté ici est suffisamment simple pour ne pas tomber dans cette catégorie. Et bien qu'il y ait des cas où une véritable pensée originale et des années de recherche sont investies et qu'une entreprise devrait avoir tous les droits de propriété, la plupart du temps, le système des brevets (au moins aux États-Unis) est tout simplement abusé.
DXM
7

Je poste fréquemment des problèmes et des solutions que je rencontre au travail, à l'heure de l'entreprise avec le code de l'entreprise *. J'en ai parlé directement à mon directeur, et il estime que la valeur que l'entreprise tire de mon temps passé ici dépasse de loin toute préoccupation concernant mon temps passé ici en général.

* Je suis prudent de masquer tout ce qui, selon moi, pourrait être exclusif. Notre code interne est très propriétaire, mais serait en grande partie inutile à quiconque sans notre matériel propriétaire (que nous ne vendons pas).

Je considère mes questions et réponses comme m'aidant moi-même ainsi que quelqu'un d'autre sur la route lorsqu'ils rencontrent des problèmes similaires aux miens.

delliottg
la source
1

Combien cela coûterait-il à votre entreprise pour votre temps supplémentaire ou votre temps perdu si vous n'aviez pas cette ressource?

Tant qu'aucune information compromettante ou propriétaire n'est donnée, je pense que les solutions d'affichage que vous avez trouvées sont une compensation pour les réponses que vous avez reçues.

TheSteven
la source
1

La réponse réside dans les accords juridiques écrits que vous avez signés avec votre employeur (votre contrat) et avec la juridiction en vertu de laquelle ces accords seront jugés. Il est courant qu'un accord juridique énumère la juridiction qui peut ou non être l'État dans lequel vous travaillez (bien que probablement le pays dans lequel vous travaillez, mais pas nécessairement).

Un grand livre est la propriété intellectuelle et l'open source de Van Lindberg. De la p. 185:

Il n'y a aucune répercussion juridique pour [une entreprise] qui dépasse les limites lors de la définition des «informations exclusives». Plusieurs États limitent l'application des PIA lorsqu'un auteur ou un inventeur n'utilise pas la propriété ou le temps de l'entreprise pour créer la nouvelle œuvre ... Même si les limites imposées par l'État invalident une partie de la PIA, d'autres aspects de l'accord survivent généralement.

Lisez votre contrat. Divulguez vos intentions à votre employeur avant d'agir. Révélez ensuite vos actions à votre employeur. Divulguer ces choses par écrit et obtenir leur réponse / autorisation le cas échéant par écrit. C'est du moins ce que dit ce livre.

Je ne suis pas avocat, je m'intéresse à ce genre de choses. Ce ne sont pas des conseils juridiques, juste des suggestions amicales. Pour ma part, je ne rends rien nonchalamment public. J'ai rendu certaines choses publiques après de longues discussions avec mon patron, une divulgation complète, un étiquetage clair de la licence et un accord écrit sur ce que je publie, mais c'est rare.

GlenPeterson
la source
0

J'ai publié des extraits de code en ligne, mais je modifie toujours le code afin de supprimer toute référence à l'entreprise, toutes les données client et souvent je renomme également les champs / variables. Je finis par réécrire le code afin qu'il ne puisse pas être retracé à un employeur. Cela demande un peu d'effort supplémentaire mais je pense que ça vaut le coup.

Mis à part l'aspect juridique, vous devez également penser que vous avez confiance en la propriété de votre employeur. Si vous en publiez librement des morceaux en ligne, il semble que vous manquiez de discrétion et que vous ne puissiez pas faire confiance. Même si vous aviez la permission, un futur employeur trouvant votre extrait de code dans un moteur de recherche peut ne pas le savoir.

C'est pourquoi j'aurais tendance à pécher par excès de prudence.

Ben Thurley
la source