Eu diria que é certo quando o que você está trabalhando requer a mudança. Está certo quando você foi designado para consertar um bug e o bug está nesse código.
Se o código não tem nada a ver com o que você está trabalhando, mas precisa ser corrigido, traga-o para o líder da equipe e deixe-o atribuir uma prioridade para consertá-lo e designar uma pessoa (pode não ser você ) para fixar isso. Se ele disser para não gastar seu tempo com isso, então não se preocupe em corrigi-lo. Você está sendo pago para trabalhar naquilo para o qual foi designado para trabalhar e não no que deseja trabalhar. Evidentemente, é preciso mudar isso, mas a definição de prioridades é o trabalho do gerente, não o seu.
É errado alterar o código de trabalho apenas por causa de uma preferência pessoal.
Está errado quando você não entende qual problema o código foi criado para corrigir ou até mesmo entender o código. Só porque não funciona para as suas necessidades não significa que você não vai quebrar alguma coisa se você se meter com isso. Se você precisar mudá-lo para fazer o que você está fazendo funcionar, então fale com o programador ori- ginal sobre por que ele fez o que fez e o que pode ser afetado se você o mudar para atender às suas necessidades. NUNCA altere o código que você não entende, a menos que não esteja funcionando. Isso não significa que você nunca conserte o código, apenas significa que até você ter tempo para entendê-lo completamente, você não o altera, especialmente se já estiver em produção.