Original: O que seu chefe diz? Descubra - faça isso.
Me pediram para elaborar o acima:
Primeiro de tudo, acho que você tem mais de um dilema:
- Você deve "consertar" o código de outra pessoa?
- A implementação (daqui em diante A) das outras pessoas é ruim o suficiente para ser substituída por outra coisa?
- Um ofuscador (daqui em diante B) será melhor para esse "licenciamento incorporado em nosso aplicativo"?
Em primeiro lugar, visto a partir de um caso de negócios o problema É resolvido. A está no lugar e é - provavelmente - uma solução "suficientemente boa" para o problema. Sua empresa pode estar feliz com isso basicamente protegida o suficiente para que um esforço deliberado seja necessário para quebrá-lo.
Isso significa que, mesmo que você não goste (e, acredite, verá muito pior ao longo de sua carreira ), ele faz o que é necessário. Portanto, como o problema está resolvido, você não deve "apenas fazê-lo", mas sim convencer a pessoa encarregada de atribuir seu trabalho que a longo prazoO preço dessa implementação será alto o suficiente para justificar uma reversão e escolher um ofuscador de estoque. Isso exigirá um pouco de preparação de você e observe também que os ofuscadores também têm desvantagens que você precisa saber (outras respostas cobrem isso muito bem). Por exemplo, rastreamentos de pilha não são imediatamente utilizáveis etc. Tudo depende de quão importante é evitar a pirataria. Observe que o mais difícil de quebrar é aquele que exige dongles de hardware para executar e provavelmente é mais caro do que seus clientes gostariam.
Portanto, essa decisão não é sua, pois sua empresa precisa usar recursos adicionais para acessar B. Portanto, você precisa levar suas preocupações para a pessoa responsável, explicar essa e qualquer outra preocupação de longo prazo o suficiente para que ela entenda o motivo. você considera inferior à sua sugestão. Em seguida, deixe-o tomar a decisão e, independentemente do que seja, respeite -o e se comporte de maneira profissional. Observe que o autor original provavelmente terá que mantê-lo assim mesmo como ele o escreveu e, se ele for embora ou não quiser mais, você poderá abordar o assunto novamente.
Em outras palavras: O que seu chefe diz? Descubra - faça isso.
Observe também que isso teria sido diferente se você tivesse levantado a questão anteriormente, para que o dinheiro desperdiçado pelo tempo gasto na implementação de A fosse menor. Em outras palavras, quando a escolha entre A e B deveria ser feita.
Finalmente, gostaria de comentar sua pergunta sobre "apenas consertar o código de outras pessoas". Esta não é uma pequena correção para o código existente (que eu acho bom e incentivado, especialmente com testes em vigor). É uma reversão e reimplementação disruptivas e, mesmo em equipes com propriedade de código comum, isso não seria algo aceitável - pelo menos para mim - sem aprovação prévia.
Espero que isso esclareça meu ponto de vista.