Empiricamente, software com métricas de maior complexidade, como complexidade ciclomática, é mais difícil de manter. Há pesquisas apoiando isso desde os anos 1970 ("Complexidade do programa e produtividade do programador", ET Chen) . Também existe um trabalho que sugere que a densidade da complexidade, que é complexidade ciclomática em relação ao tamanho do sistema, também se relaciona ao tempo de manutenção ("Densidade da complexidade ciclomática e produtividade de manutenção de software", GK Gill, CF Kemerer) , que também está disponível gratuitamente aqui . Infelizmente, uma assinatura do IEEE é necessária para o artigo de Chen, mas você pode tentar procurá-la em outras fontes, se estiver interessado.
De uma perspectiva de qualidade, geralmente vale a pena gastar algum tempo refatorando, supondo que você tenha uma estrutura de teste para evitar a introdução de novos defeitos. Isso permitirá que você implemente mais facilmente novos recursos em seu sistema, adicione testes adicionais e treine novos desenvolvedores para o trabalho.
Por fim, no entanto, há pressão para oferecer novas funcionalidades e valor agregado. Você precisa equilibrar a refatoração com a implementação de novas funcionalidades e o reparo de defeitos.