Encontrou uma solução melhor para um problema no trabalho - devo impedir de postar o snippet de código on-line?


18

Acho que a maioria de nós, programadores, usou o Stack Overflow para resolver problemas do dia a dia: procurava um algoritmo eficiente para fazer alguma coisa.

Agora imagine uma situação: você tem um problema a resolver. Pesquisei um pouco no Google, encontrei uma pergunta no StackOverflow, mas você não está realmente satisfeito com as respostas até agora. Então você tem que fazer sua própria pesquisa: você precisa fazê-lo porque deseja no aplicativo da empresa.

Depois de algumas horas, você encontrou a melhor solução. Você está feliz, adicionou-o à base de códigos da empresa e deseja enviar sua resposta com um trecho de código (apenas várias linhas) à pergunta que você encontrou antes para ajudar outras pessoas também.

Mas espere: o software da empresa é de código fechado e você trabalhou nele o tempo todo.

Então, isso significa que eu não devo postar a resposta nem no trabalho nem em casa para essa pergunta pelo resto da minha vida, porque eu a resolvi no trabalho e a empresa é dona desse código?


Eu acho que depende da política da sua empresa. Eu pediria permissão para estar do lado seguro.
MrSmith42

1
Pergunte ao advogado da empresa se ele poderia fazer uma pequena exceção nesse pequeno caso e, se ele disser que sim, será um ex- advogado de bom coração . As probabilidades são de que ele apenas diga o que é do melhor interesse para o trabalho dele e da empresa, que é "não".
30513 Neil

1
@ MrSmith42 Claro. Mas, para dizer a verdade, já sou culpado disso várias vezes e o fiz sem pensar nas possíveis consequências, até agora. E provavelmente não estou sozinha com isso. Foi por isso que perguntei aqui ... Ou todo mundo se importa em não expressar idéias ou enviar qualquer código on-line enquanto empregado? Eu não acredito.
Calmarius

5
Uma das preocupações pode ser que, se sua solução / algoritmo der à sua empresa uma vantagem competitiva, o compartilhamento poderá ter impacto na sua empresa.
Cyn

3
Se você acha que seria útil para alguém, e não está dando IP da empresa, basta postar uma versão genérica da coisa. Pessoalmente, acho que se a solução foi parcialmente derivada de outras que você encontrou aqui, a empresa não tem uma reivindicação sobre a técnica em primeiro lugar, pois o conteúdo aqui é cc.
precisa

Respostas:


15

Expor informações proprietárias da empresa é algo que você nunca deve fazer. A maioria dos trechos de código no Stack Overflow é muito mais comum do que isso, no entanto. Considere este exemplo :

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

Este método inverte o endianness de um número de 32 bits, trocando os bytes. A diferença entre essa implementação e uma ingênua é que ela é executada duas vezes mais rápido, mas você só pode executá-la em uma pequena máquina endian. Ele está sendo usado em um programa proprietário, mas descreve uma técnica geral e não expõe nada de confidencial.


Isso tende a seguir a ideia de que uma empresa não possui algoritmos, não é?
Daniel Gratzer

8
Não posso dizer isso com certeza, dada a natureza bizantina do sistema de patentes.
Robert Harvey

@Jozefg: Assim como qualquer invenção, algoritmos, que são complexos e pouco óbvios e desenvolvidos dentro da empresa, são uma das poucas coisas no mundo do software que podem "facilmente" pertencer a empresas. Um exemplo apresentado aqui é simples o suficiente para não se enquadrar nessa categoria. E, embora existam casos em que o pensamento original real e anos de pesquisa são investidos e uma empresa deve ter direitos de propriedade totais, na maioria das vezes o sistema de patentes (pelo menos nos EUA) é simplesmente abusado.
DXM 31/10/2013

7

Costumo postar problemas e soluções que encontro no trabalho, no horário da empresa com a empresa *. Conversei diretamente com meu gerente sobre isso, e ele acha que o valor que a empresa obtém do meu tempo gasto aqui supera qualquer preocupação com o tempo gasto aqui em geral.

* Sou cauteloso em ofuscar qualquer coisa que eu acho que possa ser proprietária. Nosso código interno é muito proprietário, mas seria inútil para qualquer pessoa sem nosso hardware proprietário (que não vendemos).

Encaro minhas perguntas e respostas como uma ajuda para mim e para outras pessoas no caminho, quando elas enfrentam problemas semelhantes aos meus.


1

Quanto custaria à sua empresa seu tempo adicional ou tempo perdido se você não tivesse esse recurso?

Desde que nenhuma informação proprietária ou comprometida seja fornecida, sinto que as soluções de postagem que você encontrou são uma compensação pelas respostas que você recebeu.


1

A resposta está nos acordos legais escritos que você assinou com seu empregador (seu contrato) e na jurisdição sob a qual esses acordos serão julgados. É comum um acordo legal listar a jurisdição que pode ou não ser o estado em que você trabalha (embora seja provavelmente o país em que trabalha, mas não necessariamente).

Um ótimo livro é Propriedade Intelectual e Código Aberto de Van Lindberg. Da p. 185:

Não há repercussões legais para o excesso de [uma empresa] ao definir "informações proprietárias". Vários estados limitam a aplicação de PIAs quando um autor ou inventor não usa a propriedade ou o tempo da empresa para criar o novo trabalho ... Mesmo que os limites impostos pelo estado invalidem parte do PIA, outros aspectos do contrato geralmente sobrevivem.

Leia o seu contrato. Divulgue suas intenções ao seu empregador antes de agir. Divulgue suas ações ao seu empregador. Divulgue essas coisas por escrito e obtenha sua resposta / permissão quando aplicável por escrito. Pelo menos é o que o livro diz.

Eu não sou um advogado, apenas interessado nessas coisas. Este não é um conselho legal, apenas sugestões amigáveis. Para mim, casualmente não faço nada público relacionado ao trabalho. Tornei algumas coisas públicas após longas discussões com meu chefe, divulgação completa, rotulagem clara de licenças e um acordo por escrito sobre o que estou lançando, mas isso é raro.


0

Publiquei trechos de código on-line, mas sempre edito o código para remover as referências à empresa, os dados de clientes e, muitas vezes, renomeio os campos / variáveis ​​também. Basicamente, acabo reescrevendo o código para que não possa ser rastreado até um empregador. É preciso um pouco de esforço extra, mas acho que vale a pena.

Além do aspecto legal, você também deve pensar que confiava na propriedade de seus empregadores. Se você publicar livremente partes dele on-line, parece que você não tem discrição e não pode ser confiável. Mesmo que você tenha permissão, um futuro empregador que encontre seu snippet em um mecanismo de pesquisa poderá não saber disso.

É por isso que eu tenderia a errar por precaução.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.