Às vezes vale a pena, às vezes não. A resposta não é óbvia e é uma decisão de negócios; por isso certifique-se de envolver na discussão as pessoas que estão pagando por isso.
Se decidir reduzir a sua dívida técnica atual, faça com que isso fique muito claro para todos os envolvidos com uma concordância do tipo "Vamos parar de escrever código ruim e gradualmente limpar o código velho".
Uma vez que todos concordarem com essa decisão (e essa é a parte mais difícil), há muitas técnicas de como concretizá-la. Henrik Kniberg sugere duas técnicas que em sua experiência sempre funcionam muito bem:
Adicione à sua definição de pronto: "redução da dívida técnica". E para as áreas que terão maior código corrigido, crie um "backlog técnico" e reserve tempo para isso.
Uma dedução clara do artigo de Kniberg é que o desenvolvedor possui em suas mãos tanto o problema como a solução para a dívida técnica. Não há necessidade de se preocupar ou ter vergonha do passado. Em vez disso, deve-se ficar orgulhoso do que foi feito e usar o que tiver a seu alcance para fazer alguma coisa sobre isso − tomar uma dura decisão de parar de escrever código de baixíssima qualidade. Isso irá iniciar uma cadeia de eventos positivos e provavelmente prosseguirá no longo prazo.